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     Andreas Aigner (JKU Linz))
36 
37     Copyright 2009-2012 JKU Linz
38 ------------------------------------------------------------------------- */
39 
40 #ifndef LMP_FIX_SPH
41 #define LMP_FIX_SPH
42 
43 #include "fix.h"
44 
45 namespace LAMMPS_NS {
46 
47 class FixSph : public Fix {
48  public:
49   FixSph(class LAMMPS *, int, char **);
50   ~FixSph();
51   int setmask();
52   virtual void updatePtrs();
53   void init();
54   void init_list(int, class NeighList *);
post_integrate()55   virtual void post_integrate() {};
56   virtual void post_integrate_respa(int, int);
57 
get_kernel_id()58   int get_kernel_id(){return kernel_id;};
set_kernel_id(int newid)59   inline void set_kernel_id(int newid){kernel_id = newid;};
60 
61   int kernel_flag;        // 1 if Fix uses sph kernel, 0 if not
62 
63  protected:
interpDist(double disti,double distj)64   inline double interpDist(double disti, double distj) {return 0.5*(disti+distj);};
65 
66   class FixPropertyAtom* fppaSl; //smoothing length
67   class FixPropertyGlobal* fppaSlType; //per type smoothing length
68   double *sl;         // per atom smoothing length
69   double **slComType; // common smoothing length in case of mass_type=1
70 
71   int kernel_id;
72   double kernel_cut;
73   char *kernel_style;
74 
75   class NeighList *list;
76   int nlevels_respa;
77 
78   int mass_type; // flag defined in atom_vec*
79 
80 };
81 
82 }
83 
84 #endif
85