https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ComputeMultipleInelasticCosseratStress.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("Compute state (stress and other quantities such as plastic "
19 "strains and internal parameters) using an iterative process, as well "
20 "as Cosserat versions of these quantities. Only elasticity is "
21 "currently implemented for the Cosserat versions. "
22 "Combinations of creep models and plastic models may be used");
23 return params;
24}
25
27 const InputParameters & parameters)
29 _curvature(getMaterialProperty<RankTwoTensor>("curvature")),
30 _elastic_flexural_rigidity_tensor(
31 getMaterialProperty<RankFourTensor>("elastic_flexural_rigidity_tensor")),
32 _couple_stress(declareProperty<RankTwoTensor>("couple_stress")),
33 _couple_stress_old(getMaterialPropertyOld<RankTwoTensor>("couple_stress")),
34 _Jacobian_mult_couple(declareProperty<RankFourTensor>("couple_Jacobian_mult")),
35 _compliance(getMaterialProperty<RankFourTensor>(_base_name + "compliance_tensor"))
36{
37}
38
39void
45
46void
62
63void
76
77void
79 unsigned model_number,
80 RankTwoTensor & elastic_strain_increment,
81 RankTwoTensor & inelastic_strain_increment,
82 RankFourTensor & consistent_tangent_operator)
83{
84 const RankTwoTensor trial_stress = _stress[_qp];
85 const RankTwoTensor applied_strain_increment = elastic_strain_increment;
86
88 elastic_strain_increment,
89 inelastic_strain_increment,
90 consistent_tangent_operator);
91
92 inelastic_strain_increment = _compliance[_qp] * (trial_stress - _stress[_qp]);
93 elastic_strain_increment = applied_strain_increment - inelastic_strain_increment;
94}
registerMooseObject("SolidMechanicsApp", ComputeMultipleInelasticCosseratStress)
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point.
const MaterialProperty< RankTwoTensor > & _rotation_increment
Rotation increment material property.
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor material property.
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
ComputeMultipleInelasticStress computes the stress, the consistent tangent operator (or an approximat...
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point.
virtual void computeQpJacobianMult() override
Using _elasticity_tensor[_qp] and the consistent tangent operators, _consistent_tangent_operator[....
const MaterialProperty< RankFourTensor > & _elastic_flexural_rigidity_tensor
The Cosserat elastic flexural rigidity tensor.
virtual void computeAdmissibleState(unsigned model_number, RankTwoTensor &elastic_strain_increment, RankTwoTensor &inelastic_strain_increment, RankFourTensor &consistent_tangent_operator) override
The current Cosserat models do not know they might be using the "host" version of the elasticity tens...
MaterialProperty< RankTwoTensor > & _couple_stress
the Cosserat couple-stress
const MaterialProperty< RankTwoTensor > & _curvature
The Cosserat curvature strain.
const MaterialProperty< RankFourTensor > & _compliance
Inverse of the elasticity tensor.
MaterialProperty< RankFourTensor > & _Jacobian_mult_couple
derivative of couple-stress w.r.t. curvature
ComputeMultipleInelasticCosseratStress(const InputParameters &parameters)
const bool _perform_finite_strain_rotations
after updateQpState, rotate the stress, elastic_strain, inelastic_strain and Jacobian_mult using _rot...
virtual void computeAdmissibleState(unsigned model_number, RankTwoTensor &elastic_strain_increment, RankTwoTensor &inelastic_strain_increment, RankFourTensor &consistent_tangent_operator)
Given a trial stress (_stress[_qp]) and a strain increment (elastic_strain_increment) let the model_n...
enum ComputeMultipleInelasticStressBase::TangentOperatorEnum _tangent_operator_type
std::vector< RankFourTensor > _consistent_tangent_operator
the consistent tangent operators computed by each plastic model
ComputeMultipleInelasticStress computes the stress, the consistent tangent operator (or an approximat...
void addClassDescription(const std::string &doc_string)