added 001 dumbbell config + user dfefined insertion location
authorhackbard <hackbard@sage.physik.uni-augsburg.de>
Sun, 17 Feb 2008 13:38:24 +0000 (14:38 +0100)
committerhackbard <hackbard@sage.physik.uni-augsburg.de>
Sun, 17 Feb 2008 13:38:24 +0000 (14:38 +0100)
config.h
sic.c

index 2e8d88b..9f04dbd 100644 (file)
--- 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
 
 //#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)
@@ -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 (file)
--- 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;
        }