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 
36     Christoph Kloss (DCS Computing GmbH, Linz)
37     Christoph Kloss (JKU Linz)
38     Richard Berger (JKU Linz)
39     Arno Mayrhofer (DCS Computing GmbH, Linz)
40 
41     Copyright 2012-     DCS Computing GmbH, Linz
42     Copyright 2009-2012 JKU Linz
43 ------------------------------------------------------------------------- */
44 
45 #ifndef CONTACT_MODEL_CONSTANTS_H_
46 #define CONTACT_MODEL_CONSTANTS_H_
47 
48 namespace LIGGGHTS
49 {
50 
51 namespace ContactModels
52 {
53     // This file declares global constant identifiers which are used by contact
54     // models for template specialization. Please note that each model constant
55     // in a group must be unique.
56 
57     static const int CM_REGISTER_SETTINGS      = 1 << 0;
58     static const int CM_CONNECT_TO_PROPERTIES  = 1 << 1;
59     static const int CM_BEGIN_PASS             = 1 << 2;
60     static const int CM_END_PASS               = 1 << 3;
61     static const int CM_SURFACES_INTERSECT     = 1 << 4;
62     static const int CM_SURFACES_CLOSE         = 1 << 5;
63 
64     static const int CONTACT_NORMAL_MODEL      = 1 << 0;
65     static const int CONTACT_COHESION_MODEL    = 1 << 1;
66     static const int CONTACT_TANGENTIAL_MODEL  = 1 << 2;
67     static const int CONTACT_ROLLING_MODEL     = 1 << 3;
68     static const int CONTACT_SURFACE_MODEL     = 1 << 4;
69     static const int CONTACT_FIX               = 1 << 31;
70 
71     // surface models
72     #define SURFACE_MODEL(identifier,str,constant) \
73     static const int identifier = constant;
74     #include "style_surface_model.h"
75     #undef SURFACE_MODEL
76 
77     // normal models
78     static const int NORMAL_OFF = 9;
79     #define NORMAL_MODEL(identifier,str,constant) \
80     static const int identifier = constant;
81     #include "style_normal_model.h"
82     #undef NORMAL_MODEL
83 
84     // tangential models
85     static const int TANGENTIAL_OFF = 0;
86     #define TANGENTIAL_MODEL(identifier,str,constant) \
87     static const int identifier = constant;
88     #include "style_tangential_model.h"
89     #undef TANGENTIAL_MODEL
90 
91     // cohesion models
92     static const int COHESION_OFF = 0;
93     #define COHESION_MODEL(identifier,str,constant) \
94     static const int identifier = constant;
95     #include "style_cohesion_model.h"
96     #undef COHESION_MODEL
97 
98     // rolling models
99     static const int ROLLING_OFF = 0;
100     #define ROLLING_MODEL(identifier,str,constant) \
101     static const int identifier = constant;
102     #include "style_rolling_model.h"
103     #undef ROLLING_MODEL
104 }
105 
106 }
107 
108 #endif
109