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.
particle_mechanics_application_variables.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ \.
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Bodhinanda Chandra, Ilaria Iaconeta
11 //
12 //
13 
14 
15 #if !defined(KRATOS_PARTICLE_MECHANICS_APPLICATION_VARIABLES_H_INCLUDED )
16 #define KRATOS_PARTICLE_MECHANICS_APPLICATION_VARIABLES_H_INCLUDED
17 
18 // Project includes
19 #include "includes/define.h"
21 #include "includes/variables.h"
23 #include "includes/mat_variables.h"
24 
25 
26 namespace Kratos
27 {
28 
29  typedef array_1d<double,3> Vector3;
30  typedef array_1d<double,6> Vector6;
31 
32  // Variables definition
33 
34  /* MATERIAL POINT ELEMENTS VARIABLES */
35  // Indexing
36  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, int, MP_MATERIAL_ID )
37  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, int, PARTICLES_PER_ELEMENT )
38  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, int, MP_SUB_POINTS)
39 
40  // Physical
41  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_MASS )
42  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_DENSITY )
43  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_VOLUME )
44  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, IS_COMPRESSIBLE)
45  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, double, MP_TEMPERATURE)
46 
47  // Energy
48  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_POTENTIAL_ENERGY )
49  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_KINETIC_ENERGY )
50  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_STRAIN_ENERGY )
51  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_TOTAL_ENERGY )
52  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_TEMPERATURE)
53 
54  // Pressure
55  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_PRESSURE )
56  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, PRESSURE_REACTION )
57  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, NODAL_MPRESSURE )
58  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, bool, IS_MIXED_FORMULATION )
59 
60  // Position and kinematics
61  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MP_COORD )
62  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MP_DISPLACEMENT )
63  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MP_VELOCITY )
64  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MP_ACCELERATION )
65  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MP_VOLUME_ACCELERATION )
66 
67  // Stress Measures
68  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, Vector, MP_CAUCHY_STRESS_VECTOR )
69  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, double, MP_EQUIVALENT_STRESS)
70  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, double, MP_HARDENING_RATIO)
71 
72  // Strain Measures
73  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, Vector, MP_ALMANSI_STRAIN_VECTOR )
74  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_DELTA_PLASTIC_STRAIN )
75  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_DELTA_PLASTIC_VOLUMETRIC_STRAIN )
76  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_DELTA_PLASTIC_DEVIATORIC_STRAIN )
77  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_EQUIVALENT_PLASTIC_STRAIN )
78  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_EQUIVALENT_PLASTIC_STRAIN_RATE)
79  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_ACCUMULATED_PLASTIC_VOLUMETRIC_STRAIN )
80  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MP_ACCUMULATED_PLASTIC_DEVIATORIC_STRAIN )
81 
82  // Constitutive law
83  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, ConstitutiveLaw::Pointer, CONSTITUTIVE_LAW_POINTER )
84  // CL: Solid
85  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, RAYLEIGH_ALPHA )
86  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, RAYLEIGH_BETA )
87  // CL: Mohr Coulomb
88  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, COHESION )
89  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, INTERNAL_DILATANCY_ANGLE )
90  // CL: Mohr Coulomb Strain Softening
91  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, INTERNAL_FRICTION_ANGLE_RESIDUAL )
92  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, COHESION_RESIDUAL )
93  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, INTERNAL_DILATANCY_ANGLE_RESIDUAL )
94  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, SHAPE_FUNCTION_BETA )
95  // CL: Johnson Cook
96  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, REFERENCE_STRAIN_RATE)
97  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, TAYLOR_QUINNEY_COEFFICIENT)
98 
99  // Mesh variables
100  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, std::vector<typename Geometry<Node>::Pointer>, GEOMETRY_NEIGHBOURS)
101 
102  /* NODAL VARIABLES */
103  // Conditions
104  // Particle Conditions
105  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_COORD )
106  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, int, MPC_CONDITION_ID )
107  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, bool, MPC_IS_NEUMANN )
108  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, MPC_AREA )
109  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_NORMAL )
110  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_DISPLACEMENT )
111  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_DELTA_DISPLACEMENT )
112  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_IMPOSED_DISPLACEMENT )
113  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_VELOCITY )
114  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_IMPOSED_VELOCITY )
115  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_ACCELERATION )
116  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_IMPOSED_ACCELERATION )
117  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, MPC_CONTACT_FORCE )
118  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, int, PARTICLES_PER_CONDITION )
119  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, bool, IS_EQUAL_DISTRIBUTED )
120 
121  // Essential Boundary Conditions
122  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, double, PENALTY_FACTOR )
123  KRATOS_DEFINE_APPLICATION_VARIABLE( PARTICLE_MECHANICS_APPLICATION, int, MPC_BOUNDARY_CONDITION_TYPE )
124 
125  // Natural Boundary Conditions
126  // Nodal load variables
127  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( PARTICLE_MECHANICS_APPLICATION, POINT_LOAD )
128  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( PARTICLE_MECHANICS_APPLICATION, LINE_LOAD )
129  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( PARTICLE_MECHANICS_APPLICATION, SURFACE_LOAD )
130 
131  // Momentum
132  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, NODAL_MOMENTUM )
133  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, NODAL_INERTIA )
134  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(PARTICLE_MECHANICS_APPLICATION, NODAL_INTERNAL_FORCE )
135 
136  // Solver related variables
137  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, IGNORE_GEOMETRIC_STIFFNESS)
138  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, IS_AXISYMMETRIC)
139  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, IS_PQMPM)
140  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, IS_MAKE_NORMAL_MP_IF_PQMPM_FAILS)
141  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, double, PQMPM_SUBPOINT_MIN_VOLUME_FRACTION)
142 
143  // Explicit time integration variables
144  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, CALCULATE_MUSL_VELOCITY_FIELD)
145  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, IS_EXPLICIT)
146  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, IS_EXPLICIT_CENTRAL_DIFFERENCE)
147  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, int, EXPLICIT_STRESS_UPDATE_OPTION)
148  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, CALCULATE_EXPLICIT_MP_STRESS)
149  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, EXPLICIT_MAP_GRID_TO_MP)
150  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, bool, IS_FIX_EXPLICIT_MP_ON_GRID_EDGE)
151 
152  // Stabilization typedef
153  KRATOS_DEFINE_APPLICATION_VARIABLE(PARTICLE_MECHANICS_APPLICATION, int, STABILIZATION_TYPE)
154 }
155 
156 #endif // KRATOS_PARTICLE_MECHANICS_APPLICATION_VARIABLES_H_INCLUDED defined
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KRATOS_DEFINE_APPLICATION_VARIABLE(CHIMERA_APPLICATION, double, CHIMERA_DISTANCE)
Internals::Matrix< double, AMatrix::dynamic, 1 > Vector
Definition: amatrix_interface.h:472
array_1d< double, 3 > Vector3
Definition: variables.cpp:26
array_1d< double, 6 > Vector6
Definition: delaunay_meshing_application_variables.cpp:19
KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(CHIMERA_APPLICATION, ROTATION_MESH_DISPLACEMENT)