// 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;
+ r.z=(-0.1)*ALBE_LC_SI;
+ moldyn->atom[4372].r.z=(-0.4)*ALBE_LC_SI;
#endif
#ifdef INS_USER
// 001 dumbbell
#endif
#ifdef INS_RAND
// random
+#ifdef INS_DYNAMIC_LEN
+ r.x=(rand_get_double(&(moldyn->random))-0.5)*\
+ moldyn->dim.x;
+ r.y=(rand_get_double(&(moldyn->random))-0.5)*\
+ moldyn->dim.y;
+ r.z=(rand_get_double(&(moldyn->random))-0.5)*\
+ moldyn->dim.z;
+#else
r.x=(rand_get_double(&(moldyn->random))-0.5)*INS_LENX;
r.y=(rand_get_double(&(moldyn->random))-0.5)*INS_LENY;
r.z=(rand_get_double(&(moldyn->random))-0.5)*INS_LENZ;
+#endif
#endif
// offset
r.x+=INS_OFFSET;
int steps;
double tau;
double dt;
+ double dp;
hp=hook_params;
md=moldyn;
/* switch on t scaling */
if(md->schedule.count==0)
- set_pt_scale(md,0,0,T_SCALE_BERENDSEN,T_SCALE_TAU);
+ set_pt_scale(md,P_SCALE_BERENDSEN,P_SCALE_TAU,
+ T_SCALE_BERENDSEN,T_SCALE_TAU);
/* my lousy state machine ! */
insert:
- /* immediately go on if no job is to be done */
- if(hp->insert_count==INS_RUNS) {
- printf(" --- insert run return ---\n");
- hp->state=STATE_POSTRUN;
- goto postrun;
- }
-
/* assigne values */
steps=INS_RELAX;
tau=INS_TAU;
/* check temperature */
dt=md->t_avg-md->t_ref;
+ dp=md->p_avg-md->p_ref;
if(dt<0)
dt=-dt;
- if(dt>INS_DELTA_TC)
+ if(dp<0)
+ dp=-dp;
+ if((dt>INS_DELTA_TC)|(dp>INS_DELTA_PC))
goto addsched;
+ /* immediately go on if no job is to be done */
+ if(hp->insert_count==INS_RUNS) {
+ printf(" --- leaving insert state ---\n");
+ hp->state=STATE_POSTRUN;
+ goto postrun;
+ }
+
/* else -> insert atoms */
hp->insert_count+=1;
printf(" ### insert atoms (%d/%d) ###\n",
postrun:
- /* immediately return if no job is to be done */
- if(hp->postrun_count==POST_RUNS) {
- printf(" --- post run return ---\n");
- return 0;
- }
-
/* assigne values */
steps=POST_RELAX;
tau=POST_TAU;
/* check temperature */
dt=md->t_avg-md->t_ref;
+ dp=md->p_avg-md->p_ref;
if(dt<0)
dt=-dt;
- if(dt>POST_DELTA_TC)
+ if(dp<0)
+ dp=-dp;
+ if((dt>POST_DELTA_TC)|(dp>POST_DELTA_PC))
goto addsched;
+ /* immediately return if no job is to be done */
+ if(hp->postrun_count==POST_RUNS) {
+ printf(" --- leaving post run state ---\n");
+ return 0;
+ }
+
/* postrun action */
hp->postrun_count+=1;
printf(" ### postrun (%d/%d) ###\n",
0,LCNTX,LCNTY,LCNTZ,&r);
r.x+=0.25*ALBE_LC_SIC; r.y=r.x; r.z=r.x;
create_lattice(&md,FCC,ALBE_LC_SIC,C,M_C,
- ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB,
+ ATOM_ATTR_1BP|ATOM_ATTR_2BP|ATOM_ATTR_3BP|ATOM_ATTR_HB|ATOM_ATTR_VB,
1,LCNTX,LCNTY,LCNTZ,&r);
#else
r.x=0.5*0.25*TM_LC_SIC; r.y=r.x; r.z=r.x;
/* set temperature & pressure */
set_temperature(&md,atof(argv[2])+273.0);
- set_pressure(&md,BAR);
+ set_pressure(&md,0.0);
/* set amount of steps to skip before average calc */
set_avg_skip(&md,AVG_SKIP);
/* set p/t scaling */
//set_pt_scale(&md,0,0,T_SCALE_BERENDSEN,100.0);
- //set_pt_scale(&md,P_SCALE_BERENDSEN,0.001,
+ //set_pt_scale(&md,P_SCALE_BERENDSEN,0.01/(100*GPA),
// T_SCALE_BERENDSEN,100.0);
//set_pt_scale(&md,0,0,T_SCALE_DIRECT,1.0);
//set_pt_scale(&md,P_SCALE_BERENDSEN,0.001,0,0);
moldyn_set_log(&md,LOG_TOTAL_ENERGY,LOG_E);
moldyn_set_log(&md,LOG_TEMPERATURE,LOG_T);
moldyn_set_log(&md,LOG_PRESSURE,LOG_P);
- moldyn_set_log(&md,VISUAL_STEP,LOG_V);
+ moldyn_set_log(&md,LOG_VOLUME,LOG_V);
+ moldyn_set_log(&md,VISUAL_STEP,LOG_A);
moldyn_set_log(&md,SAVE_STEP,LOG_S);
moldyn_set_log(&md,CREATE_REPORT,0);