www.mooseframework.org
FiniteStrainPlasticMaterial.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 // Original class author: A.M. Jokisaari, O. Heinonen
12 
13 
14 #include "ComputeStressBase.h"
15 
17 
18 template <>
20 
30 {
31 public:
32  static InputParameters validParams();
33 
34  FiniteStrainPlasticMaterial(const InputParameters & parameters);
35 
36 protected:
37  virtual void computeQpStress();
38  virtual void initQpStatefulProperties();
39  std::vector<Real> _yield_stress_vector;
40  MaterialProperty<RankTwoTensor> & _plastic_strain;
41  const MaterialProperty<RankTwoTensor> & _plastic_strain_old;
42  MaterialProperty<Real> & _eqv_plastic_strain;
43  const MaterialProperty<Real> & _eqv_plastic_strain_old;
44  const MaterialProperty<RankTwoTensor> & _stress_old;
45  const MaterialProperty<RankTwoTensor> & _strain_increment;
46  const MaterialProperty<RankTwoTensor> & _rotation_increment;
48  const std::string _elasticity_tensor_name;
50  const MaterialProperty<RankFourTensor> & _elasticity_tensor;
51  Real _rtol;
52  Real _ftol;
53  Real _eptol;
54 
55  // outer and mixed product of the delta function tensors
57 
75  virtual void returnMap(const RankTwoTensor & sig_old,
76  const Real eqvpstrain_old,
77  const RankTwoTensor & plastic_strain_old,
78  const RankTwoTensor & delta_d,
79  const RankFourTensor & E_ijkl,
80  RankTwoTensor & sig,
81  Real & eqvpstrain,
82  RankTwoTensor & plastic_strain);
83 
90  virtual Real yieldFunction(const RankTwoTensor & stress, const Real yield_stress);
91 
95  virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor & stress);
96 
100  virtual Real dyieldFunction_dinternal(const Real equivalent_plastic_strain);
101 
107  virtual RankTwoTensor flowPotential(const RankTwoTensor & stress);
108 
112  virtual Real internalPotential();
113 
117  Real getSigEqv(const RankTwoTensor & stress);
118 
127  virtual void getJac(const RankTwoTensor & sig,
128  const RankFourTensor & E_ijkl,
129  Real flow_incr,
130  RankFourTensor & dresid_dsig);
131 
136  Real getYieldStress(const Real equivalent_plastic_strain);
137 
141  Real getdYieldStressdPlasticStrain(const Real equivalent_plastic_strain);
142 };
FiniteStrainPlasticMaterial::_plastic_strain
MaterialProperty< RankTwoTensor > & _plastic_strain
Definition: FiniteStrainPlasticMaterial.h:40
FiniteStrainPlasticMaterial::_elasticity_tensor
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
Definition: FiniteStrainPlasticMaterial.h:50
FiniteStrainPlasticMaterial::_elasticity_tensor_name
const std::string _elasticity_tensor_name
Name of the elasticity tensor material property.
Definition: FiniteStrainPlasticMaterial.h:48
FiniteStrainPlasticMaterial::_rotation_increment
const MaterialProperty< RankTwoTensor > & _rotation_increment
Definition: FiniteStrainPlasticMaterial.h:46
FiniteStrainPlasticMaterial::_deltaMixed
RankFourTensor _deltaMixed
Definition: FiniteStrainPlasticMaterial.h:56
FiniteStrainPlasticMaterial
FiniteStrainPlasticMaterial implements rate-independent associative J2 plasticity with isotropic hard...
Definition: FiniteStrainPlasticMaterial.h:29
FiniteStrainPlasticMaterial::_stress_old
const MaterialProperty< RankTwoTensor > & _stress_old
Definition: FiniteStrainPlasticMaterial.h:44
FiniteStrainPlasticMaterial::_yield_stress_vector
std::vector< Real > _yield_stress_vector
Definition: FiniteStrainPlasticMaterial.h:39
FiniteStrainPlasticMaterial::returnMap
virtual void returnMap(const RankTwoTensor &sig_old, const Real eqvpstrain_old, const RankTwoTensor &plastic_strain_old, const RankTwoTensor &delta_d, const RankFourTensor &E_ijkl, RankTwoTensor &sig, Real &eqvpstrain, RankTwoTensor &plastic_strain)
Implements the return map.
Definition: FiniteStrainPlasticMaterial.C:151
FiniteStrainPlasticMaterial::FiniteStrainPlasticMaterial
FiniteStrainPlasticMaterial(const InputParameters &parameters)
Definition: FiniteStrainPlasticMaterial.C:34
FiniteStrainPlasticMaterial::_eqv_plastic_strain_old
const MaterialProperty< Real > & _eqv_plastic_strain_old
Definition: FiniteStrainPlasticMaterial.h:43
FiniteStrainPlasticMaterial::dyieldFunction_dinternal
virtual Real dyieldFunction_dinternal(const Real equivalent_plastic_strain)
Derivative of yieldFunction with respect to the equivalent plastic strain.
Definition: FiniteStrainPlasticMaterial.C:326
ComputeStressBase
ComputeStressBase is the base class for stress tensors.
Definition: ComputeStressBase.h:26
FiniteStrainPlasticMaterial::yieldFunction
virtual Real yieldFunction(const RankTwoTensor &stress, const Real yield_stress)
Calculates the yield function.
Definition: FiniteStrainPlasticMaterial.C:312
FiniteStrainPlasticMaterial::computeQpStress
virtual void computeQpStress()
Compute the stress and store it in the _stress material property for the current quadrature point.
Definition: FiniteStrainPlasticMaterial.C:63
FiniteStrainPlasticMaterial::getYieldStress
Real getYieldStress(const Real equivalent_plastic_strain)
yield stress as a function of equivalent plastic strain.
Definition: FiniteStrainPlasticMaterial.C:380
FiniteStrainPlasticMaterial::getdYieldStressdPlasticStrain
Real getdYieldStressdPlasticStrain(const Real equivalent_plastic_strain)
d(yieldstress)/d(equivalent plastic strain)
Definition: FiniteStrainPlasticMaterial.C:416
FiniteStrainPlasticMaterial::getJac
virtual void getJac(const RankTwoTensor &sig, const RankFourTensor &E_ijkl, Real flow_incr, RankFourTensor &dresid_dsig)
Evaluates the derivative d(resid_ij)/d(sig_kl), where resid_ij = flow_incr*flowPotential_ij - (E^{-1}...
Definition: FiniteStrainPlasticMaterial.C:351
FiniteStrainPlasticMaterial::dyieldFunction_dstress
virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress)
Derivative of yieldFunction with respect to the stress.
Definition: FiniteStrainPlasticMaterial.C:318
FiniteStrainPlasticMaterial::_strain_increment
const MaterialProperty< RankTwoTensor > & _strain_increment
Definition: FiniteStrainPlasticMaterial.h:45
FiniteStrainPlasticMaterial::_rtol
Real _rtol
Definition: FiniteStrainPlasticMaterial.h:51
validParams< FiniteStrainPlasticMaterial >
InputParameters validParams< FiniteStrainPlasticMaterial >()
FiniteStrainPlasticMaterial::getSigEqv
Real getSigEqv(const RankTwoTensor &stress)
Equivalent stress.
Definition: FiniteStrainPlasticMaterial.C:344
FiniteStrainPlasticMaterial::_plastic_strain_old
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
Definition: FiniteStrainPlasticMaterial.h:41
FiniteStrainPlasticMaterial::_ftol
Real _ftol
Definition: FiniteStrainPlasticMaterial.h:52
FiniteStrainPlasticMaterial::initQpStatefulProperties
virtual void initQpStatefulProperties()
Definition: FiniteStrainPlasticMaterial.C:55
FiniteStrainPlasticMaterial::internalPotential
virtual Real internalPotential()
The internal potential.
Definition: FiniteStrainPlasticMaterial.C:338
RankFourTensorTempl< Real >
FiniteStrainPlasticMaterial::flowPotential
virtual RankTwoTensor flowPotential(const RankTwoTensor &stress)
Flow potential, which in this case is just dyieldFunction_dstress because we are doing associative fl...
Definition: FiniteStrainPlasticMaterial.C:332
ComputeStressBase.h
FiniteStrainPlasticMaterial::validParams
static InputParameters validParams()
Definition: FiniteStrainPlasticMaterial.C:18
FiniteStrainPlasticMaterial::_eqv_plastic_strain
MaterialProperty< Real > & _eqv_plastic_strain
Definition: FiniteStrainPlasticMaterial.h:42
RankTwoTensorTempl< Real >
FiniteStrainPlasticMaterial::_deltaOuter
RankFourTensor _deltaOuter
Definition: FiniteStrainPlasticMaterial.h:56
FiniteStrainPlasticMaterial::_eptol
Real _eptol
Definition: FiniteStrainPlasticMaterial.h:53