www.mooseframework.org
MultiPhaseStressMaterial.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "Material.h"
13 
14 // Forward Declarations
16 template <typename>
19 template <typename>
22 
23 template <>
25 
30 class MultiPhaseStressMaterial : public Material
31 {
32 public:
33  static InputParameters validParams();
34 
35  MultiPhaseStressMaterial(const InputParameters & parameters);
36 
37 protected:
38  virtual void computeQpProperties();
39 
41  std::vector<MaterialPropertyName> _h_list;
42 
44  unsigned int _n_phase;
45 
47  std::vector<const MaterialProperty<Real> *> _h_eta;
48 
49  // phase material properties
50  std::vector<std::string> _phase_base;
51  std::vector<const MaterialProperty<RankTwoTensor> *> _phase_stress;
52  std::vector<const MaterialProperty<RankFourTensor> *> _dphase_stress_dstrain;
53 
54  // global material properties
55  const std::string _base_name;
56  MaterialProperty<RankTwoTensor> & _stress;
57  MaterialProperty<RankFourTensor> & _dstress_dstrain;
58 };
validParams< MultiPhaseStressMaterial >
InputParameters validParams< MultiPhaseStressMaterial >()
MultiPhaseStressMaterial
Construct a global strain from the phase strains in a manner that is consistent with the construction...
Definition: MultiPhaseStressMaterial.h:30
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::validParams
static InputParameters validParams()
Definition: MultiPhaseStressMaterial.C:19
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
MultiPhaseStressMaterial::computeQpProperties
virtual void computeQpProperties()
Definition: MultiPhaseStressMaterial.C:59
MultiPhaseStressMaterial::_n_phase
unsigned int _n_phase
number of phases handled by this material
Definition: MultiPhaseStressMaterial.h:44
RankFourTensor
RankFourTensorTempl< Real > RankFourTensor
Definition: MultiPhaseStressMaterial.h:20
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20
MultiPhaseStressMaterial::MultiPhaseStressMaterial
MultiPhaseStressMaterial(const InputParameters &parameters)
Definition: MultiPhaseStressMaterial.C:31
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
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
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: MultiPhaseStressMaterial.h:17