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     Arno Mayrhofer (DCS Computing GmbH)
39 
40     Copyright 2016-     DCS Computing GmbH, Linz
41 ------------------------------------------------------------------------- */
42 
43 #include "pointers.h"
44 #include "tri_mesh.h"
45 #include "scalar_container.h"
46 #include "fix_property_atom.h"
47 #include "error.h"
48 #include "fix_mesh_surface.h"
49 #include <string>
50 
51 #ifndef LMP_MESH_MODULE_H
52 #define LMP_MESH_MODULE_H
53 
54 namespace LAMMPS_NS
55 {
56     class FixMeshSurface;
57 
58     class MeshModule : protected Pointers
59     {
60     public:
61         ~MeshModule();
62 
post_create_pre_restart()63         virtual void post_create_pre_restart() {}
post_create()64         virtual void post_create() {}
init()65         virtual void init() {}
setup(int vflag)66         virtual void setup(int vflag) {}
setup_pre_force(int vflag)67         virtual void setup_pre_force(int vflag) {}
pre_force(int vflag)68         virtual void pre_force(int vflag) {}
initial_integrate(int vflag)69         virtual void initial_integrate(int vflag) {}
final_integrate_pre_comm()70         virtual void final_integrate_pre_comm() {}
final_integrate()71         virtual void final_integrate() {}
end_of_step()72         virtual void end_of_step() {}
compute_vector(int n)73         virtual double compute_vector(int n) { return 0.0; }
add_particle_contribution(int ip,double * frc,double * delta,int iTri,double * v_wall)74         virtual void add_particle_contribution(int ip, double *frc, double *delta, int iTri, double *v_wall) {}
modify_param(int narg,char ** arg)75         virtual int modify_param(int narg, char **arg) { return 0; }
76 
setmask()77         virtual int  setmask()
78         { return 0; }
79 
get_mesh()80         TriMesh* get_mesh()
81         { return mesh; }
82 
get_num_vector_components()83         virtual int get_num_vector_components() const
84         { return 0; }
85 
86     protected:
87         MeshModule(LAMMPS *lmp, int &iarg_, int narg, char **arg, FixMeshSurface *fix_mesh_);
88         FixMeshSurface *fix_mesh;
89         TriMesh *mesh;
90     };
91 }
92 
93 #endif
94