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

Construct a global strain from the phase strains in a manner that is consistent with the construction of the global elastic energy by DerivativeTwoPhaseMaterial. More...

#include <TwoPhaseStressMaterial.h>

Inheritance diagram for TwoPhaseStressMaterial:
[legend]

Public Member Functions

 TwoPhaseStressMaterial (const InputParameters &parameters)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void computeQpProperties ()
 

Protected Attributes

const MaterialProperty< Real > & _h_eta
 
std::string _base_A
 
const MaterialProperty< RankTwoTensor > & _stress_A
 
const MaterialProperty< RankFourTensor > & _dstress_dstrain_A
 
std::string _base_B
 
const MaterialProperty< RankTwoTensor > & _stress_B
 
const MaterialProperty< RankFourTensor > & _dstress_dstrain_B
 
const std::string _base_name
 
MaterialProperty< RankTwoTensor > & _stress
 
MaterialProperty< RankFourTensor > & _dstress_dstrain
 
const MaterialProperty< RankTwoTensor > & _global_extra_stress
 Global extra stress tensor. More...
 

Detailed Description

Construct a global strain from the phase strains in a manner that is consistent with the construction of the global elastic energy by DerivativeTwoPhaseMaterial.

Definition at line 31 of file TwoPhaseStressMaterial.h.

Constructor & Destructor Documentation

◆ TwoPhaseStressMaterial()

TwoPhaseStressMaterial::TwoPhaseStressMaterial ( const InputParameters &  parameters)

Definition at line 31 of file TwoPhaseStressMaterial.C.

32  : DerivativeMaterialInterface<Material>(parameters),
33  _h_eta(getMaterialProperty<Real>("h")),
34 
35  _base_A(getParam<std::string>("base_A") + "_"),
36  _stress_A(getMaterialPropertyByName<RankTwoTensor>(_base_A + "stress")),
37  _dstress_dstrain_A(getMaterialPropertyByName<RankFourTensor>(_base_A + "Jacobian_mult")),
38 
39  _base_B(getParam<std::string>("base_B") + "_"),
40  _stress_B(getMaterialPropertyByName<RankTwoTensor>(_base_B + "stress")),
41  _dstress_dstrain_B(getMaterialPropertyByName<RankFourTensor>(_base_B + "Jacobian_mult")),
42 
43  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
44  _stress(declareProperty<RankTwoTensor>(_base_name + "stress")),
45  _dstress_dstrain(declareProperty<RankFourTensor>(_base_name + "Jacobian_mult")),
46  _global_extra_stress(getDefaultMaterialProperty<RankTwoTensor>("extra_stress"))
47 {
48 }

Member Function Documentation

◆ computeQpProperties()

void TwoPhaseStressMaterial::computeQpProperties ( )
protectedvirtual

Definition at line 51 of file TwoPhaseStressMaterial.C.

52 {
53  _stress[_qp] = _h_eta[_qp] * _stress_B[_qp] + (1.0 - _h_eta[_qp]) * _stress_A[_qp];
54 
55  // Add in global extra stress
56  _stress[_qp] += _global_extra_stress[_qp];
57 
58  _dstress_dstrain[_qp] =
59  _h_eta[_qp] * _dstress_dstrain_B[_qp] + (1.0 - _h_eta[_qp]) * _dstress_dstrain_A[_qp];
60 }

◆ validParams()

InputParameters TwoPhaseStressMaterial::validParams ( )
static

Definition at line 19 of file TwoPhaseStressMaterial.C.

20 {
21  InputParameters params = Material::validParams();
22  params.addClassDescription("Compute a global stress in a two phase model");
23  params.addParam<MaterialPropertyName>(
24  "h", "h", "Switching Function Material that provides h(eta)");
25  params.addRequiredParam<std::string>("base_A", "Base name for the Phase A strain.");
26  params.addRequiredParam<std::string>("base_B", "Base name for the Phase B strain.");
27  params.addParam<std::string>("base_name", "Base name for the computed global stress (optional).");
28  return params;
29 }

Member Data Documentation

◆ _base_A

std::string TwoPhaseStressMaterial::_base_A
protected

Definition at line 45 of file TwoPhaseStressMaterial.h.

