www.mooseframework.org
ADComputeLinearElasticStress.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 
13 
15 
16 template <ComputeStage compute_stage>
17 InputParameters
19 {
20  InputParameters params = ADComputeStressBase<compute_stage>::validParams();
21  params.addClassDescription("Compute stress using elasticity for small strains");
22  return params;
23 }
24 
25 template <ComputeStage compute_stage>
27  const InputParameters & parameters)
28  : ADComputeStressBase<compute_stage>(parameters),
29  _elasticity_tensor_name(_base_name + "elasticity_tensor"),
30  _elasticity_tensor(getADMaterialProperty<RankFourTensor>(_elasticity_tensor_name))
31 {
32 }
33 
34 template <ComputeStage compute_stage>
35 void
37 {
38  if (this->template hasBlockMaterialProperty<RankTwoTensor>(_base_name + "strain_increment"))
39  mooseError("This linear elastic stress calculation only works for small strains; use "
40  "ADComputeFiniteStrainElasticStress for simulations using incremental and finite "
41  "strains.");
42 }
43 
44 template <ComputeStage compute_stage>
45 void
47 {
48  // stress = C * e
49  _stress[_qp] = _elasticity_tensor[_qp] * _mechanical_strain[_qp];
50 
51  // Assign value for elastic strain, which is equal to the mechanical strain
52  _elastic_strain[_qp] = _mechanical_strain[_qp];
53 }
ADComputeLinearElasticStress::initialSetup
virtual void initialSetup() override
Definition: ADComputeLinearElasticStress.C:36
ADComputeLinearElasticStress
ADComputeLinearElasticStress computes the stress following linear elasticity theory (small strains)
Definition: ADComputeLinearElasticStress.h:20
defineADLegacyParams
defineADLegacyParams(ADComputeLinearElasticStress)
ADComputeLinearElasticStress::computeQpStress
virtual void computeQpStress() override
Definition: ADComputeLinearElasticStress.C:46
ADComputeLinearElasticStress::validParams
static InputParameters validParams()
Definition: ADComputeLinearElasticStress.C:18
ADComputeStressBase
ADComputeStressBase is the base class for stress tensors.
Definition: ADComputeStressBase.h:25
RankFourTensorTempl< Real >
ADComputeStressBase::validParams
static InputParameters validParams()
Definition: ADComputeStressBase.C:18
registerADMooseObject
registerADMooseObject("TensorMechanicsApp", ADComputeLinearElasticStress)
ADComputeLinearElasticStress.h
ADComputeLinearElasticStress::ADComputeLinearElasticStress
ADComputeLinearElasticStress(const InputParameters &parameters)
Definition: ADComputeLinearElasticStress.C:26