1 /* ---------------------------------------------------------------------- 2 This is the 3 4 ██╗ ██╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗████████╗███████╗ 5 ██║ ██║██╔════╝ ██╔════╝ ██╔════╝ ██║ ██║╚══██╔══╝██╔════╝ 6 ██║ ██║██║ ███╗██║ ███╗██║ ███╗███████║ ██║ ███████╗ 7 ██║ ██║██║ ██║██║ ██║██║ ██║██╔══██║ ██║ ╚════██║ 8 ███████╗██║╚██████╔╝╚██████╔╝╚██████╔╝██║ ██║ ██║ ███████║ 9 ╚══════╝╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝® 10 11 DEM simulation engine, released by 12 DCS Computing Gmbh, Linz, Austria 13 http://www.dcs-computing.com, office@dcs-computing.com 14 15 LIGGGHTS® is part of CFDEM®project: 16 http://www.liggghts.com | http://www.cfdem.com 17 18 Core developer and main author: 19 Christoph Kloss, christoph.kloss@dcs-computing.com 20 21 LIGGGHTS® is open-source, distributed under the terms of the GNU Public 22 License, version 2 or later. It is distributed in the hope that it will 23 be useful, but WITHOUT ANY WARRANTY; without even the implied warranty 24 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You should have 25 received a copy of the GNU General Public License along with LIGGGHTS®. 26 If not, see http://www.gnu.org/licenses . See also top-level README 27 and LICENSE files. 28 29 LIGGGHTS® and CFDEM® are registered trade marks of DCS Computing GmbH, 30 the producer of the LIGGGHTS® software and the CFDEM®coupling software 31 See http://www.cfdem.com/terms-trademark-policy for details. 32 33 ------------------------------------------------------------------------- 34 Contributing author and copyright for this file: 35 (if not contributing author is listed, this file has been contributed 36 by the core developer) 37 38 Copyright 2012- DCS Computing GmbH, Linz 39 Copyright 2009-2012 JKU Linz 40 ------------------------------------------------------------------------- */ 41 42 #ifdef FIX_CLASS 43 44 FixStyle(couple/cfd,FixCfdCoupling) 45 46 #else 47 48 #ifndef LMP_FIX_CFD_COUPLING_H 49 #define LMP_FIX_CFD_COUPLING_H 50 51 #include "fix.h" 52 53 namespace LAMMPS_NS { 54 55 class FixCfdCoupling : public Fix { 56 friend class CfdRegionmodel; 57 friend class CfdDatacoupling; 58 59 public: 60 61 FixCfdCoupling(class LAMMPS *, int, char **); 62 ~FixCfdCoupling(); 63 void post_create(); 64 65 int setmask(); 66 void init(); 67 virtual void setup(int); 68 virtual void min_setup(int); 69 void end_of_step(); 70 void post_force_respa(int vflag, int ilevel, int iloop); 71 void min_post_force(int); 72 73 // pushing and pulling of properties 74 //void pull(char *name,char *type,void *&ptr); 75 //void push(char *name,char *type,void *&ptr); 76 void add_push_property(const char *name, const char *type); 77 void add_pull_property(const char *name, const char *type); 78 void check_datatransfer(); 79 80 int coupleThis() {return couple_this_;} 81 82 class CfdDatacoupling* get_dc(){return dc_;} 83 84 protected: 85 86 int iarg_; 87 88 // data transfer is handled by this class 89 class CfdDatacoupling *dc_; 90 91 private: 92 93 int couple_this_; 94 95 // couple every couple_nevery_ timesteps 96 // not used in case of MPI coupling 97 int couple_nevery_,ts_create_; 98 99 // regionmodels 100 class CfdRegionmodel *rm_; 101 102 int nlevels_respa; 103 }; 104 105 } 106 107 #endif 108 #endif 109