implemented basic p ctrl stuff + video with 13 fps
[physik/posic.git] / potentials / lennard_jones.c
index 1738ea5..4ff1b43 100644 (file)
@@ -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;