Unverified Commit 0fa9cd50 authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

use utils::strmatch to simplify checks for compatible thermostat/barostat fixes

parent 8803183b
Loading
Loading
Loading
Loading
+6 −28
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@
#include "finish.h"
#include "timer.h"
#include "error.h"
#include "utils.h"

using namespace LAMMPS_NS;

@@ -94,34 +95,11 @@ void Temper::command(int narg, char **arg)
  // fix style must be appropriate for temperature control, i.e. it needs
  // to provide a working Fix::reset_target() and must not change the volume.

  if ((strcmp(modify->fix[whichfix]->style,"nvt") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/asphere") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/asphere/omp") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/body") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/eff") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/intel") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/kk") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/kk/host") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/kk/device") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/omp") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/sphere") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"nvt/sphere/omp") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"langevin") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"langevin/drude") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"langevin/eff") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"gld") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"gle") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"rigid/nvt") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"rigid/nvt/small") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"rigid/nvt/omp") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"rigid/nvt/small/omp") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"temp/berendsen") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"temp/berendsen/cuda") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"temp/csvr") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"temp/csld") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"temp/rescale") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"temp/rescale/cuda") != 0) &&
      (strcmp(modify->fix[whichfix]->style,"temp/rescale/eff") != 0))
  if ((!utils::strmatch(modify->fix[whichfix]->style,"^nvt")) &&
      (!utils::strmatch(modify->fix[whichfix]->style,"^langevin")) &&
      (!utils::strmatch(modify->fix[whichfix]->style,"^gl[de]$")) &&
      (!utils::strmatch(modify->fix[whichfix]->style,"^rigid/nvt")) &&
      (!utils::strcmp(modify->fix[whichfix]->style,"^temp/"))
    error->universe_all(FLERR,"Tempering temperature fix is not supported");

  // setup for long tempering run
+3 −2
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
#include "finish.h"
#include "timer.h"
#include "error.h"
#include "utils.h"

using namespace LAMMPS_NS;

@@ -97,8 +98,8 @@ void TemperNPT::command(int narg, char **arg)
  // change the volume. This currently only applies to fix npt and
  // fix rigid/npt variants

  if ((strncmp(modify->fix[whichfix]->style,"npt",3) != 0)
      && (strncmp(modify->fix[whichfix]->style,"rigid/npt",9) != 0))
  if ( (!utils::strmatch(modify->fix[whichfix]->style,"^npt")) &&
       (!utils::strmatch(modify->fix[whichfix]->style,"^rigid/npt")) )
    error->universe_all(FLERR,"Tempering temperature and pressure fix is not supported");

  // setup for long tempering run