X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=potentials%2Flennard_jones.c;h=4ff1b4371eb95dc496a66257c993f88786f25724;hb=684bf7c398cdfa98549b0c7a1fa37e6dc5b35bea;hp=1738ea547c0e8600a4f0c8a6f06d8c2cd026a9b1;hpb=296a35b943e922173ce648ec76a4472e287af108;p=physik%2Fposic.git diff --git a/potentials/lennard_jones.c b/potentials/lennard_jones.c index 1738ea5..4ff1b43 100644 --- a/potentials/lennard_jones.c +++ b/potentials/lennard_jones.c @@ -25,6 +25,7 @@ int lennard_jones(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) { t_3dvec force,distance; double d,h1,h2; double eps,sig6,sig12; + double energy; params=moldyn->pot_params; eps=params->epsilon4; @@ -35,12 +36,16 @@ int lennard_jones(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) { v3_sub(&distance,&(aj->r),&(ai->r)); if(bc) check_per_bound(moldyn,&distance); - d=v3_absolute_square(&distance); /* 1/r^2 */ + d=v3_absolute_square(&distance); /* r^2 */ if(d<=moldyn->cutoff_square) { d=1.0/d; /* 1/r^2 */ h2=d*d; /* 1/r^4 */ + h2*=d; /* 1/r^6 */ h1=h2*h2; /* 1/r^12 */ - moldyn->energy+=(eps*(sig12*h1-sig6*h2)-params->uc); + energy=(eps*(sig12*h1-sig6*h2)-params->uc); + moldyn->energy+=energy; /* total energy */ + ai->e+=0.5*energy; /* site energy */ + aj->e+=0.5*energy; h2*=d; /* 1/r^8 */ h1*=d; /* 1/r^14 */ h2*=6*sig6;