projects
/
physik
/
posic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
lennard jones force
[physik/posic.git]
/
moldyn.c
diff --git
a/moldyn.c
b/moldyn.c
index
82749b2
..
57ae62f
100644
(file)
--- a/
moldyn.c
+++ b/
moldyn.c
@@
-226,10
+226,16
@@
int force_lennard_jones(t_moldyn *moldyn) {
t_3dvec distance;
t_3dvec force;
double d,h1,h2;
t_3dvec distance;
t_3dvec force;
double d,h1,h2;
+ double eps,sig6,sig12;
atom=moldyn->atom;
count=moldyn->count;
params=moldyn->pot_params;
atom=moldyn->atom;
count=moldyn->count;
params=moldyn->pot_params;
+ eps=params->epsilon;
+ sig6=params->sigma6;
+ sig12=params->sigma12;
+
+ for(i=0;i<count;i++) v3_zero(&(atom[i].f));
for(i=0;i<count;i++) {
for(j=0;j<i;j++) {
for(i=0;i<count;i++) {
for(j=0;j<i;j++) {
@@
-242,6
+248,13
@@
int force_lennard_jones(t_moldyn *moldyn) {
h2=d*d; /* 1/r^8 */
h1*=d; /* 1/r^6 */
h1*=h2; /* 1/r^14 */
h2=d*d; /* 1/r^8 */
h1*=d; /* 1/r^6 */
h1*=h2; /* 1/r^14 */
+ h1*=sig12;
+ h2*=sig6;
+ d=-12.0*h1+6.0*h2;
+ d*=eps;
+ v3_scale(&force,&distance,d);
+ v3_add(&(atom[j].f),&(atom[j].f),&force);
+ v3_sub(&(atom[i].f),&(atom[i].f),&force);
}
}
}
}
}
}