www.mooseframework.org
TwoPhaseStressMaterial.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 #include "DerivativeMaterialInterface.h"
14 
15 // Forward Declarations
17 template <typename>
20 template <typename>
23 
24 template <>
25 InputParameters validParams<TwoPhaseStressMaterial>();
26 
31 class TwoPhaseStressMaterial : public DerivativeMaterialInterface<Material>
32 {
33 public:
34  static InputParameters validParams();
35 
36  TwoPhaseStressMaterial(const InputParameters & parameters);
37 
38 protected:
39  virtual void computeQpProperties();
40 
41  // switching function
42  const MaterialProperty<Real> & _h_eta;
43 
44  // phase A material properties
45  std::string _base_A;
46  const MaterialProperty<RankTwoTensor> & _stress_A;
47  const MaterialProperty<RankFourTensor> & _dstress_dstrain_A;
48 
49  // phase B material properties
50  std::string _base_B;
51  const MaterialProperty<RankTwoTensor> & _stress_B;
52  const MaterialProperty<RankFourTensor> & _dstress_dstrain_B;
53 
54  // global material properties
55  const std::string _base_name;
56  MaterialProperty<RankTwoTensor> & _stress;
57  MaterialProperty<RankFourTensor> & _dstress_dstrain;
58 
60  const MaterialProperty<RankTwoTensor> & _global_extra_stress;
61 };
TwoPhaseStressMaterial::_dstress_dstrain
MaterialProperty< RankFourTensor > & _dstress_dstrain
Definition: TwoPhaseStressMaterial.h:57
TwoPhaseStressMaterial::computeQpProperties
virtual void computeQpProperties()
Definition: TwoPhaseStressMaterial.C:51
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
validParams< TwoPhaseStressMaterial >
InputParameters validParams< TwoPhaseStressMaterial >()
TwoPhaseStressMaterial::_h_eta
const MaterialProperty< Real > & _h_eta
Definition: TwoPhaseStressMaterial.h:42
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20
TwoPhaseStressMaterial::_global_extra_stress
const MaterialProperty< RankTwoTensor > & _global_extra_stress
Global extra stress tensor.
Definition: TwoPhaseStressMaterial.h:60
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: TwoPhaseStressMaterial.h:18
TwoPhaseStressMaterial::_stress
MaterialProperty< RankTwoTensor > & _stress
Definition: TwoPhaseStressMaterial.h:56
TwoPhaseStressMaterial::_base_name
const std::string _base_name
Definition: TwoPhaseStressMaterial.h:55
TwoPhaseStressMaterial
Construct a global strain from the phase strains in a manner that is consistent with the construction...
Definition: TwoPhaseStressMaterial.h:31
TwoPhaseStressMaterial::_dstress_dstrain_B
const MaterialProperty< RankFourTensor > & _dstress_dstrain_B
Definition: TwoPhaseStressMaterial.h:52
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
TwoPhaseStressMaterial::_stress_A
const MaterialProperty< RankTwoTensor > & _stress_A
Definition: TwoPhaseStressMaterial.h:46
RankFourTensor
RankFourTensorTempl< Real > RankFourTensor
Definition: TwoPhaseStressMaterial.h:21
TwoPhaseStressMaterial::TwoPhaseStressMaterial
TwoPhaseStressMaterial(const InputParameters &parameters)
Definition: TwoPhaseStressMaterial.C:31
TwoPhaseStressMaterial::validParams
static InputParameters validParams()
Definition: TwoPhaseStressMaterial.C:19