From a0de2f27a5390507566626be41c9345d583a1ddc Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer <akohlmey@gmail.com> Date: Thu, 8 Feb 2018 19:15:09 +0100 Subject: [PATCH] avoid segfaults in USER-MESO by checking for required atom style flags --- src/USER-MESO/fix_mvv_dpd.cpp | 3 +++ src/USER-MESO/pair_mdpd.cpp | 3 +++ src/USER-MESO/pair_mdpd_rhosum.cpp | 6 +++++- src/USER-MESO/pair_tdpd.cpp | 10 +++++++--- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/USER-MESO/fix_mvv_dpd.cpp b/src/USER-MESO/fix_mvv_dpd.cpp index 77a67273f6..299f453ea7 100644 --- a/src/USER-MESO/fix_mvv_dpd.cpp +++ b/src/USER-MESO/fix_mvv_dpd.cpp @@ -61,6 +61,9 @@ int FixMvvDPD::setmask() void FixMvvDPD::init() { + if (!atom->vest_flag) + error->all(FLERR,"Fix mvv/dpd requires atom attribute vest"); + dtv = update->dt; dtf = 0.5 * update->dt * force->ftm2v; } diff --git a/src/USER-MESO/pair_mdpd.cpp b/src/USER-MESO/pair_mdpd.cpp index bf78ea5af7..ba72304ddb 100644 --- a/src/USER-MESO/pair_mdpd.cpp +++ b/src/USER-MESO/pair_mdpd.cpp @@ -282,6 +282,9 @@ void PairMDPD::init_style() if (comm->ghost_velocity == 0) error->all(FLERR,"Pair mdpd requires ghost atoms store velocity"); + if (!atom->rho_flag) + error->all(FLERR,"Pair style mdpd requires atom attribute rho"); + // if newton off, forces between atoms ij will be double computed // using different random numbers diff --git a/src/USER-MESO/pair_mdpd_rhosum.cpp b/src/USER-MESO/pair_mdpd_rhosum.cpp index 9c4d6f804f..d2a4ad33d8 100644 --- a/src/USER-MESO/pair_mdpd_rhosum.cpp +++ b/src/USER-MESO/pair_mdpd_rhosum.cpp @@ -62,7 +62,11 @@ PairMDPDRhoSum::~PairMDPDRhoSum() { init specific to this pair style ------------------------------------------------------------------------- */ -void PairMDPDRhoSum::init_style() { +void PairMDPDRhoSum::init_style() +{ + if (!atom->rho_flag) + error->all(FLERR,"Pair style mdpd/rhosum requires atom attribute rho"); + // need a full neighbor list int irequest = neighbor->request(this,instance_me); neighbor->requests[irequest]->half = 0; diff --git a/src/USER-MESO/pair_tdpd.cpp b/src/USER-MESO/pair_tdpd.cpp index 1f2bd4eb6c..42904d2b5a 100644 --- a/src/USER-MESO/pair_tdpd.cpp +++ b/src/USER-MESO/pair_tdpd.cpp @@ -315,13 +315,17 @@ void PairTDPD::coeff(int narg, char **arg) void PairTDPD::init_style() { if (comm->ghost_velocity == 0) - error->all(FLERR,"Pair tdpd requires ghost atoms store velocity"); + error->all(FLERR,"Pair style tdpd requires ghost atoms store velocity"); + + if (!atom->tdpd_flag) + error->all(FLERR,"Pair style tdpd requires atom properties cc/cc_flux"); // if newton off, forces between atoms ij will be double computed // using different random numbers - if (force->newton_pair == 0 && comm->me == 0) error->warning(FLERR, - "Pair tdpd needs newton pair on for momentum conservation"); + if (force->newton_pair == 0 && comm->me == 0) + error->warning(FLERR,"Pair tdpd needs newton pair on " + "for momentum conservation"); neighbor->request(this,instance_me); } -- GitLab