OGS
PhaseFieldProcessData.h
Go to the documentation of this file.
1 
11 #pragma once
12 
13 #include <Eigen/Eigen>
14 #include <memory>
15 #include <utility>
16 
17 #include "MeshLib/PropertyVector.h"
18 #include "ParameterLib/Parameter.h"
19 
20 namespace MaterialLib
21 {
22 namespace Solids
23 {
24 template <int DisplacementDim>
25 struct MechanicsBase;
26 }
27 } // namespace MaterialLib
28 namespace ProcessLib
29 {
30 template <typename T>
31 struct Parameter;
32 
33 namespace PhaseField
34 {
35 enum class PhaseFieldModel
36 {
37  AT1,
38  AT2
39 };
40 
41 template <int DisplacementDim>
43 {
45 
46  std::map<int, std::unique_ptr<
53  Eigen::Matrix<double, DisplacementDim, 1> const specific_body_force;
54  bool hydro_crack = false;
55  bool crack_pressure = false;
58 
59  double const unity_pressure = 1.0;
60  double pressure = 0.0;
61  double pressure_old = 0.0;
62  double pressure_error = 0.0;
63  double injected_volume = 0.0;
64  double crack_volume = 0.0;
65  double elastic_energy = 0.0;
66  double surface_energy = 0.0;
67  double pressure_work = 0.0;
68 };
69 
70 } // namespace PhaseField
71 } // namespace ProcessLib
ParameterLib::Parameter< double > const & solid_density
ParameterLib::Parameter< double > const & crack_resistance
ParameterLib::Parameter< double > const & crack_length_scale
ParameterLib::Parameter< double > const & residual_stiffness
Eigen::Matrix< double, DisplacementDim, 1 > const specific_body_force
MeshLib::PropertyVector< int > const *const material_ids
std::map< int, std::unique_ptr< MaterialLib::Solids::MechanicsBase< DisplacementDim > > > solid_materials