]> hackdaworld.org Git - physik/posic.git/commitdiff
isecurity checkin .. .we have the diffs anyways!
authorhackbard <hackbard@sage.physik.uni-augsburg.de>
Tue, 13 Nov 2007 16:48:43 +0000 (17:48 +0100)
committerhackbard <hackbard@sage.physik.uni-augsburg.de>
Tue, 13 Nov 2007 16:48:43 +0000 (17:48 +0100)
Makefile
moldyn.c
potentials/albe.c
run
sic.c

index 70f4a5d16798107d33343f80e6f74a61d8bc610c..0e7b1228cd17cacbffb916c17c6d36613190942a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,7 @@ CFLAGS += -g
 
 CFLAGS += -DALBE
 #CFLAGS += -DDEBUG
+CFLAGS += -DDSTART=400 -DDEND=600
 #CFLAGS += -DVDEBUG
 #CFLAGS += -DTERSOFF_ORIG
 
index 258985eb412a83ec6d3dd466c1c76c3c3a624c2c..997c32ccb24d44607d746d1e6aed87027e9de6cd 100644 (file)
--- a/moldyn.c
+++ b/moldyn.c
@@ -1469,7 +1469,7 @@ int moldyn_integrate(t_moldyn *moldyn) {
        /* calculate initial forces */
        potential_force_calc(moldyn);
 #ifdef DEBUG
-return 0;
+//return 0;
 #endif
 
        /* some stupid checks before we actually start calculating bullshit */
@@ -1911,7 +1911,13 @@ int potential_force_calc(t_moldyn *moldyn) {
        }
 
 #ifdef DEBUG
-       printf("\nATOM 0: %f %f %f\n\n",itom->f.x,itom->f.y,itom->f.z);
+       //printf("\nATOM 0: %f %f %f\n\n",itom->f.x,itom->f.y,itom->f.z);
+       if(moldyn->time>DSTART&&moldyn->time<DEND) {
+               printf("force:\n");
+               printf("  x: %0.40f\n",moldyn->atom[5832].f.x);
+               printf("  y: %0.40f\n",moldyn->atom[5832].f.y);
+               printf("  z: %0.40f\n",moldyn->atom[5832].f.z);
+       }
 #endif
 
        /* calculate global virial */
index 688712dc0c2da74ae1473d96de2604b18c43d555..fea7ba818fdeb9562e895166ef181c078a740929 100644 (file)
@@ -81,6 +81,8 @@ int albe_mult_3bp_j1(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) {
                moldyn->run3bp=0;
                return 0;
        }
+//if(ai==&(moldyn->atom[5832]))
+//     printf(" %d: %d (%f)\n",ai->tag,aj->tag,moldyn->time);
 
        /* d_ij */
        d_ij=sqrt(d_ij2);
@@ -191,14 +193,6 @@ int albe_mult_3bp_k1(t_moldyn *moldyn,
                exchange->zeta_ij+=f_c_ik*g;
        }
 
-#ifdef DEBUG
-       if((ai==&(moldyn->atom[0]))|
-          (aj==&(moldyn->atom[864]))|
-          (ak==&(moldyn->atom[1003]))) {
-               printf(" -> %f %f %f\n",exchange->ci2di2,frac,h_cos);
-       }
-#endif
-
        /* store even more data for second k loop */
        exchange->g[kcount]=g;
        exchange->dg[kcount]=dg;
@@ -290,7 +284,8 @@ int albe_mult_3bp_j2(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) {
        v3_sub(&(aj->f),&(aj->f),&force); // dri rij = - drj rij
 
 #ifdef DEBUG
-       if((ai==&(moldyn->atom[0]))|(aj==&(moldyn->atom[0]))) {
+if(moldyn->time>DSTART&&moldyn->time<DEND) {
+       if((ai==&(moldyn->atom[5832]))|(aj==&(moldyn->atom[5832]))) {
                printf("force 3bp (j2): [%d %d sum]\n",ai->tag,aj->tag);
                printf("adding %f %f %f\n",force.x,force.y,force.z);
                if(ai==&(moldyn->atom[0]))
@@ -301,6 +296,7 @@ int albe_mult_3bp_j2(t_moldyn *moldyn,t_atom *ai,t_atom *aj,u8 bc) {
                                                    f_c,b,f_a,f_r);
                printf("        %f %f %f\n",exchange->zeta_ij,.0,.0);
        }
+}
 #endif
 
        /* virial */
@@ -406,11 +402,13 @@ int albe_mult_3bp_k2(t_moldyn *moldyn,
        v3_add(&(ai->f),&(ai->f),&force);
        
 #ifdef DEBUG
-       if(ai==&(moldyn->atom[0])) {
+if(moldyn->time>DSTART&&moldyn->time<DEND) {
+       if(ai==&(moldyn->atom[5832])) {
                printf("force 3bp (k2): [%d %d %d]\n",ai->tag,aj->tag,ak->tag);
                printf("adding %f %f %f\n",force.x,force.y,force.z);
                printf("total i: %f %f %f\n",ai->f.x,ai->f.y,ai->f.z);
        }
+}
 #endif
 
        /* virial */
@@ -423,11 +421,13 @@ int albe_mult_3bp_k2(t_moldyn *moldyn,
        v3_add(&(aj->f),&(aj->f),&force);
 
 #ifdef DEBUG
-       if(aj==&(moldyn->atom[0])) {
+if(moldyn->time>DSTART&&moldyn->time<DEND) {
+       if(aj==&(moldyn->atom[5832])) {
                printf("force 3bp (k2): [%d %d %d]\n",ai->tag,aj->tag,ak->tag);
                printf("adding %f %f %f\n",force.x,force.y,force.z);
                printf("total j: %f %f %f\n",aj->f.x,aj->f.y,aj->f.z);
        }
+}
 #endif
 
        /* virial */
@@ -444,11 +444,13 @@ int albe_mult_3bp_k2(t_moldyn *moldyn,
        v3_add(&(ak->f),&(ak->f),&force);
 
 #ifdef DEBUG
-       if(ak==&(moldyn->atom[0])) {
+if(moldyn->time>DSTART&&moldyn->time<DEND) {
+       if(ak==&(moldyn->atom[5832])) {
                printf("force 3bp (k2): [%d %d %d]\n",ai->tag,aj->tag,ak->tag);
                printf("adding %f %f %f\n",force.x,force.y,force.z);
                printf("total k: %f %f %f\n",ak->f.x,ak->f.y,ak->f.z);
        }
+}
 #endif
 
        /* virial */
diff --git a/run b/run
index bd72bc23f691fec17006ded74426a4012cd613e6..34b75bd26bc263d303f35f8139c701a44e538748 100755 (executable)
--- a/run
+++ b/run
@@ -5,7 +5,7 @@ if [ "$?" == "0" ]; then
        #./perms
        if [ "$1" ] ; then
                #./visualize -w 640 -h 480 -d $1
-               ./visualize -w 640 -h 480 -d $1 -nll -2.4 -2.4 -2.4 -fur 3.8 3.8 3.8 -b -2.03 -2.03 -2.03 3.39 3.39 3.39 -r 0.6 -c 1.5 -15.0 1.5
+               ./visualize -w 640 -h 480 -d $1 -nll -2.4 -2.4 -2.4 -fur 3.8 3.8 3.8 -b -2.03 -2.03 -2.03 3.39 3.39 3.39 -r 0.6 -c 1.5 -15.0 1.5 -B 0.1
                #rasmol -32 -nodisplay < $1/visualize.scr > /dev/null 2>&1
                ./ppm2avi $1
        fi
diff --git a/sic.c b/sic.c
index 20c80d1748c0c1d2cb2c7d4f68976393f29c85bd..05de728c9e9cdd4be50bf73a1e1a51fd6956d195 100644 (file)
--- a/sic.c
+++ b/sic.c
@@ -39,8 +39,8 @@
 #define LCNTX          9
 #define LCNTY          9
 #define LCNTZ          9
-#define PRERUN         10
-#define POSTRUN                4000
+#define PRERUN         40
+#define POSTRUN                3000
 
 #define R_TITLE                "Silicon self-interstitial"
 #define LOG_E          10
@@ -110,14 +110,35 @@ int hook_add_atom(void *moldyn,void *hook_params) {
        for(j=0;j<NR_ATOMS;j++) {
                run=1;
                while(run) {
-                       r.x=1.0/8.0*ALBE_LC_SI;
+                       // tetrahedral
+                       /*
+                       r.x=0.0;
+                       r.y=0.0;
+                       r.z=0.0;
+                       */
+                       // hexagonal
+                       //
+                       r.x=-1.0/8.0*ALBE_LC_SI;
                        r.y=-1.0/8.0*ALBE_LC_SI;
-                       r.z=-1.0/8.0*ALBE_LC_SI;
-                       //r.x=(rand_get_double(&(md->random))-0.5)*INJ_LENX;
+                       r.z=1.0/8.0*ALBE_LC_SI;
+                       //
+                       // 110 dumbbell
+                       /*
+                       r.x=(-0.5+0.25+0.125)*ALBE_LC_SI;
+                       r.y=(-0.5+0.25+0.125)*ALBE_LC_SI;
+                       r.z=(-0.5+0.25)*ALBE_LC_SI;
+                       md->atom[4372].r.x=(-0.5+0.125+0.125)*ALBE_LC_SI;
+                       md->atom[4372].r.y=(-0.5+0.125+0.125)*ALBE_LC_SI;
+                       */
+                       // random
+                       /*
+                       r.x=(rand_get_double(&(md->random))-0.5)*INJ_LENX;
+                       r.y=(rand_get_double(&(md->random))-0.5)*INJ_LENY;
+                       r.z=(rand_get_double(&(md->random))-0.5)*INJ_LENZ;
+                       */
+                       // offset
                        r.x+=INJ_OFFSET;
-                       //r.y=(rand_get_double(&(md->random))-0.5)*INJ_LENY;
                        r.y+=INJ_OFFSET;
-                       //r.z=(rand_get_double(&(md->random))-0.5)*INJ_LENZ;
                        r.z+=INJ_OFFSET;
                        /* assume valid coordinates */
                        run=0;
@@ -127,6 +148,7 @@ int hook_add_atom(void *moldyn,void *hook_params) {
                                d=v3_absolute_square(&dist);
                                /* reject coordinates */
                                if(d<R_C) {
+                                       //printf("atom %d - %f\n",i,d);
                                        run=1;
                                        break;
                                }
@@ -300,6 +322,7 @@ int main(int argc,char **argv) {
        set_pbc(&md,TRUE,TRUE,TRUE);
 
        /* create the lattice / place atoms */
+       //
 #ifdef ALBE
        create_lattice(&md,DIAMOND,ALBE_LC_SI,SI,M_SI,
        //create_lattice(&md,DIAMOND,ALBE_LC_C,C,M_C,
@@ -310,6 +333,7 @@ int main(int argc,char **argv) {
        //               ATOM_ATTR_2BP|ATOM_ATTR_HB,
                       0,LCNTX,LCNTY,LCNTZ,NULL);
        //               1,LCNTX,LCNTY,LCNTZ,NULL);
+       //
 
        /* create zinkblende structure */
        /*