upgrades to global and local hyper, including more output

This commit is contained in:
Steve Plimpton
2019-06-18 12:29:46 -06:00
parent a39a35af20
commit 08471684f3
10 changed files with 447 additions and 190 deletions

View File

@ -142,7 +142,7 @@ void Hyper::command(int narg, char **arg)
update->whichflag = 1;
update->nsteps = nsteps;
update->beginstep = update->firststep = update->ntimestep;
update->endstep = update->laststep = update->firststep + nsteps;
update->endstep = update->laststep = update->beginstep + nsteps;
if (update->laststep < 0)
error->all(FLERR,"Too many timesteps");
@ -265,7 +265,7 @@ void Hyper::command(int narg, char **arg)
double fraczero = 1.0;
double fracneg = 1.0;
double nnewbond,avenbias,avebiascoeff,minbiascoeff,maxbiascoeff;
double nnewbond,aveboost,avenbias,avebiascoeff,minbiascoeff,maxbiascoeff;
double maxbondperatom,neighbondperbond,avebiasnow;
double tbondbuild,rmaxever,rmaxeverbig,allghost_toofar;
double biasoverlap;
@ -283,17 +283,18 @@ void Hyper::command(int narg, char **arg)
if (hyperstyle == LOCAL) {
nnewbond = fix_hyper->query(9);
maxbondperatom = fix_hyper->query(10);
avenbias = fix_hyper->query(11);
avebiascoeff = fix_hyper->query(12);
minbiascoeff = fix_hyper->query(13);
maxbiascoeff = fix_hyper->query(14);
neighbondperbond = fix_hyper->query(15);
avebiasnow = fix_hyper->query(16);
tbondbuild = fix_hyper->query(17);
rmaxever = fix_hyper->query(18);
rmaxeverbig = fix_hyper->query(19);
allghost_toofar = fix_hyper->query(20);
biasoverlap = fix_hyper->query(21);
aveboost = fix_hyper->query(11);
avenbias = fix_hyper->query(12);
avebiascoeff = fix_hyper->query(13);
minbiascoeff = fix_hyper->query(14);
maxbiascoeff = fix_hyper->query(15);
neighbondperbond = fix_hyper->query(16);
avebiasnow = fix_hyper->query(17);
tbondbuild = fix_hyper->query(18);
rmaxever = fix_hyper->query(19);
rmaxeverbig = fix_hyper->query(20);
allghost_toofar = fix_hyper->query(21);
biasoverlap = fix_hyper->query(22);
}
}
@ -305,7 +306,8 @@ void Hyper::command(int narg, char **arg)
if (!out) continue;
fprintf(out,"Cummulative quantities for fix hyper:\n");
fprintf(out," hyper time = %g\n",t_hyper);
fprintf(out," time boost factor = %g\n",t_hyper/(nsteps*update->dt));
fprintf(out," time boost factor = %g\n", t_hyper /
((update->ntimestep-fix_hyper->ntimestep_initial)*update->dt));
fprintf(out," event timesteps = %d\n",nevent_running);
fprintf(out," # of atoms in events = %d\n",nevent_atoms_running);
fprintf(out,"Quantities for this hyper run:\n");
@ -325,6 +327,7 @@ void Hyper::command(int narg, char **arg)
fprintf(out," max bonds/atom = %g\n",maxbondperatom);
fprintf(out,"Quantities for this hyper run specific to "
"fix hyper/local:\n");
fprintf(out," ave boost for all bonds/step = %g\n",aveboost);
fprintf(out," ave biased bonds/step = %g\n",avenbias);
fprintf(out," ave bias coeff of all bonds = %g\n",avebiascoeff);
fprintf(out," min bias coeff of any bond = %g\n",minbiascoeff);
@ -382,6 +385,7 @@ void Hyper::dynamics(int nsteps, double & /* time_category */)
lmp->init();
update->integrate->setup(0);
// this may be needed if don't do full init
//modify->addstep_compute_all(update->ntimestep);
bigint ncalls = neighbor->ncalls;
@ -413,7 +417,7 @@ void Hyper::quench(int flag)
update->whichflag = 2;
update->nsteps = maxiter;
update->endstep = update->laststep = update->firststep + maxiter;
update->endstep = update->laststep = update->ntimestep + maxiter;
if (update->laststep < 0)
error->all(FLERR,"Too many iterations");
update->restrict_output = 1;