X-Git-Url: https://hackdaworld.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=posic.c;h=7cde6e2acc4966d277c78397754bd7b11865581a;hb=877139ec35cf357c96fdb314f690fd6075554c47;hp=992f9d153d91286f9fbf7d13ef773f1630460cf5;hpb=8358faac044f73487d64f5ba46690dd84367e532;p=physik%2Fposic.git diff --git a/posic.c b/posic.c index 992f9d1..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; @@ -60,7 +60,7 @@ int main(int argc,char **argv) { /* testing purpose count=2; si=malloc(2*sizeof(t_atom)); - si[0].r.x=0.23*sqrt(3.0)*LC_SI/2.0; + si[0].r.x=0.13*sqrt(3.0)*LC_SI/2.0; si[0].r.y=0; si[0].r.z=0; si[0].element=SI; @@ -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; @@ -111,17 +120,7 @@ int main(int argc,char **argv) { lj.epsilon4=4.0*LJ_EPSILON_SI; ho.equilibrium_distance=0.25*sqrt(3.0)*LC_SI; - ho.spring_constant=4.0*LJ_EPSILON_SI; - - 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; + ho.spring_constant=1.0; 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);