From: hackbard Date: Wed, 13 Feb 2008 12:32:05 +0000 (+0100) Subject: initial lattice control X-Git-Url: https://hackdaworld.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17f108864d7423f253a4a84949cae2e35d90b4c7;p=physik%2Fposic.git initial lattice control --- diff --git a/config.h b/config.h index c46bca1..2e8d88b 100644 --- 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 @@ -31,10 +37,10 @@ #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 --- 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);