https://mooseframework.inl.gov
Loading...
Searching...
No Matches
FiniteStrainPlasticMaterial.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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// Original class author: A.M. Jokisaari, O. Heinonen
13
14#include "ComputeStressBase.h"
15
25{
26public:
28
30
31protected:
32 virtual void computeQpStress();
33 virtual void initQpStatefulProperties();
34 std::vector<Real> _yield_stress_vector;
44 const std::string _elasticity_tensor_name;
47 Real _rtol;
48 Real _ftol;
49 Real _eptol;
50
51 // outer and mixed product of the delta function tensors
53
71 virtual void returnMap(const RankTwoTensor & sig_old,
72 const Real eqvpstrain_old,
73 const RankTwoTensor & plastic_strain_old,
74 const RankTwoTensor & delta_d,
75 const RankFourTensor & E_ijkl,
76 RankTwoTensor & sig,
77 Real & eqvpstrain,
78 RankTwoTensor & plastic_strain);
79
86 virtual Real yieldFunction(const RankTwoTensor & stress, const Real yield_stress);
87
92
96 virtual Real dyieldFunction_dinternal(const Real equivalent_plastic_strain);
97
103 virtual RankTwoTensor flowPotential(const RankTwoTensor & stress);
104
108 virtual Real internalPotential();
109
113 Real getSigEqv(const RankTwoTensor & stress);
114
123 virtual void getJac(const RankTwoTensor & sig,
124 const RankFourTensor & E_ijkl,
125 Real flow_incr,
126 RankFourTensor & dresid_dsig);
127
132 Real getYieldStress(const Real equivalent_plastic_strain);
133
137 Real getdYieldStressdPlasticStrain(const Real equivalent_plastic_strain);
138
140 usingTensorIndices(i_, j_, k_, l_);
141};
ComputeStressBase is the base class for stress tensors computed from MOOSE's strain calculators.
FiniteStrainPlasticMaterial implements rate-independent associative J2 plasticity with isotropic hard...
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.
const MaterialProperty< RankTwoTensor > & _plastic_strain_old
virtual Real yieldFunction(const RankTwoTensor &stress, const Real yield_stress)
Calculates the yield function.
const MaterialProperty< RankTwoTensor > & _strain_increment
virtual RankTwoTensor flowPotential(const RankTwoTensor &stress)
Flow potential, which in this case is just dyieldFunction_dstress because we are doing associative fl...
virtual void computeQpStress()
Compute the stress and store it in the _stress material property for the current quadrature point.
usingTensorIndices(i_, j_, k_, l_)
make i,j,k,l available as tensor indices for mixedProduct
virtual Real internalPotential()
The internal potential.
virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress)
Derivative of yieldFunction with respect to the stress.
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
MaterialProperty< RankTwoTensor > & _plastic_strain
Real getYieldStress(const Real equivalent_plastic_strain)
yield stress as a function of equivalent plastic strain.
const MaterialProperty< RankTwoTensor > & _stress_old
The old stress tensor.
const MaterialProperty< Real > & _eqv_plastic_strain_old
MaterialProperty< Real > & _eqv_plastic_strain
Real getSigEqv(const RankTwoTensor &stress)
Equivalent stress.
const MaterialProperty< RankTwoTensor > & _rotation_increment
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}...
const std::string _elasticity_tensor_name
Name of the elasticity tensor material property.
virtual Real dyieldFunction_dinternal(const Real equivalent_plastic_strain)
Derivative of yieldFunction with respect to the equivalent plastic strain.
Real getdYieldStressdPlasticStrain(const Real equivalent_plastic_strain)
d(yieldstress)/d(equivalent plastic strain)