X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=sic.c;h=8901104bb849971bdfbd99bd59f59fc25e1dc2e6;hb=42cf5612e9b7a14314b5dd295d692ebe19ecd295;hp=77e3c79b4a9912808c23269d3800842baae73e90;hpb=b98288988c7721150c9e872a98e55b9fd3974d9f;p=physik%2Fposic.git diff --git a/sic.c b/sic.c index 77e3c79..8901104 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 ! */ @@ -150,13 +163,6 @@ int sic_hook(void *moldyn,void *hook_params) { insert: - /* immediately go on if no job is to be done */ - if(hp->insert_count==INS_RUNS) { -printf("immediate insert run return!\n"); - hp->state=STATE_POSTRUN; - goto postrun; - } - /* assigne values */ steps=INS_RELAX; tau=INS_TAU; @@ -168,6 +174,13 @@ printf("immediate insert run return!\n"); if(dt>INS_DELTA_TC) 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", @@ -177,12 +190,6 @@ printf("immediate insert run return!\n"); postrun: - /* immediately return if no job is to be done */ - if(hp->postrun_count==POST_RUNS) { -printf("immediate post run return!\n"); - return 0; - } - /* assigne values */ steps=POST_RELAX; tau=POST_TAU; @@ -194,6 +201,12 @@ printf("immediate post run return!\n"); if(dt>POST_DELTA_TC) 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",