https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SolidMechanicsPlasticJ2.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
14
20{
21public:
23
25
26 virtual std::string modelName() const override;
27
28 virtual bool useCustomReturnMap() const override;
29
30 virtual bool useCustomCTO() const override;
31
32 virtual bool returnMap(const RankTwoTensor & trial_stress,
33 Real intnl_old,
34 const RankFourTensor & E_ijkl,
35 Real ep_plastic_tolerance,
36 RankTwoTensor & returned_stress,
37 Real & returned_intnl,
38 std::vector<Real> & dpm,
39 RankTwoTensor & delta_dp,
40 std::vector<Real> & yf,
41 bool & trial_stress_inadmissible) const override;
42
43 virtual RankFourTensor
44 consistentTangentOperator(const RankTwoTensor & trial_stress,
45 Real intnl_old,
46 const RankTwoTensor & stress,
47 Real intnl,
48 const RankFourTensor & E_ijkl,
49 const std::vector<Real> & cumulative_pm) const override;
50
51protected:
52 virtual Real yieldFunction(const RankTwoTensor & stress, Real intnl) const override;
53
55 Real intnl) const override;
56
57 Real dyieldFunction_dintnl(const RankTwoTensor & stress, Real intnl) const override;
58
59 virtual RankTwoTensor flowPotential(const RankTwoTensor & stress, Real intnl) const override;
60
62 Real intnl) const override;
63
64 RankTwoTensor dflowPotential_dintnl(const RankTwoTensor & stress, Real intnl) const override;
65
71 virtual Real yieldStrength(Real intnl) const;
72
74 virtual Real dyieldStrength(Real intnl) const;
75
76private:
79
81 const unsigned _max_iters;
82
85
87 const bool _use_custom_cto;
88};
const InputParameters & parameters() const
J2 plasticity, associative, with hardning.
RankTwoTensor dflowPotential_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to the internal parameter.
virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
virtual bool useCustomReturnMap() const override
Returns false. You will want to override this in your derived class if you write a custom returnMap f...
const bool _use_custom_returnMap
Whether to use the custom return-map algorithm.
const bool _use_custom_cto
Whether to use the custom consistent tangent operator calculation.
virtual RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
virtual Real dyieldStrength(Real intnl) const
d(yieldStrength)/d(intnl)
const SolidMechanicsHardeningModel & _strength
yield strength, from user input
const unsigned _max_iters
max iters for custom return map loop
virtual bool useCustomCTO() const override
Returns false. You will want to override this in your derived class if you write a custom consistent ...
Real dyieldFunction_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to the internal parameter.
virtual std::string modelName() const override
virtual Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models.
virtual RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
The flow potential.
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 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 Real yieldStrength(Real intnl) const
YieldStrength.
static InputParameters validParams()
Plastic Model base class The virtual functions written below must be over-ridden in derived classes t...