projects
/
physik
/
posic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added normalization to pair correlation calc
[physik/posic.git]
/
moldyn.c
diff --git
a/moldyn.c
b/moldyn.c
index
93c72da
..
f2923c3
100644
(file)
--- a/
moldyn.c
+++ b/
moldyn.c
@@
-2375,13
+2375,13
@@
int calculate_pair_correlation(t_moldyn *moldyn,double dr,void *ptr) {
unsigned char bc;
t_3dvec dist;
double d;
unsigned char bc;
t_3dvec dist;
double d;
-
//
double norm;
+ double norm;
int o,s;
unsigned char ibrand;
lc=&(moldyn->lc);
int o,s;
unsigned char ibrand;
lc=&(moldyn->lc);
- slots=moldyn->cutoff/dr;
+ slots=
2.0*
moldyn->cutoff/dr;
o=2*slots;
if(slots*dr<=moldyn->cutoff)
o=2*slots;
if(slots*dr<=moldyn->cutoff)
@@
-2458,7
+2458,7
@@
int calculate_pair_correlation(t_moldyn *moldyn,double dr,void *ptr) {
d=v3_absolute_square(&dist);
/* ignore if greater or equal cutoff */
d=v3_absolute_square(&dist);
/* ignore if greater or equal cutoff */
- if(d>=moldyn->cutoff_square)
+ if(d>=
4.0*
moldyn->cutoff_square)
continue;
/* fill the slots */
continue;
/* fill the slots */
@@
-2494,16
+2494,17
@@
int calculate_pair_correlation(t_moldyn *moldyn,double dr,void *ptr) {
}
}
}
}
- /* normalization
+ /* normalization
*/
for(i=1;i<slots;i++) {
for(i=1;i<slots;i++) {
- // normalization: 4 pi r
r
dr
+ // normalization: 4 pi r
^2
dr
// here: not double counting pairs -> 2 pi r r dr
// here: not double counting pairs -> 2 pi r r dr
- norm=2*M_PI*moldyn->count*(i*dr*i*dr)*dr;
+ // ... and actually it's a constant times r^2
+ norm=i*i*dr*dr;
stat[i]/=norm;
stat[slots+i]/=norm;
stat[o+i]/=norm;
}
stat[i]/=norm;
stat[slots+i]/=norm;
stat[o+i]/=norm;
}
- */
+
/*
*/
if(ptr==NULL) {
/* todo: store/print pair correlation function */
if(ptr==NULL) {
/* todo: store/print pair correlation function */