◆ _base_B

std::string TwoPhaseStressMaterial::_base_B
protected

Definition at line 50 of file TwoPhaseStressMaterial.h.

◆ _base_name

const std::string TwoPhaseStressMaterial::_base_name
protected

Definition at line 55 of file TwoPhaseStressMaterial.h.

◆ _dstress_dstrain

MaterialProperty<RankFourTensor>& TwoPhaseStressMaterial::_dstress_dstrain
protected

Definition at line 57 of file TwoPhaseStressMaterial.h.

Referenced by computeQpProperties().

◆ _dstress_dstrain_A

const MaterialProperty<RankFourTensor>& TwoPhaseStressMaterial::_dstress_dstrain_A
protected

Definition at line 47 of file TwoPhaseStressMaterial.h.

Referenced by computeQpProperties().

◆ _dstress_dstrain_B

const MaterialProperty<RankFourTensor>& TwoPhaseStressMaterial::_dstress_dstrain_B
protected

Definition at line 52 of file TwoPhaseStressMaterial.h.

Referenced by computeQpProperties().

◆ _global_extra_stress

const MaterialProperty<RankTwoTensor>& TwoPhaseStressMaterial::_global_extra_stress
protected

Global extra stress tensor.

Definition at line 60 of file TwoPhaseStressMaterial.h.

Referenced by computeQpProperties().

◆ _h_eta

const MaterialProperty<Real>& TwoPhaseStressMaterial::_h_eta
protected

Definition at line 42 of file TwoPhaseStressMaterial.h.

Referenced by computeQpProperties().

◆ _stress

MaterialProperty<RankTwoTensor>& TwoPhaseStressMaterial::_stress
protected

Definition at line 56 of file TwoPhaseStressMaterial.h.

Referenced by computeQpProperties().

◆ _stress_A

const MaterialProperty<RankTwoTensor>& TwoPhaseStressMaterial::_stress_A
protected

Definition at line 46 of file TwoPhaseStressMaterial.h.

Referenced by computeQpProperties().

◆ _stress_B

const MaterialProperty<RankTwoTensor>& TwoPhaseStressMaterial::_stress_B
protected

Definition at line 51 of file TwoPhaseStressMaterial.h.

Referenced by computeQpProperties().


The documentation for this class was generated from the following files:
TwoPhaseStressMaterial::_dstress_dstrain
MaterialProperty< RankFourTensor > & _dstress_dstrain
Definition: TwoPhaseStressMaterial.h:57
TwoPhaseStressMaterial::_base_B
std::string _base_B
Definition: TwoPhaseStressMaterial.h:50
TwoPhaseStressMaterial::_base_A
std::string _base_A
Definition: TwoPhaseStressMaterial.h:45
TwoPhaseStressMaterial::_stress_B
const MaterialProperty< RankTwoTensor > & _stress_B
Definition: TwoPhaseStressMaterial.h:51
TwoPhaseStressMaterial::_dstress_dstrain_A
const MaterialProperty< RankFourTensor > & _dstress_dstrain_A
Definition: TwoPhaseStressMaterial.h:47
TwoPhaseStressMaterial::_h_eta
const MaterialProperty< Real > & _h_eta
Definition: TwoPhaseStressMaterial.h:42
validParams
InputParameters validParams()
TwoPhaseStressMaterial::_global_extra_stress
const MaterialProperty< RankTwoTensor > & _global_extra_stress
Global extra stress tensor.
Definition: TwoPhaseStressMaterial.h:60
TwoPhaseStressMaterial::_stress
MaterialProperty< RankTwoTensor > & _stress
Definition: TwoPhaseStressMaterial.h:56
TwoPhaseStressMaterial::_base_name
const std::string _base_name
Definition: TwoPhaseStressMaterial.h:55
TwoPhaseStressMaterial::_dstress_dstrain_B
const MaterialProperty< RankFourTensor > & _dstress_dstrain_B
Definition: TwoPhaseStressMaterial.h:52
TwoPhaseStressMaterial::_stress_A
const MaterialProperty< RankTwoTensor > & _stress_A
Definition: TwoPhaseStressMaterial.h:46