www.mooseframework.org
ComputeAxisymmetric1DSmallStrain.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 = Compute1DSmallStrain::validParams();
20  params.addClassDescription("Compute a small strain in an Axisymmetric 1D problem");
21  params.addParam<UserObjectName>("subblock_index_provider",
22  "SubblockIndexProvider user object name");
23  params.addCoupledVar("scalar_out_of_plane_strain", "Scalar variable for axisymmetric 1D problem");
24  params.addCoupledVar("out_of_plane_strain", "Nonlinear variable for axisymmetric 1D problem");
25 
26  return params;
27 }
28 
30  const InputParameters & parameters)
31  : Compute1DSmallStrain(parameters),
32  _subblock_id_provider(isParamValid("subblock_index_provider")
33  ? &getUserObject<SubblockIndexProvider>("subblock_index_provider")
34  : nullptr),
35  _has_out_of_plane_strain(isParamValid("out_of_plane_strain")),
36  _out_of_plane_strain(_has_out_of_plane_strain ? coupledValue("out_of_plane_strain") : _zero),
37  _has_scalar_out_of_plane_strain(isParamValid("scalar_out_of_plane_strain")),
38  _nscalar_strains(coupledScalarComponents("scalar_out_of_plane_strain"))
39 {
41  mooseError("Must define only one of out_of_plane_strain or scalar_out_of_plane_strain");
42 
44  {
46  for (unsigned int i = 0; i < _nscalar_strains; ++i)
47  _scalar_out_of_plane_strain[i] = &coupledScalarValue("scalar_out_of_plane_strain", i);
48  }
49 }
50 
51 void
53 {
55 
56  if (getBlockCoordSystem() != Moose::COORD_RZ)
57  mooseError("The coordinate system must be set to RZ for Axisymmetric geometries.");
58 }
59 
60 Real
62 {
65  else
66  return _out_of_plane_strain[_qp];
67 }
68 
69 Real
71 {
72  if (!MooseUtils::absoluteFuzzyEqual(_q_point[_qp](0), 0.0))
73  return (*_disp[0])[_qp] / _q_point[_qp](0);
74  else
75  return 0.0;
76 }
ComputeAxisymmetric1DSmallStrain
ComputeAxisymmetric1DSmallStrain defines small strains in an Axisymmetric 1D problem.
Definition: ComputeAxisymmetric1DSmallStrain.h:24
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputeAxisymmetric1DSmallStrain)
SubblockIndexProvider
Abstract base class for user objects that provide an index for a given element that is independent of...
Definition: SubblockIndexProvider.h:24
ComputeStrainBase::_disp
std::vector< const VariableValue * > _disp
Definition: ComputeStrainBase.h:41
ComputeAxisymmetric1DSmallStrain::getCurrentSubblockIndex
unsigned int getCurrentSubblockIndex() const
gets its subblock index for current element
Definition: ComputeAxisymmetric1DSmallStrain.h:42
ComputeAxisymmetric1DSmallStrain::_scalar_out_of_plane_strain
std::vector< const VariableValue * > _scalar_out_of_plane_strain
Definition: ComputeAxisymmetric1DSmallStrain.h:54
ComputeAxisymmetric1DSmallStrain::_has_scalar_out_of_plane_strain
const bool _has_scalar_out_of_plane_strain
Definition: ComputeAxisymmetric1DSmallStrain.h:52
ComputeAxisymmetric1DSmallStrain::validParams
static InputParameters validParams()
Definition: ComputeAxisymmetric1DSmallStrain.C:17
ComputeAxisymmetric1DSmallStrain::initialSetup
void initialSetup() override
Definition: ComputeAxisymmetric1DSmallStrain.C:52
Compute1DSmallStrain
Compute1DSmallStrain defines a strain tensor, assuming small strains, in 1D problems,...
Definition: Compute1DSmallStrain.h:25
ComputeAxisymmetric1DSmallStrain::_has_out_of_plane_strain
const bool _has_out_of_plane_strain
Definition: ComputeAxisymmetric1DSmallStrain.h:49
defineLegacyParams
defineLegacyParams(ComputeAxisymmetric1DSmallStrain)
Compute1DSmallStrain::validParams
static InputParameters validParams()
Definition: Compute1DSmallStrain.C:17
ComputeStrainBase::initialSetup
void initialSetup() override
Definition: ComputeStrainBase.C:75
ComputeAxisymmetric1DSmallStrain::_out_of_plane_strain
const VariableValue & _out_of_plane_strain
Definition: ComputeAxisymmetric1DSmallStrain.h:50
ComputeAxisymmetric1DSmallStrain::computeStrainYY
Real computeStrainYY() override
Computes the strain_yy for axisymmetric problems.
Definition: ComputeAxisymmetric1DSmallStrain.C:61
ComputeAxisymmetric1DSmallStrain::computeStrainZZ
Real computeStrainZZ() override
Computes the strain_zz for axisymmetric problems, where .
Definition: ComputeAxisymmetric1DSmallStrain.C:70
ComputeAxisymmetric1DSmallStrain.h
ComputeAxisymmetric1DSmallStrain::_nscalar_strains
unsigned int _nscalar_strains
Definition: ComputeAxisymmetric1DSmallStrain.h:53
ComputeAxisymmetric1DSmallStrain::ComputeAxisymmetric1DSmallStrain
ComputeAxisymmetric1DSmallStrain(const InputParameters &parameters)
Definition: ComputeAxisymmetric1DSmallStrain.C:29