https://mooseframework.inl.gov
TensileStressUpdate_PartiallyImplemented.C
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 
11 
13 
16 {
18  params.addClassDescription(
19  "Physically, this is just TensileStressUpdate, but the code uses "
20  "MultiParameterPlasticityStressUpdate::consistentTangentOperatorV instead of the optimised "
21  "algorithm found in TensileStressUpdate. The purpose is to show that the "
22  "MultiParameterPlasticityStressUpdate algorithm is correct, although slow.");
23  return params;
24 }
25 
27  const InputParameters & parameters)
28  : TensileStressUpdate(parameters)
29 {
30 }
31 
32 void
34  const RankTwoTensor & stress_trial,
35  const std::vector<Real> & trial_stress_params,
36  const RankTwoTensor & stress,
37  const std::vector<Real> & stress_params,
38  Real gaE,
39  const yieldAndFlow & smoothed_q,
40  const RankFourTensor & elasticity_tensor,
41  bool compute_full_tangent_operator,
42  const std::vector<std::vector<Real>> & dvar_dtrial,
43  RankFourTensor & cto)
44 {
46  trial_stress_params,
47  stress,
48  stress_params,
49  gaE,
50  smoothed_q,
52  compute_full_tangent_operator,
53  dvar_dtrial,
54  cto);
55 }
Struct designed to hold info about a single yield function and its derivatives, as well as the flow d...
TensileStressUpdate implements rate-independent associative tensile failure ("Rankine" plasticity) wi...
virtual void consistentTangentOperatorV(const RankTwoTensor &stress_trial, const std::vector< Real > &trial_stress_params, const RankTwoTensor &stress, const std::vector< Real > &stress_params, Real gaE, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, bool compute_full_tangent_operator, const std::vector< std::vector< Real >> &dvar_dtrial, RankFourTensor &cto)
Calculates the consistent tangent operator.
Just like TensileStressUpdate, but uses the base class, MultiParameterPlasticityStressUpdate::consist...
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)
TensileStressUpdate_PartiallyImplemented(const InputParameters &parameters)
registerMooseObject("SolidMechanicsTestApp", TensileStressUpdate_PartiallyImplemented)
static InputParameters validParams()
virtual void consistentTangentOperatorV(const RankTwoTensor &stress_trial, const std::vector< Real > &trial_stress_params, const RankTwoTensor &stress, const std::vector< Real > &stress_params, Real gaE, const yieldAndFlow &smoothed_q, const RankFourTensor &Eijkl, bool compute_full_tangent_operator, const std::vector< std::vector< Real >> &dvar_dtrial, RankFourTensor &cto) override
Calculates the consistent tangent operator.
void addClassDescription(const std::string &doc_string)