www.mooseframework.org
TensorMechanicsPlasticJ2.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 
14 
16 
17 template <>
19 
25 {
26 public:
27  static InputParameters validParams();
28 
29  TensorMechanicsPlasticJ2(const InputParameters & parameters);
30 
31  virtual std::string modelName() const override;
32 
33  virtual bool useCustomReturnMap() const override;
34 
35  virtual bool useCustomCTO() const override;
36 
37  virtual bool returnMap(const RankTwoTensor & trial_stress,
38  Real intnl_old,
39  const RankFourTensor & E_ijkl,
40  Real ep_plastic_tolerance,
41  RankTwoTensor & returned_stress,
42  Real & returned_intnl,
43  std::vector<Real> & dpm,
44  RankTwoTensor & delta_dp,
45  std::vector<Real> & yf,
46  bool & trial_stress_inadmissible) const override;
47 
48  virtual RankFourTensor
49  consistentTangentOperator(const RankTwoTensor & trial_stress,
50  Real intnl_old,
51  const RankTwoTensor & stress,
52  Real intnl,
53  const RankFourTensor & E_ijkl,
54  const std::vector<Real> & cumulative_pm) const override;
55 
56 protected:
57  virtual Real yieldFunction(const RankTwoTensor & stress, Real intnl) const override;
58 
59  virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor & stress,
60  Real intnl) const override;
61 
62  Real dyieldFunction_dintnl(const RankTwoTensor & stress, Real intnl) const override;
63 
64  virtual RankTwoTensor flowPotential(const RankTwoTensor & stress, Real intnl) const override;
65 
67  Real intnl) const override;
68 
69  RankTwoTensor dflowPotential_dintnl(const RankTwoTensor & stress, Real intnl) const override;
70 
76  virtual Real yieldStrength(Real intnl) const;
77 
79  virtual Real dyieldStrength(Real intnl) const;
80 
81 private:
84 
86  const unsigned _max_iters;
87 
90 
92  const bool _use_custom_cto;
93 };
validParams< TensorMechanicsPlasticJ2 >
InputParameters validParams< TensorMechanicsPlasticJ2 >()
TensorMechanicsPlasticJ2::dyieldStrength
virtual Real dyieldStrength(Real intnl) const
d(yieldStrength)/d(intnl)
Definition: TensorMechanicsPlasticJ2.C:110
TensorMechanicsPlasticJ2::TensorMechanicsPlasticJ2
TensorMechanicsPlasticJ2(const InputParameters &parameters)
Definition: TensorMechanicsPlasticJ2.C:41
TensorMechanicsPlasticJ2::yieldStrength
virtual Real yieldStrength(Real intnl) const
YieldStrength.
Definition: TensorMechanicsPlasticJ2.C:104
TensorMechanicsPlasticJ2
J2 plasticity, associative, with hardning.
Definition: TensorMechanicsPlasticJ2.h:24
TensorMechanicsPlasticJ2::dyieldFunction_dstress
virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
Definition: TensorMechanicsPlasticJ2.C:57
TensorMechanicsPlasticJ2::yieldFunction
virtual Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models.
Definition: TensorMechanicsPlasticJ2.C:51
TensorMechanicsPlasticJ2::modelName
virtual std::string modelName() const override
Definition: TensorMechanicsPlasticJ2.C:116
TensorMechanicsPlasticJ2::dyieldFunction_dintnl
Real dyieldFunction_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to the internal parameter.
Definition: TensorMechanicsPlasticJ2.C:67
TensorMechanicsPlasticModel.h
TensorMechanicsPlasticJ2::consistentTangentOperator
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.
Definition: TensorMechanicsPlasticJ2.C:193
TensorMechanicsPlasticJ2::validParams
static InputParameters validParams()
Definition: TensorMechanicsPlasticJ2.C:18
TensorMechanicsPlasticJ2::dflowPotential_dintnl
RankTwoTensor dflowPotential_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to the internal parameter.
Definition: TensorMechanicsPlasticJ2.C:97
TensorMechanicsPlasticJ2::dflowPotential_dstress
virtual RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
Definition: TensorMechanicsPlasticJ2.C:79
TensorMechanicsPlasticJ2::useCustomReturnMap
virtual bool useCustomReturnMap() const override
Returns false. You will want to override this in your derived class if you write a custom returnMap f...
Definition: TensorMechanicsPlasticJ2.C:217
TensorMechanicsPlasticJ2::useCustomCTO
virtual bool useCustomCTO() const override
Returns false. You will want to override this in your derived class if you write a custom consistent ...
Definition: TensorMechanicsPlasticJ2.C:223
TensorMechanicsPlasticJ2::_strength
const TensorMechanicsHardeningModel & _strength
yield strength, from user input
Definition: TensorMechanicsPlasticJ2.h:83
TensorMechanicsPlasticJ2::_use_custom_cto
const bool _use_custom_cto
Whether to use the custom consistent tangent operator calculation.
Definition: TensorMechanicsPlasticJ2.h:92
RankFourTensorTempl< Real >
TensorMechanicsPlasticModel
Plastic Model base class The virtual functions written below must be over-ridden in derived classes t...
Definition: TensorMechanicsPlasticModel.h:42
TensorMechanicsPlasticJ2::_max_iters
const unsigned _max_iters
max iters for custom return map loop
Definition: TensorMechanicsPlasticJ2.h:86
TensorMechanicsPlasticJ2::returnMap
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.
Definition: TensorMechanicsPlasticJ2.C:122
RankTwoTensorTempl< Real >
TensorMechanicsPlasticJ2::_use_custom_returnMap
const bool _use_custom_returnMap
Whether to use the custom return-map algorithm.
Definition: TensorMechanicsPlasticJ2.h:89
TensorMechanicsPlasticJ2::flowPotential
virtual RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
The flow potential.
Definition: TensorMechanicsPlasticJ2.C:73
TensorMechanicsHardeningModel.h
TensorMechanicsHardeningModel
Hardening Model base class.
Definition: TensorMechanicsHardeningModel.h:27