www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ComputeInstantaneousThermalExpansionFunctionEigenstrain Class Reference

ComputeInstantaneousThermalExpansionFunctionEigenstrain computes an eigenstrain for thermal expansion according to an instantaneous thermal expansion function. More...

#include <ComputeInstantaneousThermalExpansionFunctionEigenstrain.h>

Inheritance diagram for ComputeInstantaneousThermalExpansionFunctionEigenstrain:
[legend]

Public Member Functions

 ComputeInstantaneousThermalExpansionFunctionEigenstrain (const InputParameters &parameters)
 

Protected Member Functions

virtual void initQpStatefulProperties () override
 
virtual void computeThermalStrain (Real &thermal_strain, Real &instantaneous_cte) override
 
virtual void computeQpEigenstrain () override
 

Protected Attributes

const VariableValue & _temperature_old
 
Function & _thermal_expansion_function
 
bool & _step_one
 Indicates whether we are on the first step, avoiding false positives when restarting. More...
 
const VariableValue & _temperature
 
MaterialProperty< RankTwoTensor > & _deigenstrain_dT
 
const VariableValue & _stress_free_temperature
 
MaterialProperty< Real > & _thermal_strain
 Stores the thermal strain as a scalar for use in computing an incremental update to this. More...
 
const MaterialProperty< Real > & _thermal_strain_old
 

Detailed Description

ComputeInstantaneousThermalExpansionFunctionEigenstrain computes an eigenstrain for thermal expansion according to an instantaneous thermal expansion function.

Definition at line 25 of file ComputeInstantaneousThermalExpansionFunctionEigenstrain.h.

Constructor & Destructor Documentation

◆ ComputeInstantaneousThermalExpansionFunctionEigenstrain()

ComputeInstantaneousThermalExpansionFunctionEigenstrain::ComputeInstantaneousThermalExpansionFunctionEigenstrain ( const InputParameters &  parameters)

Definition at line 31 of file ComputeInstantaneousThermalExpansionFunctionEigenstrain.C.

33  _temperature_old(coupledValueOld("temperature")),
34  _thermal_expansion_function(getFunction("thermal_expansion_function")),
35  _thermal_strain(declareProperty<Real>("InstantaneousThermalExpansionFunction_thermal_strain")),
37  getMaterialPropertyOld<Real>("InstantaneousThermalExpansionFunction_thermal_strain")),
38  _step_one(declareRestartableData<bool>("step_one", true))
39 {
40 }
MaterialProperty< Real > & _thermal_strain
Stores the thermal strain as a scalar for use in computing an incremental update to this...
bool & _step_one
Indicates whether we are on the first step, avoiding false positives when restarting.
ComputeThermalExpansionEigenstrainBase(const InputParameters &parameters)

Member Function Documentation

◆ computeQpEigenstrain()

void ComputeThermalExpansionEigenstrainBase::computeQpEigenstrain ( )
overrideprotectedvirtualinherited

Definition at line 37 of file ComputeThermalExpansionEigenstrainBase.C.

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

◆ computeThermalStrain()

void ComputeInstantaneousThermalExpansionFunctionEigenstrain::computeThermalStrain ( Real &  thermal_strain,
Real &  instantaneous_cte 
)
overrideprotectedvirtual

Implements ComputeThermalExpansionEigenstrainBase.

Definition at line 49 of file ComputeInstantaneousThermalExpansionFunctionEigenstrain.C.

51 {
52  if (_t_step > 1)
53  _step_one = false;
54 
55  const Real & current_temp = _temperature[_qp];
56 
57  const Real & old_thermal_strain = _thermal_strain_old[_qp];
58 
59  const Real & old_temp = (_step_one ? _stress_free_temperature[_qp] : _temperature_old[_qp]);
60  const Real delta_T = current_temp - old_temp;
61 
62  const Point p;
63  const Real alpha_current_temp = _thermal_expansion_function.value(current_temp, p);
64  const Real alpha_old_temp = _thermal_expansion_function.value(old_temp, p);
65 
66  thermal_strain = old_thermal_strain + delta_T * 0.5 * (alpha_current_temp + alpha_old_temp);
67  _thermal_strain[_qp] = thermal_strain;
68 
69  instantaneous_cte = alpha_current_temp;
70 }
MaterialProperty< Real > & _thermal_strain
Stores the thermal strain as a scalar for use in computing an incremental update to this...
bool & _step_one
Indicates whether we are on the first step, avoiding false positives when restarting.

◆ initQpStatefulProperties()

void ComputeInstantaneousThermalExpansionFunctionEigenstrain::initQpStatefulProperties ( )
overrideprotectedvirtual

Definition at line 43 of file ComputeInstantaneousThermalExpansionFunctionEigenstrain.C.

44 {
45  _thermal_strain[_qp] = 0;
46 }
MaterialProperty< Real > & _thermal_strain
Stores the thermal strain as a scalar for use in computing an incremental update to this...

Member Data Documentation

◆ _deigenstrain_dT

MaterialProperty<RankTwoTensor>& ComputeThermalExpansionEigenstrainBase::_deigenstrain_dT
protectedinherited

◆ _step_one

bool& ComputeInstantaneousThermalExpansionFunctionEigenstrain::_step_one
protected

Indicates whether we are on the first step, avoiding false positives when restarting.

Definition at line 45 of file ComputeInstantaneousThermalExpansionFunctionEigenstrain.h.

Referenced by computeThermalStrain().

◆ _stress_free_temperature

const VariableValue& ComputeThermalExpansionEigenstrainBase::_stress_free_temperature
protectedinherited

◆ _temperature

const VariableValue& ComputeThermalExpansionEigenstrainBase::_temperature
protectedinherited

◆ _temperature_old

const VariableValue& ComputeInstantaneousThermalExpansionFunctionEigenstrain::_temperature_old
protected

◆ _thermal_expansion_function

Function& ComputeInstantaneousThermalExpansionFunctionEigenstrain::_thermal_expansion_function
protected

◆ _thermal_strain

MaterialProperty<Real>& ComputeInstantaneousThermalExpansionFunctionEigenstrain::_thermal_strain
protected

Stores the thermal strain as a scalar for use in computing an incremental update to this.

Definition at line 40 of file ComputeInstantaneousThermalExpansionFunctionEigenstrain.h.

Referenced by computeThermalStrain(), and initQpStatefulProperties().

◆ _thermal_strain_old

const MaterialProperty<Real>& ComputeInstantaneousThermalExpansionFunctionEigenstrain::_thermal_strain_old
protected

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