X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=potentials%2Flennard_jones.c;h=4ff1b4371eb95dc496a66257c993f88786f25724;hb=20409ee0c545235c9246edde2d3cda5de0ddabde;hp=7d45a177134c13080cb5002ad474117f2450eab7;hpb=caa3bc828974c35df2462fde737c31c0a618ee4e;p=physik%2Fposic.git diff --git a/potentials/lennard_jones.c b/potentials/lennard_jones.c index 7d45a17..4ff1b43 100644 --- a/potentials/lennard_jones.c +++ b/potentials/lennard_jones.c @@ -16,8 +16,8 @@ #include #include "../moldyn.h" -#inlcude "../math/math.h" -//#include "lennard_jones.h" +#include "../math/math.h" +#include "lennard_jones.h" int lennard_jones(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) { @@ -25,8 +25,9 @@ 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->pot2b_params; + params=moldyn->pot_params; eps=params->epsilon4; sig6=params->sigma6; sig12=params->sigma12; @@ -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;