www.mooseframework.org
ADComputeMultiplePorousInelasticStress.C
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 
11 
12 #include "RankTwoTensor.h"
13 
15 
17 
18 template <ComputeStage compute_stage>
19 InputParameters
21 {
23  params.addClassDescription(
24  "Compute state (stress and internal parameters such as plastic "
25  "strains and internal parameters) using an iterative process. A porosity material property "
26  "is defined and is calculated from the trace of inelastic strain increment.");
27 
28  params.addParam<MaterialPropertyName>(
29  "porosity_name", "porosity", "Name of porosity material property");
30  params.addRequiredRangeCheckedParam<Real>(
31  "initial_porosity", "initial_porosity>0.0 & initial_porosity<1.0", "Initial porosity");
32  return params;
33 }
34 
35 template <ComputeStage compute_stage>
37  const InputParameters & parameters)
38  : ADComputeMultipleInelasticStress<compute_stage>(parameters),
39  _porosity(declareADProperty<Real>(getParam<MaterialPropertyName>("porosity_name"))),
40  _porosity_old(getMaterialPropertyOld<Real>(getParam<MaterialPropertyName>("porosity_name"))),
41  _initial_porosity(getParam<Real>("initial_porosity"))
42 {
43 }
44 
45 template <ComputeStage compute_stage>
46 void
48 {
50 
51  _porosity[_qp] = _initial_porosity;
52 }
53 
54 template <ComputeStage compute_stage>
55 void
57 {
59 
60  _porosity[_qp] =
61  (1.0 - _porosity_old[_qp]) * (_inelastic_strain[_qp] - _inelastic_strain_old[_qp]).trace() +
62  _porosity_old[_qp];
63 }
registerADMooseObject
registerADMooseObject("TensorMechanicsApp", ADComputeMultiplePorousInelasticStress)
ADComputeMultiplePorousInelasticStress::ADComputeMultiplePorousInelasticStress
ADComputeMultiplePorousInelasticStress(const InputParameters &parameters)
Definition: ADComputeMultiplePorousInelasticStress.C:36
ADComputeStressBase::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ADComputeStressBase.C:53
ADComputeMultipleInelasticStress::validParams
static InputParameters validParams()
Definition: ADComputeMultipleInelasticStress.C:20
ADComputeMultiplePorousInelasticStress::computeQpProperties
virtual void computeQpProperties() override
Definition: ADComputeMultiplePorousInelasticStress.C:56
ADComputeStressBase::computeQpProperties
virtual void computeQpProperties() override
Definition: ADComputeStressBase.C:61
ADComputeMultiplePorousInelasticStress::validParams
static InputParameters validParams()
Definition: ADComputeMultiplePorousInelasticStress.C:20
ADComputeMultiplePorousInelasticStress
Compute state (stress and internal parameters such as plastic strains and internal parameters) using ...
Definition: ADComputeMultiplePorousInelasticStress.h:15
defineADLegacyParams
defineADLegacyParams(ADComputeMultiplePorousInelasticStress)
ADComputeMultipleInelasticStress
ADComputeMultipleInelasticStress computes the stress and a decomposition of the strain into elastic a...
Definition: ADComputeMultipleInelasticStress.h:26
ADComputeMultiplePorousInelasticStress.h
ADComputeMultiplePorousInelasticStress::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ADComputeMultiplePorousInelasticStress.C:47