From 0945c3dda850aa6635be7f5aa7124c24ce992a23 Mon Sep 17 00:00:00 2001 From: jtclemm Date: Mon, 30 Oct 2023 20:22:14 -0600 Subject: [PATCH] Bug in rheo, cleaning up old files --- src/RHEO/fix_rheo.cpp | 4 +- src/atom_vec_rheo_thermal.cpp | 200 ---------------------------------- src/atom_vec_rheo_thermal.h | 46 -------- 3 files changed, 2 insertions(+), 248 deletions(-) delete mode 100644 src/atom_vec_rheo_thermal.cpp delete mode 100644 src/atom_vec_rheo_thermal.h diff --git a/src/RHEO/fix_rheo.cpp b/src/RHEO/fix_rheo.cpp index e26ce8744b..c8dca74d32 100644 --- a/src/RHEO/fix_rheo.cpp +++ b/src/RHEO/fix_rheo.cpp @@ -94,11 +94,11 @@ FixRHEO::FixRHEO(LAMMPS *lmp, int narg, char **arg) : } else if (strcmp(arg[iarg],"surface/detection") == 0) { surface_flag = 1; if(iarg + 2 >= narg) error->all(FLERR,"Illegal surface/detection option in fix rheo"); - if (strcmp(arg[iarg + 1], "coordination")) { + if (strcmp(arg[iarg + 1], "coordination") == 0) { surface_style = COORDINATION; zmin_surface = utils::inumeric(FLERR,arg[iarg + 2],false,lmp); zmin_splash = utils::inumeric(FLERR,arg[iarg + 3],false,lmp); - } else if (strcmp(arg[iarg + 1], "divergence")) { + } else if (strcmp(arg[iarg + 1], "divergence") == 0) { surface_style = DIVR; divr_surface = utils::numeric(FLERR,arg[iarg + 2],false,lmp); zmin_splash = utils::inumeric(FLERR,arg[iarg + 3],false,lmp); diff --git a/src/atom_vec_rheo_thermal.cpp b/src/atom_vec_rheo_thermal.cpp deleted file mode 100644 index de0c7fa5d7..0000000000 --- a/src/atom_vec_rheo_thermal.cpp +++ /dev/null @@ -1,200 +0,0 @@ -/* ---------------------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - https://www.lammps.org/, Sandia National Laboratories - LAMMPS development team: developers@lammps.org - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. - ------------------------------------------------------------------------- */ - -/* ---------------------------------------------------------------------- - Contributing authors: - Joel Clemmer (SNL), Thomas O'Connor (CMU), Eric Palermo (CMU) ------------------------------------------------------------------------ */ - -#include "atom_vec_rheo_thermal.h" - -#include "atom.h" - -#include - -using namespace LAMMPS_NS; - -/* ---------------------------------------------------------------------- */ - -AtomVecRHEOThermal::AtomVecRHEOThermal(LAMMPS *lmp) : AtomVec(lmp) -{ - molecular = Atom::ATOMIC; - mass_type = PER_TYPE; - forceclearflag = 1; - - atom->status_flag = 1; - atom->conductivity_flag = 1; - atom->temperature_flag = 1; - atom->heatflow_flag = 1; - atom->pressure_flag = 1; - atom->rho_flag = 1; - atom->viscosity_flag = 1; - - // strings with peratom variables to include in each AtomVec method - // strings cannot contain fields in corresponding AtomVec default strings - // order of fields in a string does not matter - // except: fields_data_atom & fields_data_vel must match data file - - fields_grow = {"status", "rho", "drho", "temperature", "heatflow", "conductivity", "pressure", "viscosity"}; - fields_copy = {"status", "rho", "drho", "temperature", "heatflow", "conductivity", "pressure", "viscosity"}; - fields_comm = {"status", "rho", "temperature"}; - fields_comm_vel = {"status", "rho", "temperature"}; - fields_reverse = {"drho", "heatflow"}; - fields_border = {"status", "rho", "temperature"}; - fields_border_vel = {"status", "rho", "temperature"}; - fields_exchange = {"status", "rho", "temperature"}; - fields_restart = {"status", "rho", "temperature"}; - fields_create = {"status", "rho", "drho", "temperature", "heatflow", "conductivity", "pressure", "viscosity"}; - fields_data_atom = {"id", "type", "status", "rho", "temperature", "x"}; - fields_data_vel = {"id", "v"}; - - setup_fields(); -} - -/* ---------------------------------------------------------------------- - set local copies of all grow ptrs used by this class, except defaults - needed in replicate when 2 atom classes exist and it calls pack_restart() -------------------------------------------------------------------------- */ - -void AtomVecRHEOThermal::grow_pointers() -{ - status = atom->status; - conductivity = atom->conductivity; - temperature = atom->temperature; - heatflow = atom->heatflow; - pressure = atom->pressure; - rho = atom->rho; - drho = atom->drho; - viscosity = atom->viscosity; -} - -/* ---------------------------------------------------------------------- - clear extra forces starting at atom N - nbytes = # of bytes to clear for a per-atom vector -------------------------------------------------------------------------- */ - -void AtomVecRHEOThermal::force_clear(int n, size_t nbytes) -{ - memset(&drho[n], 0, nbytes); - memset(&heatflow[n], 0, nbytes); -} - -/* ---------------------------------------------------------------------- - modify what AtomVec::data_atom() just unpacked - or initialize other atom quantities -------------------------------------------------------------------------- */ - -void AtomVecRHEOThermal::data_atom_post(int ilocal) -{ - drho[ilocal] = 0.0; - heatflow[ilocal] = 0.0; - pressure[ilocal] = 0.0; - viscosity[ilocal] = 0.0; - conductivity[ilocal] = 0.0; -} - -/* ---------------------------------------------------------------------- - assign an index to named atom property and return index - return -1 if name is unknown to this atom style -------------------------------------------------------------------------- */ - -int AtomVecRHEOThermal::property_atom(const std::string &name) -{ - if (name == "status") return 0; - if (name == "rho") return 1; - if (name == "drho") return 2; - if (name == "temperature") return 3; - if (name == "heatflow") return 4; - if (name == "conductivity") return 5; - if (name == "pressure") return 6; - if (name == "viscosity") return 7; - return -1; -} - -/* ---------------------------------------------------------------------- - pack per-atom data into buf for ComputePropertyAtom - index maps to data specific to this atom style -------------------------------------------------------------------------- */ - -void AtomVecRHEOThermal::pack_property_atom(int index, double *buf, int nvalues, int groupbit) -{ - int *mask = atom->mask; - int nlocal = atom->nlocal; - int n = 0; - - if (index == 0) { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) - buf[n] = status[i]; - else - buf[n] = 0.0; - n += nvalues; - } - } else if (index == 1) { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) - buf[n] = rho[i]; - else - buf[n] = 0.0; - n += nvalues; - } - } else if (index == 2) { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) - buf[n] = drho[i]; - else - buf[n] = 0.0; - n += nvalues; - } - } else if (index == 3) { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) - buf[n] = temperature[i]; - else - buf[n] = 0.0; - n += nvalues; - } - } else if (index == 4) { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) - buf[n] = heatflow[i]; - else - buf[n] = 0.0; - n += nvalues; - } - } else if (index == 5) { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) - buf[n] = conductivity[i]; - else - buf[n] = 0.0; - n += nvalues; - } - } else if (index == 6) { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) - buf[n] = pressure[i]; - else - buf[n] = 0.0; - n += nvalues; - } - } else if (index == 7) { - for (int i = 0; i < nlocal; i++) { - if (mask[i] & groupbit) - buf[n] = viscosity[i]; - else - buf[n] = 0.0; - n += nvalues; - } - } -} diff --git a/src/atom_vec_rheo_thermal.h b/src/atom_vec_rheo_thermal.h deleted file mode 100644 index 27c6c3c9b5..0000000000 --- a/src/atom_vec_rheo_thermal.h +++ /dev/null @@ -1,46 +0,0 @@ -/* -*- c++ -*- ---------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - https://www.lammps.org/, Sandia National Laboratories - LAMMPS development team: developers@lammps.org - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. -------------------------------------------------------------------------- */ - -#ifdef ATOM_CLASS -// clang-format off -AtomStyle(rheo/thermal,AtomVecRHEOThermal); -// clang-format on -#else - -#ifndef LMP_ATOM_VEC_RHEO_THERMAL_H -#define LMP_ATOM_VEC_RHEO_THERMAL_H - -#include "atom_vec.h" - -namespace LAMMPS_NS { - -class AtomVecRHEOThermal : virtual public AtomVec { - public: - AtomVecRHEOThermal(class LAMMPS *); - - void grow_pointers() override; - void force_clear(int, size_t) override; - void data_atom_post(int) override; - int property_atom(const std::string &) override; - void pack_property_atom(int, double *, int, int) override; - - private: - int *status; - double *conductivity, *temperature, *heatflow; - double *pressure, *rho, *drho, *viscosity; -}; - -} // namespace LAMMPS_NS - -#endif -#endif