Unverified Commit 958d5ca0 authored by Axel Kohlmeyer's avatar Axel Kohlmeyer Committed by GitHub
Browse files

Merge pull request #1897 from akohlmey/user-sdpd-atom-style-check

Add check for required atom properties in USER-SDPD
parents 7434267f bf626469
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -23,7 +23,9 @@
#include "atom.h"
#include "force.h"
#include "comm.h"
#include "neighbor.h"
#include "neigh_list.h"
#include "neigh_request.h"
#include "memory.h"
#include "error.h"
#include "domain.h"
@@ -238,7 +240,7 @@ void PairSDPDTaitwaterIsothermal::allocate () {
void PairSDPDTaitwaterIsothermal::settings (int narg, char **arg) {
  if (narg != 2 && narg != 3)
    error->all (FLERR, "Illegal number of arguments for "
                "pair_style sdpd/taitwater/morris/isothermal");
                "pair_style sdpd/taitwater/isothermal");

  temperature = force->numeric (FLERR, arg[0]);
  viscosity = force->numeric (FLERR, arg[1]);
@@ -297,13 +299,26 @@ void PairSDPDTaitwaterIsothermal::coeff (int narg, char **arg) {
    error->all(FLERR,"Incorrect args for pair coefficients");
}

/* ----------------------------------------------------------------------
 init specific to this pair style
------------------------------------------------------------------------- */

void PairSDPDTaitwaterIsothermal::init_style()
{
  if ((!atom->rho_flag) || (atom->drho == NULL))
    error->all(FLERR,"Pair style dpd/taitwater/isothermal requires atom "
               "attributes rho and drho");

  neighbor->request(this,instance_me);
}

/* ----------------------------------------------------------------------
 init for one type pair i,j and corresponding j,i
 ------------------------------------------------------------------------- */

double PairSDPDTaitwaterIsothermal::init_one (int i, int j) {
  if (setflag[i][j] == 0)
    error->all(FLERR,"Not all pair sph/taitwater/morris coeffs are set");
    error->all(FLERR,"Not all pair sdpd/taitwater/isothermal coeffs are set");

  cut[j][i] = cut[i][j];

+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ class PairSDPDTaitwaterIsothermal : public Pair {
  void settings (int, char **);
  void coeff (int, char **);
  virtual double init_one (int, int);
  virtual void init_style();

 protected:
  double viscosity, temperature;
+2 −0
Original line number Diff line number Diff line
@@ -175,6 +175,8 @@ Atom::Atom(LAMMPS *lmp) : Pointers(lmp)
  spin_flag = eradius_flag = ervel_flag = erforce_flag = ervelforce_flag = 0;
  cs_flag = csforce_flag = vforce_flag = etag_flag = 0;

  // USER-SPH, USER-MESO, and USER-DPD flags

  rho_flag = e_flag = cv_flag = vest_flag = 0;
  dpd_flag = edpd_flag = tdpd_flag = 0;