www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MultiPhaseStressMaterial 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 DerivativeMultiPhaseMaterial. More...

#include <MultiPhaseStressMaterial.h>

Inheritance diagram for MultiPhaseStressMaterial:
[legend]

Public Member Functions

 MultiPhaseStressMaterial (const InputParameters &parameters)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void computeQpProperties ()
 

Protected Attributes

std::vector< MaterialPropertyName > _h_list
 switching function name list More...
 
unsigned int _n_phase
 number of phases handled by this material More...
 
std::vector< const MaterialProperty< Real > * > _h_eta
 switching functions More...
 
std::vector< std::string > _phase_base
 
std::vector< const MaterialProperty< RankTwoTensor > * > _phase_stress
 
std::vector< const MaterialProperty< RankFourTensor > * > _dphase_stress_dstrain
 
const std::string _base_name
 
MaterialProperty< RankTwoTensor > & _stress
 
MaterialProperty< RankFourTensor > & _dstress_dstrain
 

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 DerivativeMultiPhaseMaterial.

Definition at line 30 of file MultiPhaseStressMaterial.h.

Constructor & Destructor Documentation

◆ MultiPhaseStressMaterial()

MultiPhaseStressMaterial::MultiPhaseStressMaterial ( const InputParameters &  parameters)

Definition at line 31 of file MultiPhaseStressMaterial.C.

32  : Material(parameters),
33  _h_list(getParam<std::vector<MaterialPropertyName>>("h")),
34  _n_phase(_h_list.size()),
36  _phase_base(getParam<std::vector<std::string>>("phase_base")),
39  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
40  _stress(declareProperty<RankTwoTensor>(_base_name + "stress")),
41  _dstress_dstrain(declareProperty<RankFourTensor>(_base_name + "Jacobian_mult"))
42 {
43  // verify parameter length
44  if (_n_phase != _phase_base.size())
45  mooseError(
46  "h and phase_base input vectors need to have the same length in MultiPhaseStressMaterial ",
47  name());
48 
49  for (unsigned int i = 0; i < _n_phase; ++i)
50  {
51  _h_eta[i] = &getMaterialProperty<Real>(_h_list[i]);
52  _phase_stress[i] = &getMaterialProperty<RankTwoTensor>(_phase_base[i] + "_stress");
54  &getMaterialProperty<RankFourTensor>(_phase_base[i] + "_Jacobian_mult");
55  }
56 }

Member Function Documentation

◆ computeQpProperties()

void MultiPhaseStressMaterial::computeQpProperties ( )
protectedvirtual

Definition at line 59 of file MultiPhaseStressMaterial.C.

60 {
61  _stress[_qp].zero();
62  _dstress_dstrain[_qp].zero();
63 
64  for (unsigned int i = 0; i < _n_phase; ++i)
65  {
66  _stress[_qp] += (*_h_eta[i])[_qp] * (*_phase_stress[i])[_qp];
67  _dstress_dstrain[_qp] += (*_h_eta[i])[_qp] * (*_dphase_stress_dstrain[i])[_qp];
68  }
69 }

◆ validParams()

InputParameters MultiPhaseStressMaterial::validParams ( )
static

Definition at line 19 of file MultiPhaseStressMaterial.C.

20 {
21  InputParameters params = Material::validParams();
22  params.addClassDescription("Compute a global stress form multiple phase stresses");
23  params.addParam<std::vector<MaterialPropertyName>>(
24  "h", "Switching Function Materials that provide h(eta_i)");
25  params.addRequiredParam<std::vector<std::string>>("phase_base",
26  "Base names for the Phase strains");
27  params.addParam<std::string>("base_name", "Base name for the computed global stress (optional)");
28  return params;
29 }

Member Data Documentation

◆ _base_name

const std::string MultiPhaseStressMaterial::_base_name
protected

Definition at line 55 of file MultiPhaseStressMaterial.h.

◆ _dphase_stress_dstrain

std::vector<const MaterialProperty<RankFourTensor> *> MultiPhaseStressMaterial::_dphase_stress_dstrain
protected

Definition at line 52 of file MultiPhaseStressMaterial.h.

Referenced by computeQpProperties(), and MultiPhaseStressMaterial().

◆ _dstress_dstrain

MaterialProperty<RankFourTensor>& MultiPhaseStressMaterial::_dstress_dstrain
protected

Definition at line 57 of file MultiPhaseStressMaterial.h.

Referenced by computeQpProperties().

◆ _h_eta

std::vector<const MaterialProperty<Real> *> MultiPhaseStressMaterial::_h_eta
protected

switching functions

Definition at line 47 of file MultiPhaseStressMaterial.h.

Referenced by computeQpProperties(), and MultiPhaseStressMaterial().

◆ _h_list

std::vector<MaterialPropertyName> MultiPhaseStressMaterial::_h_list
protected

switching function name list

Definition at line 41 of file MultiPhaseStressMaterial.h.

Referenced by MultiPhaseStressMaterial().

◆ _n_phase

unsigned int MultiPhaseStressMaterial::_n_phase
protected

number of phases handled by this material

Definition at line 44 of file MultiPhaseStressMaterial.h.

Referenced by computeQpProperties(), and MultiPhaseStressMaterial().

◆ _phase_base

std::vector<std::string> MultiPhaseStressMaterial::_phase_base
protected

Definition at line 50 of file MultiPhaseStressMaterial.h.

Referenced by MultiPhaseStressMaterial().

◆ _phase_stress

std::vector<const MaterialProperty<RankTwoTensor> *> MultiPhaseStressMaterial::_phase_stress
protected

Definition at line 51 of file MultiPhaseStressMaterial.h.

Referenced by computeQpProperties(), and MultiPhaseStressMaterial().

◆ _stress

MaterialProperty<RankTwoTensor>& MultiPhaseStressMaterial::_stress
protected

Definition at line 56 of file MultiPhaseStressMaterial.h.

Referenced by computeQpProperties().


The documentation for this class was generated from the following files:
MultiPhaseStressMaterial::_h_eta
std::vector< const MaterialProperty< Real > * > _h_eta
switching functions
Definition: MultiPhaseStressMaterial.h:47
MultiPhaseStressMaterial::_dstress_dstrain
MaterialProperty< RankFourTensor > & _dstress_dstrain
Definition: MultiPhaseStressMaterial.h:57
MultiPhaseStressMaterial::_base_name
const std::string _base_name
Definition: MultiPhaseStressMaterial.h:55
MultiPhaseStressMaterial::_dphase_stress_dstrain
std::vector< const MaterialProperty< RankFourTensor > * > _dphase_stress_dstrain
Definition: MultiPhaseStressMaterial.h:52
MultiPhaseStressMaterial::_phase_base
std::vector< std::string > _phase_base
Definition: MultiPhaseStressMaterial.h:50
validParams
InputParameters validParams()
name
const std::string name
Definition: Setup.h:21
MultiPhaseStressMaterial::_n_phase
unsigned int _n_phase
number of phases handled by this material
Definition: MultiPhaseStressMaterial.h:44
MultiPhaseStressMaterial::_h_list
std::vector< MaterialPropertyName > _h_list
switching function name list
Definition: MultiPhaseStressMaterial.h:41
MultiPhaseStressMaterial::_phase_stress
std::vector< const MaterialProperty< RankTwoTensor > * > _phase_stress
Definition: MultiPhaseStressMaterial.h:51
MultiPhaseStressMaterial::_stress
MaterialProperty< RankTwoTensor > & _stress
Definition: MultiPhaseStressMaterial.h:56