X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=posic.c;h=7cde6e2acc4966d277c78397754bd7b11865581a;hb=881d130efd1104bd886507e3d90f262f7a82cf2d;hp=8bbfe0e39fa869bb5cdf7de287d851456374dcb9;hpb=bdb198c5a5fe38361d10f98e7db366b0915e56fb;p=physik%2Fposic.git diff --git a/posic.c b/posic.c index 8bbfe0e..7cde6e2 100644 --- a/posic.c +++ b/posic.c @@ -22,7 +22,7 @@ int main(int argc,char **argv) { t_random random; int a,b,c; - double e,u; + double e; double help; t_3dvec p; int count; @@ -79,8 +79,8 @@ int main(int argc,char **argv) { md.force=force_lennard_jones; //md.potential=potential_harmonic_oscillator; //md.force=force_harmonic_oscillator; - md.cutoff=R_CUTOFF; - md.cutoff_square=(R_CUTOFF*R_CUTOFF); + md.cutoff=R_CUTOFF*LC_SI; + md.cutoff_square=md.cutoff*md.cutoff; md.pot_params=&lj; //md.pot_params=&ho; md.integrate=velocity_verlet; @@ -88,6 +88,14 @@ int main(int argc,char **argv) { //md.tau=TAU; md.status=0; md.visual=&vis; + /* dimensions of the simulation cell */ + md.dim.x=a*LC_SI; + md.dim.y=b*LC_SI; + md.dim.z=c*LC_SI; + + /* verlet list init */ + // later integrated in moldyn_init function! + verlet_list_init(&md); printf("setting thermal fluctuations (T=%f K)\n",md.t); thermal_init(&md,&random,count); @@ -97,13 +105,14 @@ int main(int argc,char **argv) { e=get_e_kin(si,count); printf("kinetic energy: %.40f [J]\n",e); - printf("3/2 N k T = %.40f [J]\n",1.5*count*K_BOLTZMANN*md.t); + printf("3/2 N k T = %.40f [J] (T=%f [K])\n", + 1.5*count*K_BOLTZMANN*md.t,md.t); /* check total momentum */ p=get_total_p(si,count); printf("total momentum: %.30f [Ns]\n",v3_norm(&p)); - /* check potential energy */ + /* potential paramters */ lj.sigma6=LJ_SIGMA_SI*LJ_SIGMA_SI; help=lj.sigma6*lj.sigma6; lj.sigma6*=help; @@ -113,16 +122,6 @@ int main(int argc,char **argv) { ho.equilibrium_distance=0.25*sqrt(3.0)*LC_SI; ho.spring_constant=1.0; - u=get_e_pot(&md); - - printf("potential energy: %.40f [J]\n",u); - printf("total energy (1): %.40f [J]\n",e+u); - printf("total energy (2): %.40f [J]\n",get_total_energy(&md)); - - md.dim.x=a*LC_SI; - md.dim.y=b*LC_SI; - md.dim.z=c*LC_SI; - printf("estimated accurate time step: %.30f [s]\n", estimate_time_step(&md,3.0,md.t)); @@ -140,6 +139,8 @@ int main(int argc,char **argv) { /* close */ + verlet_list_shutdown(&md); + rand_close(&random); moldyn_shutdown(&md);