www.mooseframework.org
ComputeIncrementalStrainBase.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 #include "MooseMesh.h"
12 
14 
15 InputParameters
17 {
18  InputParameters params = ComputeStrainBase::validParams();
19  return params;
20 }
21 
23  : ComputeStrainBase(parameters),
24  _grad_disp_old(3),
25  _strain_rate(declareProperty<RankTwoTensor>(_base_name + "strain_rate")),
26  _strain_increment(declareProperty<RankTwoTensor>(_base_name + "strain_increment")),
27  _rotation_increment(declareProperty<RankTwoTensor>(_base_name + "rotation_increment")),
28  _deformation_gradient(declareProperty<RankTwoTensor>(_base_name + "deformation_gradient")),
29  _mechanical_strain_old(getMaterialPropertyOld<RankTwoTensor>(_base_name + "mechanical_strain")),
30  _total_strain_old(getMaterialPropertyOld<RankTwoTensor>(_base_name + "total_strain")),
31  _eigenstrains_old(_eigenstrain_names.size())
32 {
33  for (unsigned int i = 0; i < _eigenstrains_old.size(); ++i)
34  _eigenstrains_old[i] = &getMaterialPropertyOld<RankTwoTensor>(_eigenstrain_names[i]);
35 }
36 
37 void
39 {
41  for (unsigned int i = 0; i < 3; ++i)
42  {
43  if (_fe_problem.isTransient() && i < _ndisp)
44  _grad_disp_old[i] = &coupledGradientOld("displacements", i);
45  else
46  _grad_disp_old[i] = &_grad_zero;
47  }
48 }
49 
50 void
52 {
53  _mechanical_strain[_qp].zero();
54  _total_strain[_qp].zero();
55  _deformation_gradient[_qp].setToIdentity();
56 }
57 
58 void
60 {
61  for (unsigned int i = 0; i < _eigenstrains.size(); ++i)
62  {
63  strain -= (*_eigenstrains[i])[_qp];
64  strain += (*_eigenstrains_old[i])[_qp];
65  }
66 }
ComputeIncrementalStrainBase::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ComputeIncrementalStrainBase.C:51
ComputeIncrementalStrainBase::subtractEigenstrainIncrementFromStrain
void subtractEigenstrainIncrementFromStrain(RankTwoTensor &strain)
Definition: ComputeIncrementalStrainBase.C:59
ComputeIncrementalStrainBase::ComputeIncrementalStrainBase
ComputeIncrementalStrainBase(const InputParameters &parameters)
Definition: ComputeIncrementalStrainBase.C:22
ComputeStrainBase
ComputeStrainBase is the base class for strain tensors.
Definition: ComputeStrainBase.h:26
ComputeIncrementalStrainBase::_grad_disp_old
std::vector< const VariableGradient * > _grad_disp_old
Definition: ComputeIncrementalStrainBase.h:36
ComputeIncrementalStrainBase::_eigenstrains_old
std::vector< const MaterialProperty< RankTwoTensor > * > _eigenstrains_old
Definition: ComputeIncrementalStrainBase.h:47
ComputeStrainBase::_ndisp
unsigned int _ndisp
Coupled displacement variables.
Definition: ComputeStrainBase.h:40
ComputeStrainBase::_mechanical_strain
MaterialProperty< RankTwoTensor > & _mechanical_strain
Definition: ComputeStrainBase.h:46
ComputeStrainBase::initialSetup
void initialSetup() override
Definition: ComputeStrainBase.C:75
ComputeIncrementalStrainBase::_deformation_gradient
MaterialProperty< RankTwoTensor > & _deformation_gradient
Definition: ComputeIncrementalStrainBase.h:42
ComputeIncrementalStrainBase::initialSetup
void initialSetup() override
Definition: ComputeIncrementalStrainBase.C:38
ComputeIncrementalStrainBase
ComputeIncrementalStrainBase is the base class for strain tensors using incremental formulations.
Definition: ComputeIncrementalStrainBase.h:22
ComputeIncrementalStrainBase.h
ComputeStrainBase::validParams
static InputParameters validParams()
Definition: ComputeStrainBase.C:17
ComputeStrainBase::_eigenstrain_names
std::vector< MaterialPropertyName > _eigenstrain_names
Definition: ComputeStrainBase.h:50
ComputeStrainBase::_eigenstrains
std::vector< const MaterialProperty< RankTwoTensor > * > _eigenstrains
Definition: ComputeStrainBase.h:51
RankTwoTensorTempl< Real >
ComputeStrainBase::_total_strain
MaterialProperty< RankTwoTensor > & _total_strain
Definition: ComputeStrainBase.h:48
defineLegacyParams
defineLegacyParams(ComputeIncrementalStrainBase)
ComputeIncrementalStrainBase::validParams
static InputParameters validParams()
Definition: ComputeIncrementalStrainBase.C:16