initial lattice control
authorhackbard <hackbard@sage.physik.uni-augsburg.de>
Wed, 13 Feb 2008 12:32:05 +0000 (13:32 +0100)
committerhackbard <hackbard@sage.physik.uni-augsburg.de>
Wed, 13 Feb 2008 12:32:05 +0000 (13:32 +0100)
config.h
sic.c

index c46bca1..2e8d88b 100644 (file)
--- a/config.h
+++ b/config.h
@@ -9,6 +9,12 @@
 #define LCNTY          31
 #define LCNTZ          31
 
+// initial lattice
+
+#define INIT_SI                // plain silicon
+//#define INIT_C               // plain diamond
+//#define INIT_3CSIC   // 3C-SiC
+
 // prerun
 
 #define PRERUN         600
  #define INS_BRAND     0
 #endif
 
-#define INS_RAND       0
-//#define INS_HEXA     1
-//#define INS_TETRA    2
-//#define INS_110DB    3
+#define INS_RAND       // random nsert
+//#define INS_HEXA     // hexagonal interstitial position
+//#define INS_TETRA    // tetrahedral interstitial position
+//#define INS_110DB    // 110 dumbbell interstitial position
 
 #define INS_ATTR       ATOM_ATTR_HB                            // heat bath
 //#define INS_ATTR     ATOM_ATTR_HB|ATOM_ATTR_VB               // + vis bonds
diff --git a/sic.c b/sic.c
index cea4c39..406ad53 100644 (file)
--- a/sic.c
+++ b/sic.c
@@ -319,34 +319,60 @@ int main(int argc,char **argv) {
 
        /* set (initial) dimensions of simulation volume */
 #ifdef ALBE
+ #ifdef INIT_SI
        set_dim(&md,LCNTX*ALBE_LC_SI,LCNTY*ALBE_LC_SI,LCNTZ*ALBE_LC_SI,TRUE);
-       //set_dim(&md,LCNTX*ALBE_LC_C,LCNTY*ALBE_LC_C,LCNTZ*ALBE_LC_C,TRUE);
-       //set_dim(&md,LCNTX*ALBE_LC_SIC,LCNTY*ALBE_LC_SIC,LCNTZ*ALBE_LC_SIC,TRUE);
+ #endif
+ #ifdef INIT_C
+       set_dim(&md,LCNTX*ALBE_LC_C,LCNTY*ALBE_LC_C,LCNTZ*ALBE_LC_C,TRUE);
+ #endif
+ #ifdef INIT_3CSIC
+       set_dim(&md,LCNTX*ALBE_LC_SIC,LCNTY*ALBE_LC_SIC,LCNTZ*ALBE_LC_SIC,TRUE);
+ #endif
 #else
+ #ifdef INIT_SI
        set_dim(&md,LCNTX*LC_SI,LCNTY*LC_SI,LCNTZ*LC_SI,TRUE);
-       //set_dim(&md,LCNTX*LC_C,LCNTY*LC_C,LCNTZ*LC_C,TRUE);
-       //set_dim(&md,LCNTX*TM_LC_SIC,LCNTY*TM_LC_SIC,LCNTZ*TM_LC_SIC,TRUE);
+ #endif
+ #ifdef INIT_C
+       set_dim(&md,LCNTX*LC_C,LCNTY*LC_C,LCNTZ*LC_C,TRUE);
+ #endif
+ #ifdef INIT_3CSIC
+       set_dim(&md,LCNTX*TM_LC_SIC,LCNTY*TM_LC_SIC,LCNTZ*TM_LC_SIC,TRUE);
+ #endif
 #endif
 
        /* set periodic boundary conditions in all directions */
        set_pbc(&md,TRUE,TRUE,TRUE);
 
        /* create the lattice / place atoms */
-       //
+
+       // diamond
 #ifdef ALBE
+ #ifdef INIT_SI
        create_lattice(&md,DIAMOND,ALBE_LC_SI,SI,M_SI,
-       //create_lattice(&md,DIAMOND,ALBE_LC_C,C,M_C,
+                      ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
+                      0,LCNTX,LCNTY,LCNTZ,NULL);
+ #endif
+ #ifdef INIT_C
+       create_lattice(&md,DIAMOND,ALBE_LC_C,C,M_C,
+                      ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
+                      1,LCNTX,LCNTY,LCNTZ,NULL);
+ #endif
 #else
+ #ifdef INIT_SI
        create_lattice(&md,DIAMOND,LC_SI,SI,M_SI,
-#endif
                       ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
-       //               ATOM_ATTR_2BP|ATOM_ATTR_HB,
-                      0,LCNTX,LCNTY,LCNTZ,NULL);
-       //               1,LCNTX,LCNTY,LCNTZ,NULL);
+                      0,LCNTX,LCNTY,LCNTZ,NULL);
+ #endif
+ #ifdef INIT_C
+       create_lattice(&md,DIAMOND,LC_C,SI,M_SI,
+                      ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
+                      1,LCNTX,LCNTY,LCNTZ,NULL);
+ #endif
+#endif
 
-       /* create zinkblende structure */
-       /*
-#ifdef ALBE
+       // zinkblende 
+#ifdef INIT_3CSIC
+ #ifdef ALBE
        r.x=0.5*0.25*ALBE_LC_SIC; r.y=r.x; r.z=r.x;
        create_lattice(&md,FCC,ALBE_LC_SIC,SI,M_SI,
                       ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
@@ -355,7 +381,7 @@ int main(int argc,char **argv) {
        create_lattice(&md,FCC,ALBE_LC_SIC,C,M_C,
                       ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
                       1,LCNTX,LCNTY,LCNTZ,&r);
-#else
+ #else
        r.x=0.5*0.25*TM_LC_SIC; r.y=r.x; r.z=r.x;
        create_lattice(&md,FCC,TM_LC_SIC,SI,M_SI,
                       ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
@@ -364,8 +390,8 @@ int main(int argc,char **argv) {
        create_lattice(&md,FCC,TM_LC_SIC,C,M_C,
                       ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
                       1,LCNTX,LCNTY,LCNTZ,&r);
+ #endif
 #endif
-       */
 
        /* check for right atom placing */
        moldyn_bc_check(&md);