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

Add check for required atom properties in USER-SDPD
This commit is contained in:
Axel Kohlmeyer 2020-02-25 13:26:00 -05:00 committed by GitHub
commit 958d5ca05b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 2 deletions

View File

@ -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];

View File

@ -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;

View File

@ -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;