35 virtual std::string
modelName()
const override;
112 virtual Real
cohesion(
const Real internal_param)
const;
115 virtual Real
dcohesion(
const Real internal_param)
const;
118 virtual Real
phi(
const Real internal_param)
const;
121 virtual Real
dphi(
const Real internal_param)
const;
124 virtual Real
psi(
const Real internal_param)
const;
127 virtual Real
dpsi(
const Real internal_param)
const;
139 void abbo(
const Real sin3lode,
const Real sin_angle, Real & aaa, Real & bbb, Real & ccc)
const;
151 dabbo(
const Real sin3lode,
const Real sin_angle, Real & daaa, Real & dbbb, Real & dccc)
const;
const InputParameters & parameters() const
Hardening Model base class.
Plastic Model base class The virtual functions written below must be over-ridden in derived classes t...
Mohr-Coulomb plasticity, nonassociative with hardening/softening.
RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
Real _cap_start
smoothing parameter dictating when the 'cap' will start - see doco for _tip_scheme
Real _tt
edge smoothing parameter, in radians
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models.
virtual Real smooth(const RankTwoTensor &stress) const
returns the 'a' parameter - see doco for _tip_scheme
virtual Real dphi(const Real internal_param) const
d(phi)/d(internal_param);
virtual Real dcohesion(const Real internal_param) const
d(cohesion)/d(internal_param);
RankTwoTensor dflowPotential_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to the internal parameter.
Real _small_smoother2
Square of tip smoothing parameter to smooth the cone at mean_stress = T.
const SolidMechanicsHardeningModel & _phi
Hardening model for phi.
virtual Real dsmooth(const RankTwoTensor &stress) const
returns the da/dstress_mean - see doco for _tip_scheme
Real _cap_rate
dictates how quickly the 'cap' degenerates to a hemisphere - see doco for _tip_scheme
virtual Real dpsi(const Real internal_param) const
d(psi)/d(internal_param);
Real _lode_cutoff
if secondInvariant < _lode_cutoff then set Lode angle to zero. This is to guard against precision-los...
void dabbo(const Real sin3lode, const Real sin_angle, Real &daaa, Real &dbbb, Real &dccc) const
Computes derivatives of Abbo et al's A, B and C parameters wrt sin_angle.
RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
virtual Real psi(const Real internal_param) const
dilation angle as a function of internal parameter
const SolidMechanicsHardeningModel & _cohesion
Hardening model for cohesion.
RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
The flow potential.
Real _sin3tt
sin(3*_tt) - useful for making comparisons with Lode angle
const SolidMechanicsHardeningModel & _psi
Hardening model for psi.
void abbo(const Real sin3lode, const Real sin_angle, Real &aaa, Real &bbb, Real &ccc) const
Computes Abbo et al's A, B and C parameters.
static InputParameters validParams()
RankTwoTensor df_dsig(const RankTwoTensor &stress, const Real sin_angle) const
d(yieldFunction)/d(stress), but with the ability to put friction or dilation angle into the result
MooseEnum _tip_scheme
The yield function is modified to f = s_m*sinphi + sqrt(a + s_bar^2 K^2) - C*cosphi where "a" depends...
virtual Real cohesion(const Real internal_param) const
cohesion as a function of internal parameter
virtual Real phi(const Real internal_param) const
friction angle as a function of internal parameter
virtual Real d2smooth(const RankTwoTensor &stress) const
returns the d^2a/dstress_mean^2 - see doco for _tip_scheme
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