Lemina
A molecular dynamics package for network, granular material and point particles with a range of interaction potential.
 
Loading...
Searching...
No Matches
EvalRdf.c File Reference
#include <stdio.h>
#include <math.h>
#include "global.h"
+ Include dependency graph for EvalRdf.c:

Go to the source code of this file.

Functions

void EvalRdf ()
 

Function Documentation

◆ EvalRdf()

void EvalRdf ( )

Definition at line 26 of file EvalRdf.c.

26 {
27 real dr[NDIM+1], deltaR, normFac, rr, rrRange;
28 int j1, j2, n;
29 countRdf ++;
30 if(countRdf == 1){
31 for(n = 1 ; n <= sizeHistRdf ; n ++)
32 histRdf[n] = 0.;
33 }
34 rrRange = Sqr(rangeRdf);
35 deltaR = rangeRdf / sizeHistRdf;
36 for(j1 = 1 ; j1 <= nAtom - 1 ; j1 ++){
37 for(j2 = j1 + 1 ; j2 <= nAtom ; j2 ++){
38
39 dr[1] = rx[j1] - rx[j2];
40 if(fabs(dr[1]) > regionH[1])
41 dr[1] -= SignR(region[1], dr[1]);
42
43 dr[2] = ry[j1] - ry[j2];
44 if(fabs(dr[2]) > regionH[2])
45 dr[2] -= SignR(region[2], dr[2]);
46
47 rr = Sqr(dr[1]) + Sqr(dr[2]);
48
49 if(rr < rrRange){
50 n = (int)(sqrt(rr)/deltaR) + 1;
51 histRdf[n] ++;
52 }
53 }
54 }
55
56 if(countRdf == limitRdf){
57 normFac = region[1]*region[2] / (M_PI*Sqr(deltaR)*nAtom*nAtom*countRdf );
58 for(n = 1 ; n <= sizeHistRdf ; n ++)
59 histRdf[n] *= normFac/(n-0.5);
60 // PRINT THE RADIAL DISTRIBUTION DATA ON TO DISK FILE
61 real rBin;
62 fprintf(fprdf,"rdf @ timeNow %lf\n", timeNow);
63 for(n = 1 ; n <= sizeHistRdf ; n ++){
64 rBin = (n - 0.5)*rangeRdf/sizeHistRdf;
65 fprintf(fprdf, "%lf %lf\n", rBin, histRdf[n]);
66 }
67 }
68
69}
int nAtom
Definition global.h:24
double real
Definition global.h:11
#define NDIM
Definition global.h:13
int countRdf
int limitRdf
Definition global.h:104
double region[2+1]
double * rx
#define Sqr(x)
Definition global.h:14
double * histRdf
FILE * fprdf
double timeNow
Definition global.h:20
int sizeHistRdf
Definition global.h:104
double rangeRdf
Definition global.h:103
double regionH[2+1]
Definition global.h:20
#define SignR(x, y)
Definition global.h:15
double * ry
Definition global.h:17

References countRdf, fprdf, histRdf, limitRdf, nAtom, NDIM, rangeRdf, region, regionH, rx, ry, SignR, sizeHistRdf, Sqr, and timeNow.