www.mooseframework.org
TensorMechanicsPlasticDruckerPragerHyperbolic.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 TENSORMECHANICSPLASTICDRUCKERPRAGERHYPERBOLIC_H
8 #define TENSORMECHANICSPLASTICDRUCKERPRAGERHYPERBOLIC_H
9 
12 
14 
15 template <>
17 
25 {
26 public:
27  TensorMechanicsPlasticDruckerPragerHyperbolic(const InputParameters & parameters);
28 
29  virtual std::string modelName() const override;
30 
31  virtual bool useCustomReturnMap() const override;
32 
33  virtual bool useCustomCTO() const override;
34 
35 protected:
36  Real yieldFunction(const RankTwoTensor & stress, Real intnl) const override;
37 
38  RankFourTensor dflowPotential_dstress(const RankTwoTensor & stress, Real intnl) const override;
39 
41  virtual RankTwoTensor df_dsig(const RankTwoTensor & stress, Real bbb) const override;
42 
43  virtual bool returnMap(const RankTwoTensor & trial_stress,
44  Real intnl_old,
45  const RankFourTensor & E_ijkl,
46  Real ep_plastic_tolerance,
47  RankTwoTensor & returned_stress,
48  Real & returned_intnl,
49  std::vector<Real> & dpm,
50  RankTwoTensor & delta_dp,
51  std::vector<Real> & yf,
52  bool & trial_stress_inadmissible) const override;
53 
54  virtual RankFourTensor
55  consistentTangentOperator(const RankTwoTensor & trial_stress,
56  Real intnl_old,
57  const RankTwoTensor & stress,
58  Real intnl,
59  const RankFourTensor & E_ijkl,
60  const std::vector<Real> & cumulative_pm) const override;
61 
62 private:
64  const Real _smoother2;
65 
68 
70  const bool _use_custom_cto;
71 
73  const unsigned _max_iters;
74 };
75 
76 #endif // TENSORMECHANICSPLASTICDRUCKERPRAGERHYPERBOLIC_H
const Real _smoother2
smoothing parameter for the cone&#39;s tip
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 bool useCustomCTO() const override
Returns false. You will want to override this in your derived class if you write a custom consistent ...
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models...
RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
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.
virtual RankTwoTensor df_dsig(const RankTwoTensor &stress, Real bbb) const override
Function that&#39;s used in dyieldFunction_dstress and flowPotential.
Rate-independent non-associative Drucker Prager with hardening/softening.
const unsigned _max_iters
max iters for custom return map loop
const bool _use_custom_cto
Whether to use the custom consistent tangent operator calculation.
Rate-independent non-associative Drucker Prager with hardening/softening.
virtual bool useCustomReturnMap() const override
Returns false. You will want to override this in your derived class if you write a custom returnMap f...
InputParameters validParams< TensorMechanicsPlasticDruckerPragerHyperbolic >()
const bool _use_custom_returnMap
whether to use the custom returnMap function