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.
solid_mechanics_application_variables.h
Go to the documentation of this file.
1 //------------------------------------------------------------------
2 // ___ _ _ _ .
3 // KRATOS / __| ___| (_)__| | .
4 // \__ \/ _ \ | / _` | .
5 // |___/\___/_|_\__,_| MECHANICS .
6 // .
7 // License:(BSD) SolidMechanicsApplication/license.txt .
8 // Main authors: Josep Maria Carbonell .
9 // .. .
10 //------------------------------------------------------------------
11 //
12 // Project Name: KratosSolidMechanicsApplication $
13 // Created by: $Author: JMCarbonell $
14 // Last modified by: $Co-Author: $
15 // Date: $Date: July 2013 $
16 // Revision: $Revision: 0.0 $
17 //
18 //
19 
20 #if !defined(KRATOS_SOLID_MECHANICS_APPLICATION_VARIABLES_H_INCLUDED)
21 #define KRATOS_SOLID_MECHANICS_APPLICATION_VARIABLES_H_INCLUDED
22 
23 // System includes
24 
25 // External includes
26 
27 
28 // Project includes
30 
31 #include "includes/variables.h"
32 #include "includes/mat_variables.h"
33 #include "includes/kratos_flags.h"
35 #include "custom_utilities/shell_cross_section.hpp"
37 
38 namespace Kratos
39 {
42  typedef array_1d<double,3> Vector3;
43  typedef array_1d<double,6> Vector6;
44 
45  typedef array_1d<double, 3> VectorType;
46  typedef Variable<VectorType> VariableVectorType;
47  typedef Variable<double> VariableScalarType;
48  typedef Variable<double> VariableComponentType;
49 
50  typedef TimeIntegrationMethodsContainer<VariableVectorType, double> VectorTimeIntegrationContainerType;
51  typedef VectorTimeIntegrationContainerType::Pointer VectorTimeIntegrationContainerPointerType;
52 
53  typedef TimeIntegrationMethodsContainer<VariableScalarType, double> ScalarTimeIntegrationContainerType;
54  typedef ScalarTimeIntegrationContainerType::Pointer ScalarTimeIntegrationContainerPointerType;
55 
56  typedef TimeIntegrationMethodsContainer<VariableComponentType, double> ComponentTimeIntegrationContainerType;
57  typedef ComponentTimeIntegrationContainerType::Pointer ComponentTimeIntegrationContainerPointerType;
58 
59  typedef Element::WeakPointer ElementWeakPtrType;
60 
62 
65 
66  //Define Variables
67 
68  // Generalized eigenvalue problem
69  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, int, BUILD_LEVEL )
70  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, EIGENVALUE_VECTOR)
71  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix , EIGENVECTOR_MATRIX )
72 
73  //for integration methods
74  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, VectorTimeIntegrationContainerPointerType, VECTOR_TIME_INTEGRATION_METHODS )
75  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, ScalarTimeIntegrationContainerPointerType, SCALAR_TIME_INTEGRATION_METHODS )
76  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, ComponentTimeIntegrationContainerPointerType, COMPONENT_TIME_INTEGRATION_METHODS )
77 
78  //for explicit schemes
79  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, bool, COMPUTE_CONSISTENT_MASS_MATRIX )
80  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, MIDDLE_VELOCITY )
81 
82  //variables
83  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, PRESSURE_VELOCITY )
84  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, PRESSURE_ACCELERATION )
85 
86  //solution
87  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, bool, DELTA_TIME_CHANGED )
88  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, bool, CONVERGENCE_ACHIEVED )
89  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, int, SEGREGATED_STEP )
90  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, int, WRITE_ID )
91  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, int, TIME_INTEGRATION_ORDER )
92  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, RAYLEIGH_ALPHA )
93  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, RAYLEIGH_BETA )
94  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, MESHING_STEP_TIME )
95  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, CONTACT_STEP_TIME )
96  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, RESTART_STEP_TIME )
97 
98  //geometrical
99  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, GEOMETRIC_STIFFNESS )
100 
101  //beam cross section
102  //KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, BeamCrossSection::Pointer, SBEAM_CROSS_SECTION )
103  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, CROSS_SECTION_AREA )
104  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, CROSS_SECTION_RADIUS )
105  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, int, CROSS_SECTION_SIDES )
106 
107  //shell cross section
108  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, ShellCrossSection::Pointer, SHELL_CROSS_SECTION )
109  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, int, SHELL_CROSS_SECTION_OUTPUT_PLY_ID )
110  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, SHELL_CROSS_SECTION_OUTPUT_PLY_LOCATION )
111 
112  //shell generalized variables
113  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, SHELL_STRAIN )
114  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, SHELL_STRAIN_GLOBAL )
115  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, SHELL_CURVATURE )
116  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, SHELL_CURVATURE_GLOBAL )
117  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, SHELL_FORCE )
118  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, SHELL_FORCE_GLOBAL )
119  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, SHELL_MOMENT )
120  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, SHELL_MOMENT_GLOBAL )
121 
122  //nodal load variables (legacy)
123  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, POINT_LOAD )
124 
125  //force loads
126  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, FORCE_LOAD )
127  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, FORCE_LOAD_VECTOR )
128 
129  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, FOLLOWER_FORCE_LOAD )
130  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, FOLLOWER_FORCE_LOAD_VECTOR )
131 
132  //moment loads
133  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, MOMENT_LOAD )
134  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, MOMENT_LOAD_VECTOR )
135 
136  //elastic loads
137  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, ELASTIC_LOAD )
138  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, ELASTIC_LOAD_VECTOR )
139 
140  //force pressure
141  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, POSITIVE_FACE_PRESSURE_VECTOR )
142  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, NEGATIVE_FACE_PRESSURE_VECTOR )
143 
144  //moment pressures
145  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, PLANE_MOMENT_LOAD )
146  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, PLANE_MOMENT_LOAD_VECTOR )
147 
148  //elastic pressures
149  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, BALLAST_COEFFICIENT )
150  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, BALLAST_COEFFICIENT_VECTOR )
151 
152  //heat fluxes
153  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Vector, FACE_HEAT_FLUX_VECTOR )
154 
155  //element
156  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, VON_MISES_STRESS )
157 
158  //nodal dofs
159  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, DISPLACEMENT_REACTION )
160  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, ROTATION_REACTION )
161  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, VELOCITY_REACTION )
162  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, PRESSURE_REACTION )
163  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, TEMPERATURE_REACTION )
164 
165  //explicit beam
166  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, EXTERNAL_MOMENT )
167 
168  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, POSITION_MOMENTUM )
169  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, ROTATION_MOMENTUM )
170 
171  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, INERTIA_DYADIC )
172 
173  KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS( SOLID_MECHANICS_APPLICATION, RESIDUAL_LYAPUNOV )
174  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, TANGENT_MATRIX )
175  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Matrix, TANGENT_LYAPUNOV )
176 
177  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, ALPHA_TRAPEZOIDAL_RULE )
178  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, bool, POSITION_UPDATE_LABEL )
179  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, bool, ROTATION_UPDATE_LABEL )
180  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, bool, MOMENTUM_UPDATE_LABEL )
181 
182  //reading beam section properties
183  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, SECTION_HEIGHT )
184  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, SECTION_WIDTH )
185  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, INERTIA_X )
186  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, INERTIA_Y )
187  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, SECTION_SIZE )
188 
189  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, YOUNGxAREA )
190  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, YOUNGxINERTIA_X )
191  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, YOUNGxINERTIA_Y )
192  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, SHEARxREDUCED_AREA )
193  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, SHEARxPOLAR_INERTIA )
194 
195  //boundary definition
196  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, Element::WeakPointer, MASTER_ELEMENT )
197 
198  //thermal properties
199  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, HEAT_CAPACITY )
200  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, HEAT_CONDUCTIVITY )
201  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, HEAT_SOURCE )
202 
203  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, bool, TEMPERATURE_DEPENDENT )
204  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, HEAT_CAPACITY_A )
205  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, HEAT_CAPACITY_B )
206  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, HEAT_CONDUCTIVITY_A )
207  KRATOS_DEFINE_APPLICATION_VARIABLE( SOLID_MECHANICS_APPLICATION, double, HEAT_CONDUCTIVITY_B )
208 
209 
210 
211 } // Namespace Kratos
212 
213 #endif // KRATOS_SOLID_MECHANICS_APPLICATION_VARIABLES_H_INCLUDED
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
TimeIntegrationMethodsContainer< VariableScalarType, double > ScalarTimeIntegrationContainerType
Definition: solid_mechanics_application_variables.cpp:27
TimeIntegrationMethodsContainer< VariableComponentType, double > ComponentTimeIntegrationContainerType
Definition: solid_mechanics_application_variables.cpp:30
KRATOS_DEFINE_APPLICATION_VARIABLE(CHIMERA_APPLICATION, double, CHIMERA_DISTANCE)
Internals::Matrix< double, AMatrix::dynamic, 1 > Vector
Definition: amatrix_interface.h:472
TimeIntegrationMethodsContainer< VariableVectorType, double > VectorTimeIntegrationContainerType
Definition: solid_mechanics_application_variables.cpp:24
array_1d< double, 3 > Vector3
Definition: variables.cpp:26
Variable< VectorType > VariableVectorType
Definition: solid_mechanics_application_variables.cpp:20
Internals::Matrix< double, AMatrix::dynamic, AMatrix::dynamic > Matrix
Definition: amatrix_interface.h:470
ComponentTimeIntegrationContainerType::Pointer ComponentTimeIntegrationContainerPointerType
Definition: solid_mechanics_application_variables.cpp:31
array_1d< double, 3 > VectorType
Definition: solid_mechanics_application_variables.cpp:19
array_1d< double, 6 > Vector6
Definition: delaunay_meshing_application_variables.cpp:19
KRATOS_DEFINE_3D_APPLICATION_VARIABLE_WITH_COMPONENTS(CHIMERA_APPLICATION, ROTATION_MESH_DISPLACEMENT)
Variable< double > VariableComponentType
Definition: solid_mechanics_application_variables.cpp:22
Element::WeakPointer ElementWeakPtrType
Definition: generate_new_conditions_mesher_process.hpp:44
Variable< double > VariableScalarType
Definition: solid_mechanics_application_variables.cpp:21
VectorTimeIntegrationContainerType::Pointer VectorTimeIntegrationContainerPointerType
Definition: solid_mechanics_application_variables.cpp:25
ScalarTimeIntegrationContainerType::Pointer ScalarTimeIntegrationContainerPointerType
Definition: solid_mechanics_application_variables.cpp:28