From d0adfc8bf2b6024f76ebea59700c0d1ed6581ab8 Mon Sep 17 00:00:00 2001 From: athomps <athomps@f3b2605a-c512-4ea7-a41b-209d697bcdaa> Date: Wed, 9 Mar 2011 19:55:07 +0000 Subject: [PATCH] Fixed problem with C2 correction git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@5772 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/USER-REAXC/reaxc_multi_body.cpp | 49 ++++++++++++++--------------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/src/USER-REAXC/reaxc_multi_body.cpp b/src/USER-REAXC/reaxc_multi_body.cpp index 88b671e24a..44f3b1bcf3 100644 --- a/src/USER-REAXC/reaxc_multi_body.cpp +++ b/src/USER-REAXC/reaxc_multi_body.cpp @@ -97,40 +97,37 @@ void Atom_Energy( reax_system *system, control_params *control, #endif /* correction for C2 */ - if( system->reax_param.gp.l[5] > 0.001 && - !strcmp( system->reax_param.sbp[type_i].name, "C" ) ) - for( pj = Start_Index(i, bonds); pj < End_Index(i, bonds); ++pj ) - if( system->my_atoms[i].orig_id < - system->my_atoms[bonds->select.bond_list[pj].nbr].orig_id ) { - j = bonds->select.bond_list[pj].nbr; - type_j = system->my_atoms[j].type; - - if( !strcmp( system->reax_param.sbp[type_j].name, "C" ) ) { - twbp = &( system->reax_param.tbp[type_i][type_j]); - bo_ij = &( bonds->select.bond_list[pj].bo_data ); - Di = workspace->Delta[i]; - vov3 = bo_ij->BO - Di - 0.040*pow(Di, 4.); - - if( vov3 > 3. ) { - data->my_en.e_lp += e_lph = p_lp3 * SQR(vov3-3.0); + if( p_lp3 > 0.001 && !strcmp(system->reax_param.sbp[type_i].name, "C") ) + for( pj = Start_Index(i, bonds); pj < End_Index(i, bonds); ++pj ) { + j = bonds->select.bond_list[pj].nbr; + type_j = system->my_atoms[j].type; + + if( !strcmp( system->reax_param.sbp[type_j].name, "C" ) ) { + twbp = &( system->reax_param.tbp[type_i][type_j]); + bo_ij = &( bonds->select.bond_list[pj].bo_data ); + Di = workspace->Delta[i]; + vov3 = bo_ij->BO - Di - 0.040*pow(Di, 4.); + + if( vov3 > 3. ) { + data->my_en.e_lp += e_lph = p_lp3 * SQR(vov3-3.0); - deahu2dbo = 2.*p_lp3*(vov3 - 3.); - deahu2dsbo = 2.*p_lp3*(vov3 - 3.)*(-1. - 0.16*pow(Di, 3.)); + deahu2dbo = 2.*p_lp3*(vov3 - 3.); + deahu2dsbo = 2.*p_lp3*(vov3 - 3.)*(-1. - 0.16*pow(Di, 3.)); - bo_ij->Cdbo += deahu2dbo; - workspace->CdDelta[i] += deahu2dsbo; + bo_ij->Cdbo += deahu2dbo; + workspace->CdDelta[i] += deahu2dsbo; #ifdef TEST_ENERGY - fprintf(out_control->elp,"C2cor%6d%6d%12.6f%12.6f%12.6f\n", + fprintf(out_control->elp,"C2cor%6d%6d%12.6f%12.6f%12.6f\n", system->my_atoms[i].orig_id, system->my_atoms[j].orig_id, e_lph, deahu2dbo, deahu2dsbo ); #endif #ifdef TEST_FORCES - Add_dBO(system, lists, i, pj, deahu2dbo, workspace->f_lp); - Add_dDelta(system, lists, i, deahu2dsbo, workspace->f_lp); + Add_dBO(system, lists, i, pj, deahu2dbo, workspace->f_lp); + Add_dDelta(system, lists, i, deahu2dsbo, workspace->f_lp); #endif - } - } - } + } + } + } } -- GitLab