testing
[physik/posic.git] / posic.c
diff --git a/posic.c b/posic.c
index 4eb2d04..926e20c 100644 (file)
--- a/posic.c
+++ b/posic.c
@@ -14,6 +14,8 @@
 
 int main(int argc,char **argv) {
 
+       t_moldyn md;
+
        t_atom *si;
 
        t_visual vis;
@@ -21,10 +23,13 @@ int main(int argc,char **argv) {
        t_random random;
 
        int a,b,c;
-       double t,e;
+       double t,e,u;
+       double help;
        t_3dvec p;
        int count;
 
+       t_lj_params lj;
+
        char fb[32]="saves/fcc_test";
 
        /* init */
@@ -46,15 +51,25 @@ int main(int argc,char **argv) {
        t=TEMPERATURE;
 
        printf("placing silicon atoms ... ");
-       count=create_lattice(DIAMOND,Si,M_SI,LC_SI,a,b,c,&si);
-       printf("(%d) ok!\n",count);
+       //count=create_lattice(DIAMOND,Si,M_SI,LC_SI,a,b,c,&si);
+       //printf("(%d) ok!\n",count);
+       count=2;
+       si=malloc(2*sizeof(t_atom));
+       si[0].r.x=2.0;
+       si[0].r.y=0;
+       si[0].r.z=0;
+       si[0].element=Si;
+       si[0].mass=14.0;
+       si[1].r.x=-2.0;
+       si[1].r.y=0;
+       si[1].r.z=0;
+       si[1].element=Si;
+       si[1].mass=14.0;
 
        printf("setting thermal fluctuations\n");
-       thermal_init(si,&random,count,t);
-
-       /* visualize */
-
-       visual_atoms(&vis,0.0,si,count);
+       //thermal_init(si,&random,count,t);
+       v3_zero(&(si[0].v));
+       v3_zero(&(si[1].v));
 
        /* check kinetic energy */
 
@@ -66,12 +81,50 @@ int main(int argc,char **argv) {
        p=get_total_p(si,count);
        printf("total momentum: %f\n",v3_norm(&p));
 
+       /* check potential energy */
+       md.count=count;
+       md.atom=si;
+       md.potential=potential_lennard_jones;
+       md.force=force_lennard_jones;
+       //md.cutoff_square=((LC_SI/4.0)*(LC_SI/4.0));
+       md.cutoff_square=36.0;
+       md.pot_params=&lj;
+       md.integrate=velocity_verlet;
+       md.time_steps=RUNS;
+       md.tau=TAU;
+       md.status=0;
+       md.visual=&vis;
+
+       lj.sigma6=3.0/16.0*LC_SI*LC_SI;
+       help=lj.sigma6*lj.sigma6;
+       lj.sigma6*=help;
+       lj.sigma12=lj.sigma6*lj.sigma6;
+       lj.epsilon=10000;
+
+       u=get_e_pot(&md);
+
+       printf("potential energy: %f\n",u);
+       printf("total energy (1): %f\n",e+u);
+       printf("total energy (2): %f\n",get_total_energy(&md));
+
+       md.dim.x=a*LC_SI;
+       md.dim.y=b*LC_SI;
+       md.dim.z=c*LC_SI;
+
        /*
         * let's do the actual md algorithm now
         *
         * integration of newtons equations
         */
 
+       /* visualize */
+       //visual_atoms(&vis,0.0,si,count);
+       
+
+       moldyn_integrate(&md);
+
+       printf("total energy (after integration): %f\n",get_total_energy(&md));
+
        /* close */
 
        visual_tini(&vis);