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 #ifdef FIX_CLASS 15 // clang-format off 16 FixStyle(drude/transform/direct,FixDrudeTransform<false>); 17 FixStyle(drude/transform/inverse,FixDrudeTransform<true>); 18 // clang-format on 19 #else 20 21 #ifndef LMP_FIX_DRUDE_TRANSFORM_H 22 #define LMP_FIX_DRUDE_TRANSFORM_H 23 24 #include "fix.h" 25 26 namespace LAMMPS_NS { 27 28 template <bool inverse> class FixDrudeTransform: public Fix { 29 public: 30 FixDrudeTransform(class LAMMPS *, int, char **); 31 ~FixDrudeTransform(); 32 int setmask(); 33 void init(); 34 void setup(int vflag); 35 void reduced_to_real(); 36 void real_to_reduced(); 37 void initial_integrate(int vflag); 38 void final_integrate(); 39 int pack_forward_comm(int n, int *list, double *buf, int pbc_flag, int *pbc); 40 void unpack_forward_comm(int n, int first, double *buf); 41 42 protected: 43 double *mcoeff; 44 class FixDrude *fix_drude; 45 }; 46 47 } // namespace LAMMPS_NS 48 49 #endif 50 #endif 51