Advanced Multi-Physics (AMP)
On-Line Documentation
ElasticDamageThermalStrainModel.h
Go to the documentation of this file.
1#ifndef included_AMP_ElasticDamageThermalStrainModel
2#define included_AMP_ElasticDamageThermalStrainModel
3
4
5#include "AMP/operators/mechanics/MechanicsMaterialModel.h"
6
7#include <memory>
8#include <vector>
9
10
11namespace AMP::Operator {
12
14{
15public:
16 explicit ElasticDamageThermalStrainModel( std::shared_ptr<MechanicsMaterialModelParameters> );
17
19
20 void getConstitutiveMatrix( double *& ) override;
21
22 void getExternalStress( double *& ) override;
23
24 void getInternalStress( const std::vector<std::vector<double>> &, double *& ) override;
25
26 void preLinearAssembly() override { d_gaussPtCnt = 0; }
27
29
30 void preNonlinearInit( bool, bool ) override;
31
32 void nonlinearInitGaussPointOperation( double ) override;
33
34 void preNonlinearAssembly() override { d_gaussPtCnt = 0; }
35
37
38 void preNonlinearReset() override { d_gaussPtCnt = 0; }
39
41
42 void nonlinearResetGaussPointOperation( const std::vector<std::vector<double>> & ) override;
43
44 void globalReset() override;
45
46 void postNonlinearReset() override;
47
48 void preNonlinearJacobian() override { d_gaussPtCnt = 0; }
49
51
52 void nonlinearJacobianGaussPointOperation( const std::vector<std::vector<double>> & ) override;
53
54 std::vector<double> d_EquilibriumDamage;
55
56 std::vector<double> d_tmp1Damage;
57
58 std::vector<double> d_tmp2Damage;
59
60protected:
61 void Thermal_Strain_Gauss_Point( const double *stra_np1,
62 const double Temp,
63 double *stre_np1,
64 const std::vector<std::vector<double>> &strain );
65
66 void computeEvalv( const std::vector<std::vector<double>> &strain );
67
68 void constructConstitutiveMatrix( const double, const double );
69
71
73
75
76 // Thermal expansion coefficient.
77 std::vector<double> d_alpha;
78
79 std::vector<double> d_E;
80
81 std::vector<double> d_Nu;
82
83 double default_E;
84
85 double default_Nu;
86
88
90
92
93 unsigned int d_gaussPtCnt;
94
96
98
99 std::vector<double> d_EquilibriumStress;
100
101 std::vector<double> d_EquilibriumStrain;
102
103 std::vector<double> d_EquilibriumTemperature;
104
105 std::vector<double> d_tmp1Stress;
106
107 std::vector<double> d_tmp1Strain;
108
109 std::vector<double> d_tmp1Temperature;
110
111 std::vector<double> d_tmp2Stress;
112
113 std::vector<double> d_EquilibriumTau;
114
115 std::vector<double> d_tmp1Tau;
116
117 std::vector<double> d_tmp2Tau;
118
119 std::vector<double> d_EquilibriumDamageThreshold;
120
121 std::vector<double> d_tmp1DamageThreshold;
122
123 std::vector<double> d_tmp2DamageThreshold;
124
125 std::vector<double> d_tmp1ThermalStrain_Axial;
126
127 std::vector<double> d_tmp1ThermalStrain_Radial;
128
130
132
133 std::vector<double> d_InitialDamageVec;
134
135 std::vector<double> d_CriticalDamageVec;
136
138
140
141 // If Source then TRUE, if Material_Model then FALSE
143
144private:
145};
146} // namespace AMP::Operator
147
148#endif
void constructConstitutiveMatrix(const double, const double)
void getConstitutiveMatrix(double *&) override
void computeEvalv(const std::vector< std::vector< double > > &strain)
void nonlinearInitGaussPointOperation(double) override
void Thermal_Strain_Gauss_Point(const double *stra_np1, const double Temp, double *stre_np1, const std::vector< std::vector< double > > &strain)
void getInternalStress(const std::vector< std::vector< double > > &, double *&) override
void nonlinearResetGaussPointOperation(const std::vector< std::vector< double > > &) override
void nonlinearJacobianGaussPointOperation(const std::vector< std::vector< double > > &) override
ElasticDamageThermalStrainModel(std::shared_ptr< MechanicsMaterialModelParameters >)



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:41.
Comments on this page