OGS
FractureModelBase.h
Go to the documentation of this file.
1
10#pragma once
11
12#include <Eigen/Core>
13
15
16namespace MaterialLib
17{
18namespace Fracture
19{
20
25template <int DisplacementDim>
27{
28public:
35 {
36 virtual ~MaterialStateVariables() = default;
37 virtual void pushBackState() = 0;
38
39 void reset()
40 {
41 _is_tensile_stress = false;
43 }
44
47
48 void setTensileStress(bool flag) { _is_tensile_stress = flag; }
49 bool setTensileStress() const { return _is_tensile_stress; }
50
51 private:
52 bool _is_tensile_stress = false;
54 };
55
58 virtual std::unique_ptr<MaterialStateVariables>
60
61 virtual ~FractureModelBase() = default;
62
79 double const t,
81 double const aperture0,
82 Eigen::Ref<Eigen::VectorXd const>
83 sigma0,
84 Eigen::Ref<Eigen::VectorXd const>
85 w_prev,
86 Eigen::Ref<Eigen::VectorXd const>
87 w,
88 Eigen::Ref<Eigen::VectorXd const>
89 sigma_prev,
90 Eigen::Ref<Eigen::VectorXd>
91 sigma,
92 Eigen::Ref<Eigen::MatrixXd>
93 C,
94 MaterialStateVariables& material_state_variables) = 0;
95};
96
97} // namespace Fracture
98} // namespace MaterialLib
virtual void computeConstitutiveRelation(double const t, ParameterLib::SpatialPosition const &x, double const aperture0, Eigen::Ref< Eigen::VectorXd const > sigma0, Eigen::Ref< Eigen::VectorXd const > w_prev, Eigen::Ref< Eigen::VectorXd const > w, Eigen::Ref< Eigen::VectorXd const > sigma_prev, Eigen::Ref< Eigen::VectorXd > sigma, Eigen::Ref< Eigen::MatrixXd > C, MaterialStateVariables &material_state_variables)=0
virtual std::unique_ptr< MaterialStateVariables > createMaterialStateVariables()=0