From 043b240b2312c1166440d11928e12fa3ad187086 Mon Sep 17 00:00:00 2001 From: hackbard Date: Sun, 17 Feb 2008 14:38:24 +0100 Subject: [PATCH] added 001 dumbbell config + user dfefined insertion location --- config.h | 42 ++++++++++++++++++++++++++---------------- sic.c | 23 ++++++++++++++++++----- 2 files changed, 44 insertions(+), 21 deletions(-) diff --git a/config.h b/config.h index 2e8d88b..9f04dbd 100644 --- a/config.h +++ b/config.h @@ -5,9 +5,9 @@ // simulation volume -#define LCNTX 31 -#define LCNTY 31 -#define LCNTZ 31 +#define LCNTX 9 +#define LCNTY 9 +#define LCNTZ 9 // initial lattice @@ -15,15 +15,20 @@ //#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 */ @@ -37,13 +42,18 @@ #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) @@ -61,9 +71,9 @@ // 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 @@ -73,7 +83,7 @@ #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 diff --git a/sic.c b/sic.c index 77e3c79..60df74b 100644 --- a/sic.c +++ b/sic.c @@ -68,8 +68,21 @@ int insert_atoms(t_moldyn *moldyn) { 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 @@ -126,7 +139,7 @@ int sic_hook(void *moldyn,void *hook_params) { /* 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 ! */ @@ -152,7 +165,7 @@ insert: /* 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; } @@ -179,7 +192,7 @@ 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; } -- 2.20.1