KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
DEM_application_variables.h
Go to the documentation of this file.
1 /*
2  * File: DEM_application_variables.h
3  * Author: Salva Latorre
4  *
5  * Created on October 9, 2014, 10:54 AM
6  */
7 
8 #ifndef KRATOS_DEM_APPLICATION_VARIABLES_H
9 #define KRATOS_DEM_APPLICATION_VARIABLES_H
10 
11 #include "includes/define.h"
12 #include "includes/variables.h"
13 #include "includes/dem_variables.h"
14 #include "includes/condition.h"
15 #include "utilities/quaternion.h"
19 
20 namespace Kratos
21 {
22 
23 #define DEM_COPY_SECOND_TO_FIRST_3(a, b) a[0] = b[0]; a[1] = b[1]; a[2] = b[2];
24 #define DEM_COPY_SECOND_TO_FIRST_4(a, b) a[0] = b[0]; a[1] = b[1]; a[2] = b[2]; a[3] = b[3];
25 #define DEM_ADD_SECOND_TO_FIRST(a, b) a[0] += b[0]; a[1] += b[1]; a[2] += b[2];
26 #define DEM_SET_COMPONENTS_TO_ZERO_3(a) a[0] = 0.0; a[1] = 0.0; a[2] = 0.0;
27 #define DEM_SET_COMPONENTS_TO_ZERO_3x3(a) a[0][0] = 0.0; a[0][1] = 0.0; a[0][2] = 0.0; a[1][0] = 0.0; a[1][1] = 0.0; a[1][2] = 0.0; a[2][0] = 0.0; a[2][1] = 0.0; a[2][2] = 0.0;
28 #define DEM_MULTIPLY_BY_SCALAR_3(a, b) a[0] *= (b); a[1] *= (b); a[2] *= (b);
29 #define DEM_MODULUS_3(a) std::sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2])
30 #define DEM_MODULUS_2(a) std::sqrt(a[0] * a[0] + a[1] * a[1])
31 #define DEM_INNER_PRODUCT_3(a, b) (a[0] * b[0] + a[1] * b[1] + a[2] * b[2])
32 #define DEM_SET_TO_CROSS_OF_FIRST_TWO_3(a, b, c) c[0] = a[1] * b[2] - a[2] * b[1]; c[1] = a[2] * b[0] - a[0] * b[2]; c[2] = a[0] * b[1] - a[1] * b[0];
33 #define DEM_COPY_SECOND_TO_FIRST_3x3(a, b) a[0][0] = b[0][0]; a[0][1] = b[0][1]; a[0][2] = b[0][2]; \
34  a[1][0] = b[1][0]; a[1][1] = b[1][1]; a[1][2] = b[1][2]; \
35  a[2][0] = b[2][0]; a[2][1] = b[2][1]; a[2][2] = b[2][2];
36 
37 #define DEM_DETERMINANT_3x3(a0, a1, a2) (a0[0] * (a1[1] * a2[2] - a1[2] * a2[1]) - a0[1] * (a1[0] * a2[2] - a1[2] * a2[0]) + a0[2] * (a1[0] * a2[1] - a1[1] * a2[0]))
38 
39  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, GlobalPointersVector< Element >, CONTINUUM_INI_NEIGHBOUR_ELEMENTS)
40  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, GlobalPointersVector< Element >, NODE_TO_NEIGH_ELEMENT_POINTER)
41 
42  //constitutive law
43  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::string, DEM_CONTINUUM_CONSTITUTIVE_LAW_NAME)
44  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::string, DEM_DISCONTINUUM_CONSTITUTIVE_LAW_NAME)
45  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::string, DEM_ROLLING_FRICTION_MODEL_NAME)
46 
47  //scheme
48  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::string, DEM_TRANSLATIONAL_INTEGRATION_SCHEME_NAME)
49  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::string, DEM_ROTATIONAL_INTEGRATION_SCHEME_NAME)
50  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, DEMIntegrationScheme::Pointer, DEM_TRANSLATIONAL_INTEGRATION_SCHEME_POINTER)
51  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, DEMIntegrationScheme::Pointer, DEM_ROTATIONAL_INTEGRATION_SCHEME_POINTER)
52 
53  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::string, PROBABILITY_DISTRIBUTION)
54  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::string, EXCENTRICITY_PROBABILITY_DISTRIBUTION)
55 
56  // OPTIONS AND FLAGS
57  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, TOP)
58  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, BOTTOM)
59  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, FORCE_INTEGRATION_GROUP)
60  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, IS_STICKY)
61  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, TABLE_NUMBER_VELOCITY) // JIG: Backward compatibility, to erase
62  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, TABLE_NUMBER_ANGULAR_VELOCITY) // JIG: Backward compatibility, to erase
63  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, TABLE_NUMBER_FORCE) // JIG: Backward compatibility, to erase
64  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, TABLE_NUMBER_MOMENT) // JIG: Backward compatibility, to erase
65  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, CONTACT_IMPULSE)
66  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, BOUNDING_BOX_OPTION)
67  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, ROTATION_OPTION)
68  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, VIRTUAL_MASS_OPTION)
69  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, SEARCH_CONTROL)
70  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, IS_TIME_TO_PRINT)
71  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, COORDINATION_NUMBER)
72  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONTINUUM_SEARCH_RADIUS_AMPLIFICATION_FACTOR)
73  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, MAX_AMPLIFICATION_RATIO_OF_THE_SEARCH_RADIUS)
74  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, LOCAL_COORDINATION_NUMBER_OPTION)
75  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, GLOBAL_COORDINATION_NUMBER_OPTION)
76  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, AUTOMATIC_SKIN_COMPUTATION)
77  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SKIN_FACTOR_RADIUS)
78  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, CLEAN_INDENT_OPTION)
79  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, TRIHEDRON_OPTION)
80  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, ROLLING_FRICTION_OPTION)
81  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, POISSON_EFFECT_OPTION)
82  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, SHEAR_STRAIN_PARALLEL_TO_BOND_OPTION)
83  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, NEIGH_INITIALIZED)
84  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, TRIAXIAL_TEST_OPTION)
85  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, FIX_VELOCITIES_FLAG)
86  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, COMPUTE_STRESS_TENSOR_OPTION)
87  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, PARTICLE_ID)
88  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, CONTAINS_CLUSTERS)
89  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, RANDOM_ORIENTATION)
90  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, LOCAL_RESOLUTION_METHOD)
91  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, COMPUTE_FEM_RESULTS_OPTION)
92  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, BREAKABLE_CLUSTER)
93  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, ClusterInformation, CLUSTER_INFORMATION)
94  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::string, CLUSTER_FILE_NAME)
95  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::string, INJECTOR_ELEMENT_TYPE)
96  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, CONTINUUM_OPTION)
97  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, FLOATING_OPTION)
98  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_ENGINE_POWER)
99  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_MAX_ENGINE_FORCE)
100  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_THRESHOLD_VELOCITY)
101  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_ENGINE_PERFORMANCE)
102  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_DRAG_CONSTANT_X)
103  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_DRAG_CONSTANT_Y)
104  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_DRAG_CONSTANT_Z)
105 
106 
107  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, INITIAL_VELOCITY_X_VALUE)
108  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, INITIAL_VELOCITY_Y_VALUE)
109  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, INITIAL_VELOCITY_Z_VALUE)
110  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, INITIAL_ANGULAR_VELOCITY_X_VALUE)
111  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, INITIAL_ANGULAR_VELOCITY_Y_VALUE)
112  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, INITIAL_ANGULAR_VELOCITY_Z_VALUE)
113  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, IS_GHOST)
114  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, GROUP_ID)
115 
116  // *************** Continuum only BEGIN *************
117  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, DELTA_OPTION)
118  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SKIN_SPHERE)
119  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_COHESION)
120  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, INITIAL_COHESION)
121  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, AMOUNT_OF_COHESION_FROM_STRESS)
122  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_TENSION)
123 
124  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, PROPERTIES_ID)
125  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, CONTACT_MESH_OPTION)
126  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, MAX_NUMBER_OF_INTACT_BONDS_TO_CONSIDER_A_SPHERE_BROKEN)
127  //KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, FAILURE_CRITERION_OPTION)
128  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, CONCRETE_TEST_OPTION)
129  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, COHESIVE_GROUP)
130  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, IF_BOUNDARY_ELEMENT)
131  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Vector, IF_BOUNDARY_FACE)
132  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, DenseVector<int>, PARTICLE_CONTACT_FAILURE_ID)
133  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_PRECONSOLIDATION_PRESSURE)
134  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_M_CAMCLAY_SLOPE)
135  // *************** Continuum only END ***************
136 
137  // ********** Beam related variables BEGIN **********
138  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CROSS_AREA)
139  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_PARTICLES_DISTANCE)
140  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_LENGTH)
141  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, I22) // Planar moment of inertia 22
142  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, I33) // Planar moment of inertia 33
143  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_INERTIA_ROT_UNIT_LENGHT_X) // Moment of inertia X / (mass * beam length)
144  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_INERTIA_ROT_UNIT_LENGHT_Y) // Moment of inertia Y / (mass * beam length)
145  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_INERTIA_ROT_UNIT_LENGHT_Z) // Moment of inertia Z / (mass * beam length)
146  // ********** Beam related variables END **********
147 
148  KRATOS_DEFINE_VARIABLE(std::vector<Condition*>, WALL_POINT_CONDITION_POINTERS)
149  typedef std::vector<array_1d<double, 3> > std_vector_of_arrays_3d;
150  KRATOS_DEFINE_VARIABLE(std_vector_of_arrays_3d, WALL_POINT_CONDITION_ELASTIC_FORCES)
151  KRATOS_DEFINE_VARIABLE(std_vector_of_arrays_3d, WALL_POINT_CONDITION_TOTAL_FORCES)
152 
153  // MATERIAL PARAMETERS
154  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, std::vector<PropertiesProxy>, VECTOR_OF_PROPERTIES_PROXIES)
155  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, NODAL_MASS_COEFF)
156  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_MOMENT_OF_INERTIA)
157  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, ROLLING_FRICTION)
158  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, ROLLING_FRICTION_WITH_WALLS)
159  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, HISTORICAL_MIN_K)
160  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_INERTIA)
161  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_DENSITY)
162  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, FRICTION) //deprecated since April 6th, 2020
163  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, STATIC_FRICTION)
164  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DYNAMIC_FRICTION)
165  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, FRICTION_DECAY)
166  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, COEFFICIENT_OF_RESTITUTION)
167  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_ROTATION_DAMP_RATIO)
168  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DAMPING_GAMMA)
169  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, K_NORMAL)
170  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, K_TANGENTIAL)
171  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONICAL_DAMAGE_CONTACT_RADIUS)
172  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONICAL_DAMAGE_MAX_STRESS)
173  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONICAL_DAMAGE_ALPHA)
174  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONICAL_DAMAGE_ALPHA_FUNCTION)
175  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONICAL_DAMAGE_GAMMA)
176  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, LEVEL_OF_FOULING)
177  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, EXCENTRICITY)
178  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, EXCENTRICITY_STANDARD_DEVIATION)
179  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, ROTATIONAL_MOMENT_COEFFICIENT)
180  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, POISSON_VALUE)
181  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, INTERNAL_COHESION)
182  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, K_ALPHA) // for DEM_D_Quadratic_LAW
183 
184  // *************** Continuum only BEGIN *************
185  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SLOPE_FRACTION_N1)
186  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SLOPE_FRACTION_N2)
187  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SLOPE_FRACTION_N3)
188  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SLOPE_LIMIT_COEFF_C1)
189  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SLOPE_LIMIT_COEFF_C2)
190  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SLOPE_LIMIT_COEFF_C3)
191  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, YOUNG_MODULUS_PLASTIC)
192  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PLASTIC_YIELD_STRESS)
193  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DAMAGE_FACTOR)
194  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SHEAR_ENERGY_COEF)
195  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DONZE_G1)
196  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DONZE_G2)
197  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DONZE_G3)
198  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DONZE_MAX_DEF)
199  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONTACT_FAILURE)
200  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONTACT_ORIENTATION)
201  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONTACT_SIGMA)
202  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONTACT_TAU)
203  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, FAILURE_CRITERION_STATE)
204  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, UNIDIMENSIONAL_DAMAGE)
205  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONTACT_SIGMA_MIN)
206  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, TENSION_LIMIT_INCREASE_SLOPE)
207  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONTACT_TAU_ZERO)
208  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONTACT_INTERNAL_FRICC)
209  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, KDEM_STANDARD_DEVIATION_TAU_ZERO)
210  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, KDEM_STANDARD_DEVIATION_FRICTION)
211  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PERTURBED_TAU_ZERO)
212  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PERTURBED_INTERNAL_FRICTION)
213  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SIGMA_3_AVERAGE)
214  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, LOOSE_MATERIAL_YOUNG_MODULUS)
215  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BONDED_MATERIAL_YOUNG_MODULUS)
216  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, DEBUG_PRINTING_OPTION)
217  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, DEBUG_PRINTING_ID_1)
218  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, DEBUG_PRINTING_ID_2)
219  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, FRACTURE_ENERGY)
220  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SIGMA_SLOPE_CHANGE_THRESHOLD)
221  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, INTERNAL_FRICTION_AFTER_THRESHOLD)
222  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SEARCH_RADIUS_INCREMENT_FOR_BONDS_CREATION)
223  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, IS_UNBREAKABLE)
224  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, STIFFNESS_FACTOR)
225 
226  // ****** for parallel bond model BEGIN ***
227  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_YOUNG_MODULUS)
228  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_KNKS_RATIO)
229  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_SIGMA_MAX)
230  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_SIGMA_MAX_DEVIATION)
231  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_TAU_ZERO)
232  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_TAU_ZERO_DEVIATION)
233  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_INTERNAL_FRICC)
234  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_ROTATIONAL_MOMENT_COEFFICIENT_NORMAL)
235  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_ROTATIONAL_MOMENT_COEFFICIENT_TANGENTIAL)
236  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOND_RADIUS_FACTOR)
237  // ****** for parallel bond model END *****
238 
239  // ****** for smooth joint model BEGIN ***
240  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, JOINT_NORMAL_STIFFNESS)
241  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, JOINT_TANGENTIAL_STIFFNESS)
242  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, JOINT_NORMAL_DIRECTION_X)
243  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, JOINT_NORMAL_DIRECTION_Y)
244  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, JOINT_NORMAL_DIRECTION_Z)
245  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, JOINT_FRICTION_COEFF)
246  // ****** for smooth joint model BEGIN ***
247 
248  // *************** Continuum only END *************
249 
250  // GEOMETRIC PARAMETERS
251 
252  // *************** Continuum only BEGIN *************
253  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, LOCAL_CONTACT_AREA_HIGH)
254  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, LOCAL_CONTACT_AREA_LOW)
255  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, MEAN_CONTACT_AREA)
256  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CONTACT_RADIUS)
257  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, REPRESENTATIVE_VOLUME)
258  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, DenseVector<int>, NEIGHBOUR_IDS)
259  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Vector, NEIGHBOURS_CONTACT_AREAS)
260  // *************** Continuum only END ***************
261 
262  // INLET PARAMETERS
263 
264  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,INLET_START_TIME)
265  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,INLET_STOP_TIME)
266  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,INLET_NUMBER_OF_PARTICLES)
267  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,STANDARD_DEVIATION)
268  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,DEVIATION)
269  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,MAXIMUM_RADIUS)
270  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,MINIMUM_RADIUS)
271  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,INITIAL_RADIUS)
272  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,MAX_RAND_DEVIATION_ANGLE)
273  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool,IMPOSED_MASS_FLOW_OPTION)
274  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,MASS_FLOW)
275  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, LINEAR_VELOCITY)
276  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, INLET_INITIAL_VELOCITY)
277  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, INLET_INITIAL_PARTICLES_VELOCITY)
278  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double,INLET_MAX_PARTICLES_VELOCITY)
279  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool,DENSE_INLET)
280 
281  // KINEMATICS
282  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, PARTICLE_ROTATION_ANGLE)
283  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, EULER_ANGLES)
284  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, DOMAIN_IS_PERIODIC)
285  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, DOMAIN_MIN_CORNER)
286  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, DOMAIN_MAX_CORNER)
287  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, DELTA_DISPLACEMENT)
288  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, DELTA_ROTA_DISPLACEMENT)
289  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, VELOCITY_START_TIME)
290  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, VELOCITY_STOP_TIME)
291  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, ANGULAR_VELOCITY_START_TIME)
292  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, ANGULAR_VELOCITY_STOP_TIME)
293  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, RIGID_BODY_MOTION)
294  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, FREE_BODY_MOTION)
295  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, RIGID_BODY_OPTION)
296  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, RIGID_BODY_MASS)
297  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, RIGID_BODY_CENTER_OF_MASS)
298  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, RIGID_BODY_INERTIAS)
299  // ****************** Quaternion Integration BEGIN ******************
300  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Quaternion<double>, AUX_ORIENTATION)
301  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, LOCAL_AUX_ANGULAR_VELOCITY)
302  // ******************* Quaternion Integration END *******************
303 
304  // FORCE AND MOMENTUM
305 
306  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, PARTICLE_MOMENT)
307  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, ROLLING_RESISTANCE_MOMENT)
308  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, MAX_ROTA_MOMENT)
309  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, ELASTIC_FORCES)
310  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, CONTACT_FORCES)
311  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, RIGID_ELEMENT_FORCE)
312  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, TANGENTIAL_ELASTIC_FORCES)
313  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, FORCE_REACTION)
314  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, MOMENT_REACTION)
315  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_PRESSURE)
316  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DEM_NODAL_AREA)
317 
318  // ENERGY
319 
320  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_ELASTIC_ENERGY)
321  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_TRANSLATIONAL_KINEMATIC_ENERGY)
322  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_ROTATIONAL_KINEMATIC_ENERGY)
323  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_GRAVITATIONAL_ENERGY)
324  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_INELASTIC_VISCODAMPING_ENERGY)
325  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_INELASTIC_FRICTIONAL_ENERGY)
326  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, PARTICLE_INELASTIC_ROLLING_RESISTANCE_ENERGY)
327  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, COMPUTE_ENERGY_OPTION)
328  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, GLOBAL_DAMPING)
329  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, GLOBAL_VISCOUS_DAMPING)
330  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, NORMAL_IMPACT_VELOCITY)
331  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, TANGENTIAL_IMPACT_VELOCITY)
332  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, FACE_NORMAL_IMPACT_VELOCITY)
333  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, FACE_TANGENTIAL_IMPACT_VELOCITY)
334  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, LINEAR_IMPULSE)
335 
336  // *************** Continuum only BEGIN *************
337  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, INITIAL_ROTA_MOMENT)
338  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Vector, PARTICLE_BLOCK_CONTACT_FORCE)
339  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, LOCAL_CONTACT_FORCE)
340  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, ELASTIC_LOCAL_ROTATIONAL_MOMENT)
341  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, VectorArray3Double, PARTICLE_CONTACT_FORCES )
342  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, NEIGHBOUR_SIZE)
343  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, DAMAGE_RATIO)
344 
345  // CONCRETE TEST
346 
347  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, FIXED_VEL_TOP)
348  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, FIXED_VEL_BOT)
349  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, AREA_VERTICAL_TAPA)
350  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, AREA_VERTICAL_CENTRE)
351 
352  // TENSION
353 
354  KRATOS_DEFINE_APPLICATION_VARIABLE( DEM_APPLICATION, Matrix, DEM_STRESS_TENSOR )
355  KRATOS_DEFINE_APPLICATION_VARIABLE( DEM_APPLICATION, Matrix, DEM_STRAIN_TENSOR )
356  KRATOS_DEFINE_APPLICATION_VARIABLE( DEM_APPLICATION, Matrix, DEM_DIFFERENTIAL_STRAIN_TENSOR )
357 
358  // APPLIED LOADS
359 
360  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BLAST_RADIUS)
361  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int , BLAST_CURVE)
362  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BLAST_PRESSURE_MAX)
363  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BLAST_TIME_PRESSURE_MAX)
364  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BLAST_SHAPE_FACTOR)
365  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BLAST_TIME_DELAY)
366  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int , BLAST_BOREHOLE)
367  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int , BLAST_NPOINTS)
368  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, BLAST_COORDINATES_1)
369  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, BLAST_COORDINATES_2)
370  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, BLAST_COORDINATES_3)
371  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, BLAST_COORDINATES_4)
372  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, BLAST_COORDINATES_5)
373  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, BLAST_COORDINATES_6)
374  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, BLAST_COORDINATES_7)
375  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, BLAST_COORDINATES_8)
376  // *************** Continuum only END *************
377 
378  // Possible future blocks (no FEM) interaction
379 
380  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Vector, PARTICLE_BLOCK_CONTACT_FAILURE_ID)
381  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Vector, PARTICLE_BLOCK_IF_INITIAL_CONTACT)
382  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, GlobalPointersVector<Element >, NEIGHBOUR_PARTICLE_BLOCK_ELEMENTS)
383  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, GlobalPointersVector<Condition >, NEIGHBOUR_RIGID_FACES)
384  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, GlobalPointersVector<Element >, NEIGHBOUR_PARTICLE_OF_RIGID_FACE)
385  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Vector, NEIGHBOUR_RIGID_FACES_PRAM)
386  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Vector, NEIGHBOUR_RIGID_FACES_ELASTIC_CONTACT_FORCE)
387  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Vector, NEIGHBOUR_RIGID_FACES_TOTAL_CONTACT_FORCE)
388 
389  // DUMMIES INT AND DOUBLE VARIABLES
390  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, DUMMY_SWITCH)
391 
392  // EXPORTS
393 
394  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, EXPORT_ID)
395  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, EXPORT_PARTICLE_FAILURE_ID)
396  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, PRINT_EXPORT_ID)
397  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, PRINT_STRESS_TENSOR_OPTION)
398 
399  // For DEM_FEM Element
400 
401  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, LOCAL_DAMP_RATIO)
402 
403  // For the DEM_Clusters Element
404 
405  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CLUSTER_VOLUME)
406  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, PRINCIPAL_MOMENTS_OF_INERTIA)
407  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, LOCAL_ANGULAR_VELOCITY)
408  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CHARACTERISTIC_LENGTH)
409  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SPRAYED_MATERIAL)
410 
411  // DUMMY VARIABLES FOR CALCULATE
412  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CALCULATE_COMPUTE_NEW_NEIGHBOURS_HISTORICAL_DATA)
413  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CALCULATE_COMPUTE_NEW_RIGID_FACE_NEIGHBOURS_HISTORICAL_DATA)
414  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CALCULATE_SET_INITIAL_DEM_CONTACTS)
415  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, CALCULATE_SET_INITIAL_FEM_CONTACTS)
416 
417  //Cfeng,131013,RigidFace
418 
419  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, RIGID_FACE_ROTA_SPEED)
420  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, RIGID_FACE_AXIAL_SPEED)
421  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, RIGID_FACE_PROP_ID)
422  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, RIGID_FACE_ROTA_ORIGIN_COORD)
423  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, RIGID_FACE_ROTA_AXIAL_DIR)
424  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, RIGID_FACE_ROTA_GLOBAL_VELOCITY)
425  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, RIGID_FACE_BEGIN_TIME)
426  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, RIGID_FACE_END_TIME)
427  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, int, RIGID_FACE_FLAG)
428  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, Vector, RIGID_FACE_COMPUTE_MOVEMENT)
429 
430  //SLS DEM-FEM
431  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SHEAR_STRESS)
432  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, NON_DIMENSIONAL_VOLUME_WEAR)
433  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, IMPACT_WEAR)
434  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SEVERITY_OF_WEAR)
435  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BRINELL_HARDNESS)
436  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, COMPUTE_WEAR)
437  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, IMPACT_WEAR_SEVERITY)
438  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, WALL_COHESION)
439 
440  //BOUNDING BOX
441  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOUNDING_BOX_START_TIME)
442  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BOUNDING_BOX_STOP_TIME)
443 
444  //OPTIMIZATION
445  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, TOTAL_CONTACT_DISTANCES)
446 
447  //CONTROL MODULE
448  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, TARGET_STRESS)
449  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, REACTION_STRESS)
450  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, SMOOTHED_REACTION_STRESS)
451  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, ELASTIC_REACTION_STRESS)
452  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, SMOOTHED_ELASTIC_REACTION_STRESS)
453  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(DEM_APPLICATION, LOADING_VELOCITY)
454  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, RADIAL_NORMAL_STRESS_COMPONENT)
455  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, OLD_RADIAL_NORMAL_STRESS_COMPONENT)
456  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, SMOOTHED_SCALAR_RADIAL_VELOCITY)
457 
458  // for DEM-FEM 2D
459  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, bool, IMPOSED_Z_STRAIN_OPTION)
460  KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, IMPOSED_Z_STRAIN_VALUE)
461 
462 class DEMFlags
463  {
464  public:
466  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, HAS_ROLLING_FRICTION);
467  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, STICKY);
468  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, HAS_CRITICAL_TIME);
469  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_VEL_X);
470  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_VEL_Y);
471  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_VEL_Z);
472  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_ANG_VEL_X);
473  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_ANG_VEL_Y);
474  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_ANG_VEL_Z);
475  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, BELONGS_TO_A_CLUSTER);
476  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, HAS_STRESS_TENSOR);
477  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, COPIED_STRESS_TENSOR);
478  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, COPIED_STRESS_TENSOR2);
479  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, PRINT_STRESS_TENSOR);
480  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, CUMULATIVE_ZONE);
481  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, IS_SAND_PRODUCTION);
482  KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, POLYHEDRON_SKIN);
483  };
484 }
485 
486 #endif /* KRATOS_DEM_APPLICATION_VARIABLES_H */
Definition: cluster_information.h:14
Base class for all Conditions.
Definition: condition.h:59
Definition: DEM_application_variables.h:463
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, HAS_STRESS_TENSOR)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, BELONGS_TO_A_CLUSTER)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, COPIED_STRESS_TENSOR)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_VEL_Z)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_ANG_VEL_Z)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, HAS_CRITICAL_TIME)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, STICKY)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, HAS_ROTATION)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, IS_SAND_PRODUCTION)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, PRINT_STRESS_TENSOR)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, POLYHEDRON_SKIN)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_ANG_VEL_Y)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_ANG_VEL_X)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, HAS_ROLLING_FRICTION)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_VEL_X)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, CUMULATIVE_ZONE)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, COPIED_STRESS_TENSOR2)
KRATOS_DEFINE_LOCAL_APPLICATION_FLAG(DEM_APPLICATION, FIXED_VEL_Y)
Base class for all Elements.
Definition: element.h:60
Definition: properties_proxies.h:18
Quaternion A simple class that implements the main features of quaternion algebra.
Definition: quaternion.h:28
Short class definition.
Definition: array_1d.h:61
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KRATOS_DEFINE_APPLICATION_VARIABLE(CHIMERA_APPLICATION, double, CHIMERA_DISTANCE)
PARTICLE_COHESION I33 BEAM_INERTIA_ROT_UNIT_LENGHT_Y KRATOS_CREATE_VARIABLE(double, BEAM_INERTIA_ROT_UNIT_LENGHT_Z) typedef std K_ALPHA NEIGHBOUR_PARTICLE_OF_RIGID_FACE HAS_ROTATION
Definition: DEM_application.cpp:482
KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(CHIMERA_APPLICATION, ROTATION_MESH_DISPLACEMENT)
KRATOS_DEFINE_VARIABLE(Vector, BIOT_STRAIN_VECTOR)
namespace
Definition: array_1d.h:793