nur foo ...
authorhackbard <hackbard>
Thu, 25 Jan 2007 17:52:03 +0000 (17:52 +0000)
committerhackbard <hackbard>
Thu, 25 Jan 2007 17:52:03 +0000 (17:52 +0000)
moldyn.c
moldyn.h
sic.c

index f564075..881f0b6 100644 (file)
--- a/moldyn.c
+++ b/moldyn.c
@@ -344,7 +344,10 @@ int create_lattice(t_moldyn *moldyn,u8 type,double lc,int element,double mass,
 
        switch(type) {
                case CUBIC:
-                       ret=cubic_init(a,b,c,lc,atom,NULL);
+                       origin.x=0.5*lc;
+                       origin.y=0.5*lc;
+                       origin.z=0.5*lc;
+                       ret=cubic_init(a,b,c,lc,atom,&origin);
                        break;
                case FCC:
                        ret=fcc_init(a,b,c,lc,atom,NULL);
@@ -399,8 +402,8 @@ int cubic_init(int a,int b,int c,double lc,t_atom *atom,t_3dvec *origin) {
        for(i=0;i<a;i++) {
                r.y=o.y;
                for(j=0;j<b;j++) {
+                       r.z=o.z;
                        for(k=0;k<c;k++) {
-                               r.z=o.z;
                                v3_copy(&(atom[count].r),&r);
                                count+=1;
                                r.z+=lc;
@@ -1149,8 +1152,10 @@ int moldyn_integrate(t_moldyn *moldyn) {
        /* energy scaling factor */
        energy_scale=moldyn->count*EV;
 
+printf("debug: %f\n",moldyn->atom[0].f.x);
        /* calculate initial forces */
        potential_force_calc(moldyn);
+printf("debug: %f\n",moldyn->atom[0].f.x);
 
        /* some stupid checks before we actually start calculating bullshit */
        if(moldyn->cutoff>0.5*moldyn->dim.x)
@@ -1232,8 +1237,8 @@ int moldyn_integrate(t_moldyn *moldyn) {
                        if(!(i%v)) {
                                visual_atoms(&(moldyn->vis),moldyn->time,
                                             moldyn->atom,moldyn->count);
-                               printf("\rsched: %d, steps: %d, debug: %f | %f",
-                                      sched->count,i,moldyn->p/ATM,moldyn->p/ATM);
+                               printf("\rsched: %d, steps: %d, debug: %f",
+                                      sched->count,i,moldyn->p/ATM);
                                fflush(stdout);
                        }
                }
index 69cee96..0dbc1f9 100644 (file)
--- a/moldyn.h
+++ b/moldyn.h
@@ -146,7 +146,7 @@ typedef struct s_moldyn {
 
        t_random random;        /* random interface */
 
-       int debug;              /* debugging stuff, ignore */
+       double debug;           /* debugging stuff, ignore */
 } t_moldyn;
 
 #define MOLDYN_STAT_PBX                        0x01    /* periodic boudaries in x */
@@ -235,7 +235,7 @@ typedef struct s_tersoff_exchange {
        t_3dvec dzeta_ji;
 } t_tersoff_exchange;
 
-/* tersoff multi (2!) potential parameters */
+/* tersoff mult (2!) potential parameters */
 typedef struct s_tersoff_mult_params {
        double S[2];            /* tersoff cutoff radii */
        double S2[2];           /* tersoff cutoff radii squared */
@@ -290,7 +290,7 @@ typedef struct s_tersoff_mult_params {
 #define KILOGRAM                       (1.0/AMU)               /* amu */
 #define NEWTON (METER*KILOGRAM/(SECOND*SECOND))        /* A amu / fs^2 */
 #define PASCAL (NEWTON/(METER*METER))                  /* N / A^2 */
-#define ATM    (1.0133e5*PASCAL)                       /* N / A^2 */
+#define ATM    ((1.0133e5*PASCAL))                     /* N / A^2 */
 
 #define MOLDYN_TEMP                    273.0
 #define MOLDYN_TAU                     1.0
@@ -330,7 +330,8 @@ typedef struct s_tersoff_mult_params {
 #define LC_SI                  (0.543105e-9*METER)             /* A */
 #define M_SI                   28.08553                        /* amu */
 
-#define LJ_SIGMA_SI            ((0.25*sqrt(3.0)*LC_SI)/1.122462)       /* A */
+//#define LJ_SIGMA_SI          ((0.25*sqrt(3.0)*LC_SI)/1.122462)       /* A */
+#define LJ_SIGMA_SI            (LC_SI/1.122462)                        /* A */
 #define LJ_EPSILON_SI          (2.1678*EV)                             /* NA */
 
 #define TM_R_SI                        (2.7e-10*METER)                 /* A */
diff --git a/sic.c b/sic.c
index 999d860..7e1249c 100644 (file)
--- a/sic.c
+++ b/sic.c
@@ -59,13 +59,13 @@ int main(int argc,char **argv) {
        //set_potential2b(&md,tersoff_mult_2bp,&tp);
        //set_potential2b_post(&md,tersoff_mult_post_2bp,&tp);
        //set_potential3b(&md,tersoff_mult_3bp,&tp);
-       //set_potential2b(&md,lennard_jones,&lj);
-       set_potential2b(&md,harmonic_oscillator,&ho);
+       set_potential2b(&md,lennard_jones,&lj);
+       //set_potential2b(&md,harmonic_oscillator,&ho);
 
        /* cutoff radius */
        //set_cutoff(&md,TM_S_SI);
        //set_cutoff(&md,2*LC_SI*0.5*sqrt(1.5));
-       set_cutoff(&md,1.1*LC_SI);
+       set_cutoff(&md,2.0*LC_SI);
 
        /*
         * potential parameters
@@ -81,7 +81,7 @@ int main(int argc,char **argv) {
        /* harmonic oscillator */
        //ho.equilibrium_distance=0.25*sqrt(3.0)*LC_SI;
        ho.equilibrium_distance=LC_SI;
-       ho.spring_constant=.1;
+       ho.spring_constant=LJ_EPSILON_SI;
 
        /*
          * tersoff mult potential parameters for SiC
@@ -115,18 +115,18 @@ int main(int argc,char **argv) {
        tersoff_mult_complete_params(&tp);
 
        /* set (initial) dimensions of simulation volume */
-       //set_dim(&md,8*LC_SI*0.5*sqrt(1.5),8*LC_SI*0.5*sqrt(1.5),8*LC_SI*0.5*sqrt(1.5),TRUE);
-       set_dim(&md,8*LC_SI,8*LC_SI,8*LC_SI,TRUE);
+       set_dim(&md,6*LC_SI,6*LC_SI,6*LC_SI,TRUE);
 
        /* set periodic boundary conditions in all directions */
        set_pbc(&md,TRUE,TRUE,TRUE);
 
        /* create the lattice / place atoms */
        create_lattice(&md,CUBIC,LC_SI,SI,M_SI,
+       //create_lattice(&md,FCC,LC_SI,SI,M_SI,
        //create_lattice(&md,DIAMOND,LC_SI,SI,M_SI,
        //               ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
                       ATOM_ATTR_2BP|ATOM_ATTR_HB,
-                      0,8,8,8);
+                      0,6,6,6);
        moldyn_bc_check(&md);
 
        /* testing configuration */
@@ -171,7 +171,7 @@ int main(int argc,char **argv) {
        thermal_init(&md,TRUE);
 
        /* create the simulation schedule */
-       moldyn_add_schedule(&md,1001,1.0);
+       moldyn_add_schedule(&md,100001,1.0);
        //moldyn_add_schedule(&md,501,1.0);
        //moldyn_add_schedule(&md,501,1.0);
 
@@ -182,7 +182,7 @@ int main(int argc,char **argv) {
        moldyn_set_log_dir(&md,argv[1]);
        moldyn_set_report(&md,"Frank Zirkelbach","Test 1");
        moldyn_set_log(&md,LOG_TOTAL_ENERGY,1);
-       moldyn_set_log(&md,VISUAL_STEP,10);
+       moldyn_set_log(&md,VISUAL_STEP,1000);
        moldyn_set_log(&md,CREATE_REPORT,0);
 
        /*