www.mooseframework.org
ComputeEigenstrainBeamFromVariable.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 InputParameters
18 {
19  InputParameters params = ComputeEigenstrainBeamBase::validParams();
20  params.addClassDescription("Computes an eigenstrain from a set of variables");
21  params.addCoupledVar("displacement_eigenstrain_variables",
22  "A list of variable names describing the "
23  "displacement eigenstrain. If provided, there must be 3 "
24  "entries, corresponding to the axial and shear "
25  "eigenstrains in the global coordinate system.");
26  params.addCoupledVar("rotational_eigenstrain_variables",
27  "A list of variable names describing the rotational "
28  "eigenstrain. If provided, there must be 3 entries, "
29  "corresponding to the rotational eigenstrain in the "
30  "global coordinate system.");
31  return params;
32 }
33 
35  const InputParameters & parameters)
36  : ComputeEigenstrainBeamBase(parameters),
37  _ndisp(coupledComponents("displacement_eigenstrain_variables")),
38  _nrot(coupledComponents("rotational_eigenstrain_variables")),
39  _disp(3),
40  _rot(3)
41 {
42  if ((_ndisp != 3 && _ndisp != 0) || (_nrot != 3 && _nrot != 0))
43  mooseError("ComputeEigenstrainBeamFromVariable: If the displacement or rotational eigenstrains "
44  "are provided, it should contain 3 variables corresponding to the three "
45  "components in the global coordinate system.");
46 
47  // fetch coupled variables
48  if (_ndisp > 0)
49  {
50  for (unsigned int i = 0; i < _ndisp; ++i)
51  _disp[i] = &coupledValue("displacement_eigenstrain_variables", i);
52  }
53  else
54  {
55  for (unsigned int i = 0; i < 3; ++i)
56  _disp[i] = &_zero;
57  }
58 
59  if (_nrot > 0)
60  {
61  for (unsigned int i = 0; i < _nrot; ++i)
62  _rot[i] = &coupledValue("rotational_eigenstrain_variables", i);
63  }
64  else
65  {
66  for (unsigned int i = 0; i < 3; ++i)
67  _rot[i] = &_zero;
68  }
69 }
70 
71 void
73 {
74  for (unsigned int i = 0; i < 3; ++i)
75  {
76  _disp_eigenstrain[_qp](i) = (*_disp[i])[_qp];
77  _rot_eigenstrain[_qp](i) = (*_rot[i])[_qp];
78  }
79 }
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputeEigenstrainBeamFromVariable)
ComputeEigenstrainBeamFromVariable::_nrot
const unsigned int _nrot
Number of rotational eigenstrain variables.
Definition: ComputeEigenstrainBeamFromVariable.h:37
ComputeEigenstrainBeamFromVariable::_ndisp
const unsigned int _ndisp
Number of displacement eigenstrain variables.
Definition: ComputeEigenstrainBeamFromVariable.h:34
ComputeEigenstrainBeamFromVariable::ComputeEigenstrainBeamFromVariable
ComputeEigenstrainBeamFromVariable(const InputParameters &parameters)
Definition: ComputeEigenstrainBeamFromVariable.C:34
ComputeEigenstrainBeamBase
ComputeEigenstrainBeamBase is the base class for beam eigenstrain vectors.
Definition: ComputeEigenstrainBeamBase.h:22
ComputeEigenstrainBeamBase::_rot_eigenstrain
MaterialProperty< RealVectorValue > & _rot_eigenstrain
Stores the current rotational eigenstrain.
Definition: ComputeEigenstrainBeamBase.h:43
ComputeEigenstrainBeamFromVariable.h
ComputeEigenstrainBeamFromVariable::validParams
static InputParameters validParams()
Definition: ComputeEigenstrainBeamFromVariable.C:17
ComputeEigenstrainBeamFromVariable::computeQpEigenstrain
virtual void computeQpEigenstrain() override
Compute the eigenstrain and store in _disp_eigenstrain and _rot_eigenstrain.
Definition: ComputeEigenstrainBeamFromVariable.C:72
ComputeEigenstrainBeamFromVariable::_rot
std::vector< const VariableValue * > _rot
Rotational eigenstrain variable values.
Definition: ComputeEigenstrainBeamFromVariable.h:43
ComputeEigenstrainBeamBase::validParams
static InputParameters validParams()
Definition: ComputeEigenstrainBeamBase.C:15
ComputeEigenstrainBeamFromVariable::_disp
std::vector< const VariableValue * > _disp
Displacemenet eigenstrain variable values.
Definition: ComputeEigenstrainBeamFromVariable.h:40
ComputeEigenstrainBeamFromVariable
ComputeEigenstrainBeamFromVariable computes an eigenstrain from displacement and rotational eigenstra...
Definition: ComputeEigenstrainBeamFromVariable.h:23
ComputeEigenstrainBeamBase::_disp_eigenstrain
MaterialProperty< RealVectorValue > & _disp_eigenstrain
Stores the current displacement eigenstrain.
Definition: ComputeEigenstrainBeamBase.h:40
defineLegacyParams
defineLegacyParams(ComputeEigenstrainBeamFromVariable)