www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ADComputeThermalExpansionEigenstrain< compute_stage > Class Template Reference

ADComputeThermalExpansionEigenstrain computes an eigenstrain for thermal expansion with a constant expansion coefficient. More...

#include <ADComputeThermalExpansionEigenstrain.h>

Inheritance diagram for ADComputeThermalExpansionEigenstrain< compute_stage >:
[legend]

Public Member Functions

 ADComputeThermalExpansionEigenstrain (const InputParameters &parameters)
 

Protected Member Functions

virtual void computeThermalStrain (ADReal &thermal_strain, ADReal &instantaneous_cte) override
 
virtual void computeQpEigenstrain () override
 Compute the eigenstrain and store in _eigenstrain. More...
 
 ADMaterialProperty (RankTwoTensor) &_deigenstrain_dT
 
virtual void initQpStatefulProperties () override
 
virtual void computeQpProperties () override
 
ADReal computeVolumetricStrainComponent (const ADReal volumetric_strain) const
 Helper function for models that compute the eigenstrain based on a volumetric strain. More...
 

Protected Attributes

const Real & _thermal_expansion_coeff
 
 usingComputeThermalExpansionEigenstrainBaseMembers
 
const ADVariableValue & _temperature
 
const ADVariableValue & _stress_free_temperature
 
 usingComputeEigenstrainBaseMembers
 
std::string _base_name
 Base name prepended to material property name. More...
 
std::string _eigenstrain_name
 Material property name for the eigenstrain tensor. More...
 
bool & _step_zero
 Restartable data to check for the zeroth and first time steps for thermal calculations. More...
 
 usingMaterialMembers
 

Detailed Description

template<ComputeStage compute_stage>
class ADComputeThermalExpansionEigenstrain< compute_stage >

ADComputeThermalExpansionEigenstrain computes an eigenstrain for thermal expansion with a constant expansion coefficient.

Definition at line 16 of file ADComputeThermalExpansionEigenstrain.h.

Constructor & Destructor Documentation

◆ ADComputeThermalExpansionEigenstrain()

template<ComputeStage compute_stage>
ADComputeThermalExpansionEigenstrain< compute_stage >::ADComputeThermalExpansionEigenstrain ( const InputParameters &  parameters)

Definition at line 22 of file ADComputeThermalExpansionEigenstrain.C.

25  _thermal_expansion_coeff(adGetParam<Real>("thermal_expansion_coeff"))
26 {
27 }
ADComputeThermalExpansionEigenstrainBase is a base class for all models that compute eigenstrains due...

Member Function Documentation

◆ ADMaterialProperty()

template<ComputeStage compute_stage>
ADComputeThermalExpansionEigenstrainBase< compute_stage >::ADMaterialProperty ( RankTwoTensor  ) &
protectedinherited

◆ computeQpEigenstrain()

template<ComputeStage compute_stage>
void ADComputeThermalExpansionEigenstrainBase< compute_stage >::computeQpEigenstrain ( )
overrideprotectedvirtualinherited

Compute the eigenstrain and store in _eigenstrain.

Implements ADComputeEigenstrainBase< compute_stage >.

Definition at line 34 of file ADComputeThermalExpansionEigenstrainBase.C.

35 {
36  ADReal thermal_strain = 0.0;
37  ADReal instantaneous_cte = 0.0;
38 
39  computeThermalStrain(thermal_strain, instantaneous_cte);
40 
41  _eigenstrain[_qp].zero();
42  _eigenstrain[_qp].addIa(thermal_strain);
43 
44  _deigenstrain_dT[_qp].zero();
45  _deigenstrain_dT[_qp].addIa(instantaneous_cte);
46 }
virtual void computeThermalStrain(ADReal &thermal_strain, ADReal &instantaneous_cte)=0

◆ computeQpProperties()

template<ComputeStage compute_stage>
void ADComputeEigenstrainBase< compute_stage >::computeQpProperties ( )
overrideprotectedvirtualinherited

Definition at line 54 of file ADComputeEigenstrainBase.C.

55 {
56  if (_t_step >= 1)
57  _step_zero = false;
58 
59  // Skip the eigenstrain calculation in step zero because no solution is computed during
60  // the zeroth step, hence computing the eigenstrain in the zeroth step would result in
61  // an incorrect calculation of mechanical_strain, which is stateful.
62  if (!_step_zero)
64 }
virtual void computeQpEigenstrain()=0
Compute the eigenstrain and store in _eigenstrain.
bool & _step_zero
Restartable data to check for the zeroth and first time steps for thermal calculations.

