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.
poromechanics_application.h
Go to the documentation of this file.
1 
2 // | / |
3 // ' / __| _` | __| _ \ __|
4 // . \ | ( | | ( |\__ `
5 // _|\_\_| \__,_|\__|\___/ ____/
6 // Multi-Physics
7 //
8 // License: BSD License
9 // Kratos default license: kratos/license.txt
10 //
11 // Main authors: Ignasi de Pouplana
12 //
13 
14 
15 #if !defined(KRATOS_POROMECHANICS_APPLICATION_H_INCLUDED )
16 #define KRATOS_POROMECHANICS_APPLICATION_H_INCLUDED
17 
18 // System includes
19 #include <string>
20 #include <iostream>
21 
22 // Project includes
23 #include "includes/define.h"
25 
26 // Application includes
28 
29 #include "custom_conditions/U_Pw_force_condition.hpp"
30 #include "custom_conditions/U_Pw_face_load_condition.hpp"
31 #include "custom_conditions/U_Pw_normal_face_load_condition.hpp"
33 #include "custom_conditions/U_Pw_normal_flux_condition.hpp"
34 #include "custom_conditions/U_Pw_normal_flux_FIC_condition.hpp"
35 #include "custom_conditions/U_Pw_face_load_interface_condition.hpp"
36 #include "custom_conditions/U_Pw_normal_flux_interface_condition.hpp"
37 #include "custom_conditions/line_load_2D_diff_order_condition.hpp"
38 #include "custom_conditions/line_normal_load_2D_diff_order_condition.hpp"
39 #include "custom_conditions/line_normal_fluid_flux_2D_diff_order_condition.hpp"
40 #include "custom_conditions/surface_load_3D_diff_order_condition.hpp"
41 #include "custom_conditions/surface_normal_load_3D_diff_order_condition.hpp"
42 #include "custom_conditions/surface_normal_fluid_flux_3D_diff_order_condition.hpp"
43 
44 #include "custom_elements/U_Pw_small_strain_element.hpp"
45 #include "custom_elements/U_Pw_small_strain_interface_element.hpp"
46 #include "custom_elements/U_Pw_small_strain_link_interface_element.hpp"
47 #include "custom_elements/U_Pw_small_strain_FIC_element.hpp"
48 #include "custom_elements/small_strain_U_Pw_diff_order_element.hpp"
49 
50 #include "custom_constitutive/bilinear_cohesive_3D_law.hpp"
51 #include "custom_constitutive/bilinear_cohesive_2D_law.hpp"
62 
65 
69 
73 
77 
81 
82 #include "custom_constitutive/custom_flow_rules/isotropic_damage_flow_rule.hpp"
83 #include "custom_constitutive/custom_yield_criteria/simo_ju_yield_criterion.hpp"
84 #include "custom_constitutive/custom_yield_criteria/modified_mises_yield_criterion.hpp"
85 #include "custom_constitutive/custom_hardening_laws/exponential_damage_hardening_law.hpp"
86 #include "custom_constitutive/custom_hardening_laws/modified_exponential_damage_hardening_law.hpp"
87 #include "custom_constitutive/hyperelastic_3D_law.hpp"
88 #include "custom_constitutive/linear_elastic_3D_law.hpp"
89 #include "custom_constitutive/linear_elastic_plane_strain_2D_law.hpp"
90 #include "custom_constitutive/linear_elastic_plane_stress_2D_law.hpp"
91 
92 namespace Kratos
93 {
94 
95 class KRATOS_API(POROMECHANICS_APPLICATION) KratosPoromechanicsApplication : public KratosApplication
96 {
97 
98 public:
99 
101 
102  // Default constructor
104 
105  // Destructor
107 
108 
109  void Register() override;
110 
111  // Turn back information as a string
112  std::string Info() const override
113  {
114  return "KratosPoromechanicsApplication";
115  }
116 
117  // Print information about this object
118  void PrintInfo(std::ostream& rOStream) const override
119  {
120  rOStream << Info();
121  PrintData(rOStream);
122  }
123 
124  // Print object's data
125  void PrintData(std::ostream& rOStream) const override
126  {
127  KRATOS_WATCH("in my application");
129  rOStream << "Variables:" << std::endl;
131  rOStream << std::endl;
132  rOStream << "Elements:" << std::endl;
133  KratosComponents<Element>().PrintData(rOStream);
134  rOStream << std::endl;
135  rOStream << "Conditions:" << std::endl;
136  KratosComponents<Condition>().PrintData(rOStream);
137  }
138 
139 private:
140 
141 // Member Variables
142 
143 const UPwSmallStrainElement<2,3> mUPwSmallStrainElement2D3N;
144 const UPwSmallStrainElement<2,4> mUPwSmallStrainElement2D4N;
145 const UPwSmallStrainElement<3,4> mUPwSmallStrainElement3D4N;
146 const UPwSmallStrainElement<3,8> mUPwSmallStrainElement3D8N;
147 
148 const UPwSmallStrainInterfaceElement<2,4> mUPwSmallStrainInterfaceElement2D4N;
149 const UPwSmallStrainInterfaceElement<3,6> mUPwSmallStrainInterfaceElement3D6N;
150 const UPwSmallStrainInterfaceElement<3,8> mUPwSmallStrainInterfaceElement3D8N;
151 
152 const UPwSmallStrainLinkInterfaceElement<2,4> mUPwSmallStrainLinkInterfaceElement2D4N;
153 const UPwSmallStrainLinkInterfaceElement<3,6> mUPwSmallStrainLinkInterfaceElement3D6N;
154 const UPwSmallStrainLinkInterfaceElement<3,8> mUPwSmallStrainLinkInterfaceElement3D8N;
155 
156 const UPwSmallStrainFICElement<2,3> mUPwSmallStrainFICElement2D3N;
157 const UPwSmallStrainFICElement<2,4> mUPwSmallStrainFICElement2D4N;
158 const UPwSmallStrainFICElement<3,4> mUPwSmallStrainFICElement3D4N;
159 const UPwSmallStrainFICElement<3,8> mUPwSmallStrainFICElement3D8N;
160 
161 const SmallStrainUPwDiffOrderElement mSmallStrainUPwDiffOrderElement2D6N;
162 const SmallStrainUPwDiffOrderElement mSmallStrainUPwDiffOrderElement2D8N;
163 const SmallStrainUPwDiffOrderElement mSmallStrainUPwDiffOrderElement2D9N;
164 const SmallStrainUPwDiffOrderElement mSmallStrainUPwDiffOrderElement3D10N;
165 const SmallStrainUPwDiffOrderElement mSmallStrainUPwDiffOrderElement3D20N;
166 const SmallStrainUPwDiffOrderElement mSmallStrainUPwDiffOrderElement3D27N;
167 
168 const UPwForceCondition<2,1> mUPwForceCondition2D1N;
169 const UPwForceCondition<3,1> mUPwForceCondition3D1N;
170 const UPwFaceLoadCondition<2,2> mUPwFaceLoadCondition2D2N;
171 const UPwFaceLoadCondition<3,3> mUPwFaceLoadCondition3D3N;
172 const UPwFaceLoadCondition<3,4> mUPwFaceLoadCondition3D4N;
173 const UPwNormalFaceLoadCondition<2,2> mUPwNormalFaceLoadCondition2D2N;
174 const UPwNormalFaceLoadCondition<3,3> mUPwNormalFaceLoadCondition3D3N;
175 const UPwNormalFaceLoadCondition<3,4> mUPwNormalFaceLoadCondition3D4N;
176 const UPwDischargeCondition<2,1> mUPwDischargeCondition2D1N;
177 const UPwDischargeCondition<3,1> mUPwDischargeCondition3D1N;
178 const UPwNormalFluxCondition<2,2> mUPwNormalFluxCondition2D2N;
179 const UPwNormalFluxCondition<3,3> mUPwNormalFluxCondition3D3N;
180 const UPwNormalFluxCondition<3,4> mUPwNormalFluxCondition3D4N;
181 
182 const UPwFaceLoadInterfaceCondition<2,2> mUPwFaceLoadInterfaceCondition2D2N;
183 const UPwFaceLoadInterfaceCondition<3,4> mUPwFaceLoadInterfaceCondition3D4N;
184 const UPwNormalFluxInterfaceCondition<2,2> mUPwNormalFluxInterfaceCondition2D2N;
185 const UPwNormalFluxInterfaceCondition<3,4> mUPwNormalFluxInterfaceCondition3D4N;
186 
187 const UPwNormalFluxFICCondition<2,2> mUPwNormalFluxFICCondition2D2N;
188 const UPwNormalFluxFICCondition<3,3> mUPwNormalFluxFICCondition3D3N;
189 const UPwNormalFluxFICCondition<3,4> mUPwNormalFluxFICCondition3D4N;
190 
191 const LineLoad2DDiffOrderCondition mLineLoadDiffOrderCondition2D3N;
192 const LineNormalLoad2DDiffOrderCondition mLineNormalLoadDiffOrderCondition2D3N;
193 const LineNormalFluidFlux2DDiffOrderCondition mLineNormalFluidFluxDiffOrderCondition2D3N;
194 const SurfaceLoad3DDiffOrderCondition mSurfaceLoadDiffOrderCondition3D6N;
195 const SurfaceLoad3DDiffOrderCondition mSurfaceLoadDiffOrderCondition3D8N;
196 const SurfaceLoad3DDiffOrderCondition mSurfaceLoadDiffOrderCondition3D9N;
197 const SurfaceNormalLoad3DDiffOrderCondition mSurfaceNormalLoadDiffOrderCondition3D6N;
198 const SurfaceNormalLoad3DDiffOrderCondition mSurfaceNormalLoadDiffOrderCondition3D8N;
199 const SurfaceNormalLoad3DDiffOrderCondition mSurfaceNormalLoadDiffOrderCondition3D9N;
200 const SurfaceNormalFluidFlux3DDiffOrderCondition mSurfaceNormalFluidFluxDiffOrderCondition3D6N;
201 const SurfaceNormalFluidFlux3DDiffOrderCondition mSurfaceNormalFluidFluxDiffOrderCondition3D8N;
202 const SurfaceNormalFluidFlux3DDiffOrderCondition mSurfaceNormalFluidFluxDiffOrderCondition3D9N;
203 
204 const ElastoPlasticMohrCoulombCohesive3DLaw mElastoPlasticMohrCoulombCohesive3DLaw;
205 const ElastoPlasticMohrCoulombCohesive2DLaw mElastoPlasticMohrCoulombCohesive2DLaw;
206 const ElastoPlasticModMohrCoulombCohesive3DLaw mElastoPlasticModMohrCoulombCohesive3DLaw;
207 const ElastoPlasticModMohrCoulombCohesive2DLaw mElastoPlasticModMohrCoulombCohesive2DLaw;
208 const IsotropicDamageCohesive3DLaw mIsotropicDamageCohesive3DLaw;
209 const IsotropicDamageCohesive2DLaw mIsotropicDamageCohesive2DLaw;
210 const BilinearCohesive3DLaw mBilinearCohesive3DLaw;
211 const BilinearCohesive2DLaw mBilinearCohesive2DLaw;
212 const ElasticCohesive3DLaw mElasticCohesive3DLaw;
213 const ElasticCohesive2DLaw mElasticCohesive2DLaw;
214 const ExponentialCohesive3DLaw mExponentialCohesive3DLaw;
215 const ExponentialCohesive2DLaw mExponentialCohesive2DLaw;
216 
217 const LocalDamageFlowRule mLocalDamageFlowRule;
218 const NonlocalDamageFlowRule mNonlocalDamageFlowRule;
219 
220 const SimoJuLocalDamage3DLaw mSimoJuLocalDamage3DLaw;
221 const SimoJuLocalDamagePlaneStrain2DLaw mSimoJuLocalDamagePlaneStrain2DLaw;
222 const SimoJuLocalDamagePlaneStress2DLaw mSimoJuLocalDamagePlaneStress2DLaw;
223 
224 const SimoJuNonlocalDamage3DLaw mSimoJuNonlocalDamage3DLaw;
225 const SimoJuNonlocalDamagePlaneStrain2DLaw mSimoJuNonlocalDamagePlaneStrain2DLaw;
226 const SimoJuNonlocalDamagePlaneStress2DLaw mSimoJuNonlocalDamagePlaneStress2DLaw;
227 
228 const ModifiedMisesNonlocalDamage3DLaw mModifiedMisesNonlocalDamage3DLaw;
229 const ModifiedMisesNonlocalDamagePlaneStrain2DLaw mModifiedMisesNonlocalDamagePlaneStrain2DLaw;
230 const ModifiedMisesNonlocalDamagePlaneStress2DLaw mModifiedMisesNonlocalDamagePlaneStress2DLaw;
231 
232 const HistoryLinearElastic3DLaw mHistoryLinearElastic3DLaw;
233 const HistoryLinearElasticPlaneStrain2DLaw mHistoryLinearElasticPlaneStrain2DLaw;
234 const HistoryLinearElasticPlaneStress2DLaw mHistoryLinearElasticPlaneStress2DLaw;
235 
236 const HyperElastic3DLaw mHyperElastic3DLaw;
237 const LinearElastic3DLaw mLinearElastic3DLaw;
238 const LinearElasticPlaneStrain2DLaw mLinearElasticPlaneStrain2DLaw;
239 const LinearElasticPlaneStress2DLaw mLinearElasticPlaneStress2DLaw;
240 const IsotropicDamageFlowRule mIsotropicDamageFlowRule;
241 const SimoJuYieldCriterion mSimoJuYieldCriterion;
242 const ModifiedMisesYieldCriterion mModifiedMisesYieldCriterion;
243 const ExponentialDamageHardeningLaw mExponentialDamageHardeningLaw;
244 const ModifiedExponentialDamageHardeningLaw mModifiedExponentialDamageHardeningLaw;
245 
246 // Assignment operator.
248 
249 // Copy constructor.
251 
252 }; // Class KratosPoromechanicsApplication
253 } // namespace Kratos.
254 
255 #endif // KRATOS_POROMECHANICS_APPLICATION_H_INCLUDED defined
256 
257 
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: bilinear_cohesive_2D_law.hpp:28
Definition: bilinear_cohesive_3D_law.hpp:31
Definition: elastic_cohesive_2D_law.hpp:27
Definition: elastic_cohesive_3D_law.hpp:31
Definition: elastoplastic_mod_mohr_coulomb_cohesive_2D_law.hpp:27
Definition: elastoplastic_mod_mohr_coulomb_cohesive_3D_law.hpp:32
Definition: elastoplastic_mohr_coulomb_cohesive_2D_law.hpp:27
Definition: elastoplastic_mohr_coulomb_cohesive_3D_law.hpp:32
Definition: exponential_cohesive_2D_law.hpp:29
Definition: exponential_cohesive_3D_law.hpp:29
Short class definition.
Definition: exponential_damage_hardening_law.hpp:49
Definition: history_linear_elastic_3D_law.hpp:29
Definition: history_linear_elastic_plane_strain_2D_law.hpp:27
Definition: history_linear_elastic_plane_stress_2D_law.hpp:27
Definition: hyperelastic_3D_law.hpp:38
Definition: isotropic_damage_cohesive_2D_law.hpp:27
Definition: isotropic_damage_cohesive_3D_law.hpp:32
Short class definition.
Definition: isotropic_damage_flow_rule.hpp:51
This class defines the interface with kernel for all applications in Kratos.
Definition: kratos_application.h:91
Definition: kratos_components.h:253
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: kratos_components.h:403
KratosComponents class encapsulates a lookup table for a family of classes in a generic way.
Definition: kratos_components.h:49
Definition: poromechanics_application.h:96
std::string Info() const override
Turn back information as a string.
Definition: poromechanics_application.h:112
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: poromechanics_application.h:125
~KratosPoromechanicsApplication() override
Definition: poromechanics_application.h:106
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: poromechanics_application.h:118
KRATOS_CLASS_POINTER_DEFINITION(KratosPoromechanicsApplication)
Definition: line_load_2D_diff_order_condition.hpp:30
Definition: line_normal_fluid_flux_2D_diff_order_condition.hpp:30
Definition: line_normal_load_2D_diff_order_condition.hpp:30
Definition: linear_elastic_3D_law.hpp:37
Definition: linear_elastic_plane_strain_2D_law.hpp:37
Definition: linear_elastic_plane_stress_2D_law.hpp:37
Definition: local_damage_flow_rule.hpp:19
Short class definition.
Definition: modified_exponential_damage_hardening_law.hpp:49
Definition: modified_mises_nonlocal_damage_3D_law.hpp:25
Definition: modified_mises_nonlocal_damage_plane_strain_2D_law.hpp:25
Definition: modified_mises_nonlocal_damage_plane_stress_2D_law.hpp:25
Short class definition.
Definition: modified_mises_yield_criterion.hpp:49
Definition: nonlocal_damage_flow_rule.hpp:19
Definition: simo_ju_local_damage_3D_law.hpp:28
Definition: simo_ju_local_damage_plane_strain_2D_law.hpp:28
Definition: simo_ju_local_damage_plane_stress_2D_law.hpp:28
Definition: simo_ju_nonlocal_damage_3D_law.hpp:28
Definition: simo_ju_nonlocal_damage_plane_strain_2D_law.hpp:28
Definition: simo_ju_nonlocal_damage_plane_stress_2D_law.hpp:28
Short class definition.
Definition: simo_ju_yield_criterion.hpp:50
Definition: small_strain_U_Pw_diff_order_element.hpp:36
Definition: surface_load_3D_diff_order_condition.hpp:30
Definition: surface_normal_fluid_flux_3D_diff_order_condition.hpp:30
Definition: surface_normal_load_3D_diff_order_condition.hpp:29
#define KRATOS_WATCH(variable)
Definition: define.h:806
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KRATOS_API_EXTERN template class KratosComponents< Condition >
Definition: condition.h:1191
KRATOS_API_EXTERN template class KratosComponents< Element >
Definition: element.h:1240