// simulation volume
-#define LCNTX 31
-#define LCNTY 31
-#define LCNTZ 31
+#define LCNTX 9
+#define LCNTY 9
+#define LCNTZ 9
// initial lattice
//#define INIT_C // plain diamond
//#define INIT_3CSIC // 3C-SiC
+// berendsen thermostat
+
+//#define T_SCALE_TAU 10.0
+#define T_SCALE_TAU 100.0
+
// prerun
-#define PRERUN 600
+#define PRERUN 0
#define PRE_TAU 1.0
// insertrun
-#define INS_RUNS 600
-#define INS_ATOMS 10
+#define INS_RUNS 1
+#define INS_ATOMS 1
#define INS_CARBON /* comment for silicon */
#define INS_BRAND 0
#endif
-#define INS_RAND // random nsert
+//#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
+#define INS_001DB // 001 dumbbell interstitial position
+//#define INS_USER // user defined insertion location
+ #define INS_UX -0.25
+ #define INS_UY -0.25
+ #define INS_UZ +0.25
+
+//#define INS_ATTR ATOM_ATTR_HB // heat bath
+#define INS_ATTR ATOM_ATTR_HB|ATOM_ATTR_VB // + vis bonds
//#define INS_ATTR ATOM_ATTR_HB|ATOM_ATTR_VB|ATOM_ATTR_FP // + fixed pos
//#define INS_LENX (12*ALBE_LC_SIC)
// postrun
-#define POST_RUNS 430
-#define POST_DELTA_TC 1.0
-#define POST_DT 1.0
+#define POST_RUNS 1
+#define POST_DELTA_TC 0.01
+#define POST_DT -0.0
#define POST_RELAX 100
#define POST_TAU 1.0
#define LOG_E 10
#define LOG_T 10
#define LOG_P 10
-#define LOG_S 200
-#define LOG_V 200
+#define LOG_S 20
+#define LOG_V 20
-#define AVG_SKIP 500
+#define AVG_SKIP 0
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;
+ moldyn->atom[4372].r.x=(-0.5+0.125+0.125)*ALBE_LC_SI;
+ moldyn->atom[4372].r.y=(-0.5+0.125+0.125)*ALBE_LC_SI;
+#endif
+#ifdef INS_001DB
+ // 001 dumbbell
+ r.x=(-0.5+0.25)*ALBE_LC_SI;
+ r.y=(-0.5+0.25)*ALBE_LC_SI;
+ r.z=(-0.5+0.25+0.125)*ALBE_LC_SI;
+ moldyn->atom[4372].r.z=(-0.5+0.25-0.125)*ALBE_LC_SI;
+#endif
+#ifdef INS_USER
+ // 001 dumbbell
+ r.x=INS_UX*ALBE_LC_SI;
+ r.y=INS_UY*ALBE_LC_SI;
+ r.z=INS_UZ*ALBE_LC_SI;
#endif
#ifdef INS_RAND
// random
/* switch on t scaling */
if(md->schedule.count==0)
- set_pt_scale(md,0,0,T_SCALE_BERENDSEN,100.0);
+ set_pt_scale(md,0,0,T_SCALE_BERENDSEN,T_SCALE_TAU);
/* my lousy state machine ! */
/* immediately go on if no job is to be done */
if(hp->insert_count==INS_RUNS) {
-printf("immediate insert run return!\n");
+ printf(" --- insert run return ---\n");
hp->state=STATE_POSTRUN;
goto postrun;
}
/* immediately return if no job is to be done */
if(hp->postrun_count==POST_RUNS) {
-printf("immediate post run return!\n");
+ printf(" --- post run return ---\n");
return 0;
}