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

ComputeVariableBaseEigenstrain computes an Eigenstrain based on a real tensor value material property base (a), a real material property prefactor (p) and a rank two tensor offset tensor (b) p * a + b. More...

#include <ComputeVariableBaseEigenStrain.h>

Inheritance diagram for ComputeVariableBaseEigenStrain:
[legend]

Public Member Functions

 ComputeVariableBaseEigenStrain (const InputParameters &parameters)
 

Protected Member Functions

virtual void computeQpEigenstrain ()
 Compute the eigenstrain and store in _eigenstrain. More...
 
virtual void initQpStatefulProperties ()
 
virtual void computeQpProperties ()
 
Real computeVolumetricStrainComponent (const Real volumetric_strain) const
 Helper function for models that compute the eigenstrain based on a volumetric strain. More...
 

Protected Attributes

const MaterialProperty< RealTensorValue > & _base_tensor
 
const MaterialProperty< Real > & _prefactor
 
RankTwoTensor _offset_tensor
 
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 _incremental_form
 Whether the eigenstrain model should compute the total or incremental eigenstrain. More...
 
MaterialProperty< RankTwoTensor > & _eigenstrain
 Stores the current total eigenstrain. More...
 
const MaterialProperty< RankTwoTensor > * _eigenstrain_old
 Stores the total eigenstrain in the previous step (only for incremental form) More...
 
bool & _step_zero
 Restartable data to check for the zeroth and first time steps for thermal calculations. More...
 

Detailed Description

ComputeVariableBaseEigenstrain computes an Eigenstrain based on a real tensor value material property base (a), a real material property prefactor (p) and a rank two tensor offset tensor (b) p * a + b.

Definition at line 25 of file ComputeVariableBaseEigenStrain.h.

Constructor & Destructor Documentation

ComputeVariableBaseEigenStrain::ComputeVariableBaseEigenStrain ( const InputParameters &  parameters)

Definition at line 24 of file ComputeVariableBaseEigenStrain.C.

25  : ComputeEigenstrainBase(parameters),
26  _base_tensor(getMaterialProperty<RealTensorValue>("base_tensor_property_name")),
27  _prefactor(getMaterialProperty<Real>("prefactor"))
28 {
29  if (isParamValid("offset_tensor"))
30  _offset_tensor.fillFromInputVector(getParam<std::vector<Real>>("offset_tensor"));
31  else
32  _offset_tensor.zero();
33 }
const MaterialProperty< Real > & _prefactor
ComputeEigenstrainBase(const InputParameters &parameters)
const MaterialProperty< RealTensorValue > & _base_tensor

Member Function Documentation

void ComputeVariableBaseEigenStrain::computeQpEigenstrain ( )
protectedvirtual

Compute the eigenstrain and store in _eigenstrain.

Implements ComputeEigenstrainBase.

Definition at line 36 of file ComputeVariableBaseEigenStrain.C.

37 {
38  RankTwoTensor base_rank_two_tensor = _base_tensor[_qp];
39  _eigenstrain[_qp] = base_rank_two_tensor * _prefactor[_qp] + _offset_tensor;
40 }
MaterialProperty< RankTwoTensor > & _eigenstrain
Stores the current total eigenstrain.
const MaterialProperty< Real > & _prefactor
const MaterialProperty< RealTensorValue > & _base_tensor
void ComputeEigenstrainBase::computeQpProperties ( )
protectedvirtualinherited

Definition at line 50 of file ComputeEigenstrainBase.C.

51 {
52  if (_t_step >= 1)
53  _step_zero = false;
54 
55  // Skip the eigenstrain calculation in step zero because no solution is computed during
56  // the zeroth step, hence computing the eigenstrain in the zeroth step would result in
57  // an incorrect calculation of mechanical_strain, which is stateful.
58  if (!_step_zero)
60 }
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.
Real ComputeEigenstrainBase::computeVolumetricStrainComponent ( const Real  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. param volumetric_strain The current volumetric strain to be applied

Definition at line 63 of file ComputeEigenstrainBase.C.

64 {
65 
66  Real volumetric_strain_comp = std::cbrt(volumetric_strain + 1.0) - 1.0;
67 
68  // Convert to logarithmic strain to compute strains to exactly recover
69  // volumetric strain in finite strain models
70  volumetric_strain_comp = std::log(1.0 + volumetric_strain_comp);
71 
72  return volumetric_strain_comp;
73 }
void ComputeEigenstrainBase::initQpStatefulProperties ( )
protectedvirtualinherited

Reimplemented in ComputeReducedOrderEigenstrain.

Definition at line 43 of file ComputeEigenstrainBase.C.

44 {
46  _eigenstrain[_qp].zero();
47 }
MaterialProperty< RankTwoTensor > & _eigenstrain
Stores the current total eigenstrain.
bool _incremental_form
Whether the eigenstrain model should compute the total or incremental eigenstrain.

Member Data Documentation

std::string ComputeEigenstrainBase::_base_name
protectedinherited

Base name prepended to material property name.

Definition at line 30 of file ComputeEigenstrainBase.h.

Referenced by ComputeReducedOrderEigenstrain::ComputeReducedOrderEigenstrain().

const MaterialProperty<RealTensorValue>& ComputeVariableBaseEigenStrain::_base_tensor
protected

Definition at line 33 of file ComputeVariableBaseEigenStrain.h.

Referenced by computeQpEigenstrain().

MaterialProperty<RankTwoTensor>& ComputeEigenstrainBase::_eigenstrain
protectedinherited
std::string ComputeEigenstrainBase::_eigenstrain_name
protectedinherited

Material property name for the eigenstrain tensor.

Definition at line 33 of file ComputeEigenstrainBase.h.

const MaterialProperty<RankTwoTensor>* ComputeEigenstrainBase::_eigenstrain_old
protectedinherited

Stores the total eigenstrain in the previous step (only for incremental form)

Definition at line 42 of file ComputeEigenstrainBase.h.

bool ComputeEigenstrainBase::_incremental_form
protectedinherited
RankTwoTensor ComputeVariableBaseEigenStrain::_offset_tensor
protected
const MaterialProperty<Real>& ComputeVariableBaseEigenStrain::_prefactor
protected

Definition at line 34 of file ComputeVariableBaseEigenStrain.h.

Referenced by computeQpEigenstrain().

bool& ComputeEigenstrainBase::_step_zero
protectedinherited

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

Definition at line 52 of file ComputeEigenstrainBase.h.

Referenced by ComputeEigenstrainBase::computeQpProperties().


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