www.mooseframework.org
TensorMechanicsPlasticDruckerPragerHyperbolic.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 
27 {
28 public:
29  static InputParameters validParams();
30 
31  TensorMechanicsPlasticDruckerPragerHyperbolic(const InputParameters & parameters);
32 
33  virtual std::string modelName() const override;
34 
35  virtual bool useCustomReturnMap() const override;
36 
37  virtual bool useCustomCTO() const override;
38 
39 protected:
40  Real yieldFunction(const RankTwoTensor & stress, Real intnl) const override;
41 
42  RankFourTensor dflowPotential_dstress(const RankTwoTensor & stress, Real intnl) const override;
43 
45  virtual RankTwoTensor df_dsig(const RankTwoTensor & stress, Real bbb) const override;
46 
47  virtual bool returnMap(const RankTwoTensor & trial_stress,
48  Real intnl_old,
49  const RankFourTensor & E_ijkl,
50  Real ep_plastic_tolerance,
51  RankTwoTensor & returned_stress,
52  Real & returned_intnl,
53  std::vector<Real> & dpm,
54  RankTwoTensor & delta_dp,
55  std::vector<Real> & yf,
56  bool & trial_stress_inadmissible) const override;
57 
58  virtual RankFourTensor
59  consistentTangentOperator(const RankTwoTensor & trial_stress,
60  Real intnl_old,
61  const RankTwoTensor & stress,
62  Real intnl,
63  const RankFourTensor & E_ijkl,
64  const std::vector<Real> & cumulative_pm) const override;
65 
66 private:
68  const Real _smoother2;
69 
72 
74  const bool _use_custom_cto;
75 
77  const unsigned _max_iters;
78 };
TensorMechanicsPlasticDruckerPragerHyperbolic::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: TensorMechanicsPlasticDruckerPragerHyperbolic.C:270
TensorMechanicsPlasticDruckerPragerHyperbolic::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: TensorMechanicsPlasticDruckerPragerHyperbolic.C:96
TensorMechanicsPlasticDruckerPrager.h
TensorMechanicsPlasticDruckerPrager
Rate-independent non-associative Drucker Prager with hardening/softening.
Definition: TensorMechanicsPlasticDruckerPrager.h:27
TensorMechanicsPlasticDruckerPragerHyperbolic::_use_custom_returnMap
const bool _use_custom_returnMap
whether to use the custom returnMap function
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.h:71
TensorMechanicsPlasticDruckerPragerHyperbolic::_use_custom_cto
const bool _use_custom_cto
Whether to use the custom consistent tangent operator calculation.
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.h:74
validParams< TensorMechanicsPlasticDruckerPragerHyperbolic >
InputParameters validParams< TensorMechanicsPlasticDruckerPragerHyperbolic >()
TensorMechanicsPlasticDruckerPragerHyperbolic::_max_iters
const unsigned _max_iters
max iters for custom return map loop
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.h:77
TensorMechanicsPlasticDruckerPragerHyperbolic::yieldFunction
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models.
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.C:62
TensorMechanicsPlasticDruckerPragerHyperbolic
Rate-independent non-associative Drucker Prager with hardening/softening.
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.h:26
TensorMechanicsPlasticDruckerPragerHyperbolic::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: TensorMechanicsPlasticDruckerPragerHyperbolic.C:264
TensorMechanicsPlasticDruckerPragerHyperbolic::validParams
static InputParameters validParams()
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.C:19
TensorMechanicsPlasticDruckerPragerHyperbolic::_smoother2
const Real _smoother2
smoothing parameter for the cone's tip
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.h:68
TensorMechanicsPlasticDruckerPragerHyperbolic::modelName
virtual std::string modelName() const override
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.C:90
RankFourTensorTempl< Real >
TensorMechanicsPlasticDruckerPragerHyperbolic::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: TensorMechanicsPlasticDruckerPragerHyperbolic.C:201
TensorMechanicsPlasticDruckerPragerHyperbolic::TensorMechanicsPlasticDruckerPragerHyperbolic
TensorMechanicsPlasticDruckerPragerHyperbolic(const InputParameters &parameters)
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.C:51
TensorMechanicsPlasticDruckerPragerHyperbolic::df_dsig
virtual RankTwoTensor df_dsig(const RankTwoTensor &stress, Real bbb) const override
Function that's used in dyieldFunction_dstress and flowPotential.
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.C:72
RankTwoTensorTempl< Real >
TensorMechanicsPlasticDruckerPragerHyperbolic::dflowPotential_dstress
RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
Definition: TensorMechanicsPlasticDruckerPragerHyperbolic.C:79
TensorMechanicsHardeningModel.h