Commit cfeb9b5b authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

Merge branch 'collected-small-changes' of github.com:akohlmey/lammps into collected-small-changes

parents 0c805d0b daa77176
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -565,8 +565,10 @@ more instructions on how to use the accelerated styles effectively.

[Restart, fix_modify, output, run start/stop, minimize info:]

No information about this fix is written to "binary restart
files"_restart.html.  None of the "fix_modify"_fix_modify.html options
This fix will restore the initial box settings from "binary restart
files"_restart.html, which allows the fix to be properly continue
deformation, when using the start/stop options of the "run"_run.html
command.  None of the "fix_modify"_fix_modify.html options
are relevant to this fix.  No global or per-atom quantities are stored
by this fix for access by various "output
commands"_Section_howto.html#howto_15.
+16 −17
Original line number Diff line number Diff line
@@ -102,7 +102,7 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg
        if (qlist[iw] > qmax) qmax = qlist[iw];
      }
      iarg += nqlist;
      if (strcmp(arg[iarg],"components") == 0) {
    } else if (strcmp(arg[iarg],"components") == 0) {
      qlcompflag = 1;
      if (iarg+2 > narg)
        error->all(FLERR,"Illegal compute orientorder/atom command");
@@ -118,7 +118,6 @@ ComputeOrientOrderAtom::ComputeOrientOrderAtom(LAMMPS *lmp, int narg, char **arg
      if (iqlcomp < 0)
        error->all(FLERR,"Illegal compute orientorder/atom command");
      iarg += 2;
      }
    } else if (strcmp(arg[iarg],"cutoff") == 0) {
      if (iarg+2 > narg)
        error->all(FLERR,"Illegal compute orientorder/atom command");
+43 −12
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ using namespace LAMMPS_NS;
using namespace FixConst;
using namespace MathConst;

enum{NONE,FINAL,DELTA,SCALE,VEL,ERATE,TRATE,VOLUME,WIGGLE,VARIABLE};
enum{NONE=0,FINAL,DELTA,SCALE,VEL,ERATE,TRATE,VOLUME,WIGGLE,VARIABLE};
enum{ONE_FROM_ONE,ONE_FROM_TWO,TWO_FROM_ONE};

// same as domain.cpp, fix_nvt_sllod.cpp, compute_temp_deform.cpp
@@ -52,6 +52,7 @@ rfix(NULL), irregular(NULL), set(NULL)
  if (narg < 4) error->all(FLERR,"Illegal fix deform command");

  no_change_box = 1;
  restart_global = 1;

  nevery = force->inumeric(FLERR,arg[3]);
  if (nevery <= 0) error->all(FLERR,"Illegal fix deform command");
@@ -59,12 +60,7 @@ rfix(NULL), irregular(NULL), set(NULL)
  // set defaults

  set = new Set[6];
  set[0].style = set[1].style = set[2].style =
    set[3].style = set[4].style = set[5].style = NONE;
  set[0].hstr = set[1].hstr = set[2].hstr =
    set[3].hstr = set[4].hstr = set[5].hstr = NULL;
  set[0].hratestr = set[1].hratestr = set[2].hratestr =
    set[3].hratestr = set[4].hratestr = set[5].hratestr = NULL;
  memset(set,0,6*sizeof(Set));

  // parse arguments

@@ -343,11 +339,9 @@ rfix(NULL), irregular(NULL), set(NULL)
    set[i].hi_initial = domain->boxhi[i];
    set[i].vol_initial = domain->xprd * domain->yprd * domain->zprd;
  }
  for (int i = 3; i < 6; i++) {
    if (i == 5) set[i].tilt_initial = domain->xy;
    else if (i == 4) set[i].tilt_initial = domain->xz;
    else if (i == 3) set[i].tilt_initial = domain->yz;
  }
  set[3].tilt_initial = domain->yz;
  set[4].tilt_initial = domain->xz;
  set[5].tilt_initial = domain->xy;

  // reneighboring only forced if flips can occur due to shape changes

@@ -955,6 +949,43 @@ void FixDeform::end_of_step()
  if (kspace_flag) force->kspace->setup();
}

/* ----------------------------------------------------------------------
   write Set data to restart file
------------------------------------------------------------------------- */

void FixDeform::write_restart(FILE *fp)
{
  if (comm->me == 0) {
    int size = 6*sizeof(Set);
    fwrite(&size,sizeof(int),1,fp);
    fwrite(set,sizeof(Set),6,fp);
  }
}

/* ----------------------------------------------------------------------
   use selected state info from restart file to restart the Fix
------------------------------------------------------------------------- */

void FixDeform::restart(char *buf)
{
  int samestyle = 1;
  Set *set_restart = (Set *) buf;
  for (int i=0; i<6; ++i) {
    // restore data from initial state
    set[i].lo_initial = set_restart[i].lo_initial;
    set[i].hi_initial = set_restart[i].hi_initial;
    set[i].vol_initial = set_restart[i].vol_initial;
    set[i].tilt_initial = set_restart[i].tilt_initial;
    // check if style settings are consitent (should do the whole set?)
    if (set[i].style != set_restart[i].style)
      samestyle = 0;
    if (set[i].substyle != set_restart[i].substyle)
      samestyle = 0;
  }
  if (!samestyle)
    error->all(FLERR,"Fix deform settings not consistent with restart");
}

/* ---------------------------------------------------------------------- */

void FixDeform::options(int narg, char **arg)
+2 −0
Original line number Diff line number Diff line
@@ -35,6 +35,8 @@ class FixDeform : public Fix {
  void init();
  virtual void pre_exchange();
  virtual void end_of_step();
  virtual void write_restart(FILE *);
  virtual void restart(char *buf);
  double memory_usage();

 protected: