1 /* -*- c++ -*- ---------------------------------------------------------- 2 LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator 3 https://www.lammps.org/, Sandia National Laboratories 4 Steve Plimpton, sjplimp@sandia.gov 5 6 Copyright (2003) Sandia Corporation. Under the terms of Contract 7 DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains 8 certain rights in this software. This software is distributed under 9 the GNU General Public License. 10 11 See the README file in the top-level LAMMPS directory. 12 ------------------------------------------------------------------------- */ 13 14 #ifndef LMP_INTEGRATE_H 15 #define LMP_INTEGRATE_H 16 17 #include "pointers.h" 18 19 namespace LAMMPS_NS { 20 21 class Integrate : protected Pointers { 22 public: 23 Integrate(class LAMMPS *, int, char **); 24 virtual ~Integrate(); 25 virtual void init(); 26 virtual void setup(int flag) = 0; 27 virtual void setup_minimal(int) = 0; 28 virtual void run(int) = 0; cleanup()29 virtual void cleanup() {} reset_dt()30 virtual void reset_dt() {} memory_usage()31 virtual double memory_usage() { return 0; } 32 33 protected: 34 int eflag, vflag; // flags for energy/virial computation 35 int virial_style; // compute virial explicitly or implicitly 36 int external_force_clear; // clear forces locally or externally 37 38 int nelist_global, nelist_atom; // # of PE,virial computes to check 39 int nvlist_global, nvlist_atom, ncvlist_atom; 40 class Compute **elist_global; // lists of PE,virial Computes 41 class Compute **elist_atom; 42 class Compute **vlist_global; 43 class Compute **vlist_atom; 44 class Compute **cvlist_atom; 45 46 int pair_compute_flag; // 0 if pair->compute is skipped 47 int kspace_compute_flag; // 0 if kspace->compute is skipped 48 49 void ev_setup(); 50 void ev_set(bigint); 51 }; 52 53 } // namespace LAMMPS_NS 54 55 #endif 56 57 /* ERROR/WARNING messages: 58 59 */ 60