projects
/
physik
/
posic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added postproc stuff, sic mods (today i was a lazy ass!)
[physik/posic.git]
/
potentials
/
harmonic_oscillator.c
diff --git
a/potentials/harmonic_oscillator.c
b/potentials/harmonic_oscillator.c
index
e2a80e4
..
b203453
100644
(file)
--- a/
potentials/harmonic_oscillator.c
+++ b/
potentials/harmonic_oscillator.c
@@
-25,6
+25,7
@@
int harmonic_oscillator(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) {
t_3dvec force,distance;
double d,f;
double sc,equi_dist;
t_3dvec force,distance;
double d,f;
double sc,equi_dist;
+ double energy;
params=moldyn->pot_params;
sc=params->spring_constant;
params=moldyn->pot_params;
sc=params->spring_constant;
@@
-37,7
+38,10
@@
int harmonic_oscillator(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) {
if(bc) check_per_bound(moldyn,&distance);
d=v3_norm(&distance);
if(d<=moldyn->cutoff) {
if(bc) check_per_bound(moldyn,&distance);
d=v3_norm(&distance);
if(d<=moldyn->cutoff) {
- moldyn->energy+=(0.5*sc*(d-equi_dist)*(d-equi_dist));
+ energy=(0.5*sc*(d-equi_dist)*(d-equi_dist));
+ moldyn->energy+=energy;
+ ai->e+=0.5*energy;
+ aj->e+=0.5*energy;
/* f = -grad E; grad r_ij = -1 1/r_ij distance */
f=sc*(1.0-equi_dist/d);
v3_scale(&force,&distance,f);
/* f = -grad E; grad r_ij = -1 1/r_ij distance */
f=sc*(1.0-equi_dist/d);
v3_scale(&force,&distance,f);