www.mooseframework.org
TensorMechanicsPlasticJ2.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef TENSORMECHANICSPLASTICJ2_H
8 #define TENSORMECHANICSPLASTICJ2_H
9 
12 
14 
15 template <>
17 
23 {
24 public:
25  TensorMechanicsPlasticJ2(const InputParameters & parameters);
26 
27  virtual std::string modelName() const override;
28 
29  virtual bool useCustomReturnMap() const override;
30 
31  virtual bool useCustomCTO() const override;
32 
33  virtual bool returnMap(const RankTwoTensor & trial_stress,
34  Real intnl_old,
35  const RankFourTensor & E_ijkl,
36  Real ep_plastic_tolerance,
37  RankTwoTensor & returned_stress,
38  Real & returned_intnl,
39  std::vector<Real> & dpm,
40  RankTwoTensor & delta_dp,
41  std::vector<Real> & yf,
42  bool & trial_stress_inadmissible) const override;
43 
44  virtual RankFourTensor
45  consistentTangentOperator(const RankTwoTensor & trial_stress,
46  Real intnl_old,
47  const RankTwoTensor & stress,
48  Real intnl,
49  const RankFourTensor & E_ijkl,
50  const std::vector<Real> & cumulative_pm) const override;
51 
52 protected:
53  virtual Real yieldFunction(const RankTwoTensor & stress, Real intnl) const override;
54 
55  virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor & stress,
56  Real intnl) const override;
57 
58  Real dyieldFunction_dintnl(const RankTwoTensor & stress, Real intnl) const override;
59 
60  virtual RankTwoTensor flowPotential(const RankTwoTensor & stress, Real intnl) const override;
61 
62  virtual RankFourTensor dflowPotential_dstress(const RankTwoTensor & stress,
63  Real intnl) const override;
64 
65  RankTwoTensor dflowPotential_dintnl(const RankTwoTensor & stress, Real intnl) const override;
66 
72  virtual Real yieldStrength(Real intnl) const;
73 
75  virtual Real dyieldStrength(Real intnl) const;
76 
77 private:
80 
82  const unsigned _max_iters;
83 
86 
88  const bool _use_custom_cto;
89 };
90 
91 #endif // TENSORMECHANICSPLASTICJ2_H
virtual bool returnMap(const RankTwoTensor &trial_stress, Real intnl_old, const RankFourTensor &E_ijkl, Real ep_plastic_tolerance, RankTwoTensor &returned_stress, Real &returned_intnl, std::vector< Real > &dpm, RankTwoTensor &delta_dp, std::vector< Real > &yf, bool &trial_stress_inadmissible) const override
Performs a custom return-map.
InputParameters validParams< TensorMechanicsPlasticJ2 >()
virtual RankFourTensor consistentTangentOperator(const RankTwoTensor &trial_stress, Real intnl_old, const RankTwoTensor &stress, Real intnl, const RankFourTensor &E_ijkl, const std::vector< Real > &cumulative_pm) const override
Calculates a custom consistent tangent operator.
virtual RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
The flow potential.
Real dyieldFunction_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to the internal parameter.
virtual bool useCustomReturnMap() const override
Returns false. You will want to override this in your derived class if you write a custom returnMap f...
TensorMechanicsPlasticJ2(const InputParameters &parameters)
const unsigned _max_iters
max iters for custom return map loop
virtual Real dyieldStrength(Real intnl) const
d(yieldStrength)/d(intnl)
J2 plasticity, associative, with hardning.
virtual Real yieldStrength(Real intnl) const
YieldStrength.
virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
RankTwoTensor dflowPotential_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to the internal parameter.
const bool _use_custom_cto
Whether to use the custom consistent tangent operator calculation.
virtual std::string modelName() const override
const bool _use_custom_returnMap
Whether to use the custom return-map algorithm.
virtual Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models...
const TensorMechanicsHardeningModel & _strength
yield strength, from user input
Plastic Model base class The virtual functions written below must be over-ridden in derived classes t...
virtual RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
virtual bool useCustomCTO() const override
Returns false. You will want to override this in your derived class if you write a custom consistent ...