/* ---------------------------------------------------------------------- This is the ██╗ ██╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗████████╗███████╗ ██║ ██║██╔════╝ ██╔════╝ ██╔════╝ ██║ ██║╚══██╔══╝██╔════╝ ██║ ██║██║ ███╗██║ ███╗██║ ███╗███████║ ██║ ███████╗ ██║ ██║██║ ██║██║ ██║██║ ██║██╔══██║ ██║ ╚════██║ ███████╗██║╚██████╔╝╚██████╔╝╚██████╔╝██║ ██║ ██║ ███████║ ╚══════╝╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝® DEM simulation engine, released by DCS Computing Gmbh, Linz, Austria http://www.dcs-computing.com, office@dcs-computing.com LIGGGHTS® is part of CFDEM®project: http://www.liggghts.com | http://www.cfdem.com Core developer and main author: Christoph Kloss, christoph.kloss@dcs-computing.com LIGGGHTS® is open-source, distributed under the terms of the GNU Public License, version 2 or later. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You should have received a copy of the GNU General Public License along with LIGGGHTS®. If not, see http://www.gnu.org/licenses . See also top-level README and LICENSE files. LIGGGHTS® and CFDEM® are registered trade marks of DCS Computing GmbH, the producer of the LIGGGHTS® software and the CFDEM®coupling software See http://www.cfdem.com/terms-trademark-policy for details. ------------------------------------------------------------------------- Contributing author and copyright for this file: Arno Mayrhofer (DCS Computing GmbH, Linz) Copyright 2017- DCS Computing GmbH, Linz ------------------------------------------------------------------------- */ #ifndef CONTACT_MODEL_BASE_H_ #define CONTACT_MODEL_BASE_H_ #include namespace LIGGGHTS { namespace ContactModels { class ContactModelBase : private Pointers { public: bool is_wall() { return is_wall_; } virtual void tally_pp(double val,int i, int j, int index) = 0; virtual void tally_pw(double val,int i, int j, int index) = 0; // gets a preregistred offset of a contacthistory name int get_history_offset(const std::string hname); // adds a offset for a certain history name void add_history_offset(const std::string hname, const int offset, const bool overwrite = false); ContactModelBase(LAMMPS *lmp, bool _is_wall) : Pointers(lmp), is_wall_(_is_wall) {} virtual bool contact_match(const std::string mtype, const std::string model) = 0; private: bool is_wall_; std::map history_offsets; }; } } #endif