◆ computeThermalStrain()

template<ComputeStage compute_stage>
void ADComputeThermalExpansionEigenstrain< compute_stage >::computeThermalStrain ( ADReal &  thermal_strain,
ADReal &  instantaneous_cte 
)
overrideprotectedvirtual

◆ computeVolumetricStrainComponent()

template<ComputeStage compute_stage>
ADReal ADComputeEigenstrainBase< compute_stage >::computeVolumetricStrainComponent ( const ADReal  volumetric_strain) const
protectedinherited

Helper function for models that compute the eigenstrain based on a volumetric strain.

This function computes the diagonal components of the eigenstrain tensor as logarithmic strains.

Parameters
volumetric_strainThe current volumetric strain to be applied
Returns
Current strain in one direction due to volumetric strain, expressed as a logarithmic strain

Definition at line 68 of file ADComputeEigenstrainBase.C.

70 {
71  // The engineering strain in a given direction is:
72  // epsilon_eng = cbrt(volumetric_strain + 1.0) - 1.0
73  //
74  // We need to provide this as a logarithmic strain to be consistent with the strain measure
75  // used for finite strain:
76  // epsilon_log = log(1.0 + epsilon_eng)
77  //
78  // This can be simplified down to a more direct form:
79  // epsilon_log = log(cbrt(volumetric_strain + 1.0))
80  // or:
81  // epsilon_log = (1/3) log(volumetric_strain + 1.0)
82 
83  return std::log(volumetric_strain + 1.0) / 3.0;
84 }

◆ initQpStatefulProperties()

template<ComputeStage compute_stage>
void ADComputeEigenstrainBase< compute_stage >::initQpStatefulProperties ( )
overrideprotectedvirtualinherited

Definition at line 45 of file ADComputeEigenstrainBase.C.

46 {
47  // This property can be promoted to be stateful by other models that use it,
48  // so it needs to be initalized.
49  _eigenstrain[_qp].zero();
50 }

Member Data Documentation

◆ _base_name

template<ComputeStage compute_stage>
std::string ADComputeEigenstrainBase< compute_stage >::_base_name
protectedinherited

Base name prepended to material property name.

Definition at line 49 of file ADComputeEigenstrainBase.h.

◆ _eigenstrain_name

template<ComputeStage compute_stage>
std::string ADComputeEigenstrainBase< compute_stage >::_eigenstrain_name
protectedinherited

Material property name for the eigenstrain tensor.

Definition at line 52 of file ADComputeEigenstrainBase.h.

◆ _step_zero

template<ComputeStage compute_stage>
bool& ADComputeEigenstrainBase< compute_stage >::_step_zero
protectedinherited

Restartable data to check for the zeroth and first time steps for thermal calculations.

Definition at line 68 of file ADComputeEigenstrainBase.h.

◆ _stress_free_temperature

template<ComputeStage compute_stage>
const ADVariableValue& ADComputeThermalExpansionEigenstrainBase< compute_stage >::_stress_free_temperature
protectedinherited

Definition at line 59 of file ADComputeThermalExpansionEigenstrainBase.h.

◆ _temperature

template<ComputeStage compute_stage>
const ADVariableValue& ADComputeThermalExpansionEigenstrainBase< compute_stage >::_temperature
protectedinherited

Definition at line 57 of file ADComputeThermalExpansionEigenstrainBase.h.

◆ _thermal_expansion_coeff

template<ComputeStage compute_stage>
const Real& ADComputeThermalExpansionEigenstrain< compute_stage >::_thermal_expansion_coeff
protected

Definition at line 34 of file ADComputeThermalExpansionEigenstrain.h.

◆ usingComputeEigenstrainBaseMembers

template<ComputeStage compute_stage>
ADComputeThermalExpansionEigenstrainBase< compute_stage >::usingComputeEigenstrainBaseMembers
protectedinherited

Definition at line 61 of file ADComputeThermalExpansionEigenstrainBase.h.

◆ usingComputeThermalExpansionEigenstrainBaseMembers

template<ComputeStage compute_stage>
ADComputeThermalExpansionEigenstrain< compute_stage >::usingComputeThermalExpansionEigenstrainBaseMembers
protected

Definition at line 36 of file ADComputeThermalExpansionEigenstrain.h.

◆ usingMaterialMembers

template<ComputeStage compute_stage>
ADComputeEigenstrainBase< compute_stage >::usingMaterialMembers
protectedinherited

Definition at line 70 of file ADComputeEigenstrainBase.h.


The documentation for this class was generated from the following files: