www.mooseframework.org
SphericalR.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 
10 #include "SphericalR.h"
11 
12 #include "Problem.h"
13 #include "SolidModel.h"
14 
15 namespace SolidMechanics
16 {
17 
19  const std::string & name,
20  const InputParameters & parameters)
21  : Element(solid_model, name, parameters),
22  _disp_r(coupledValue("disp_r")),
23  _large_strain(solid_model.getParamTempl<bool>("large_strain")),
24  _grad_disp_r(coupledGradient("disp_r"))
25 {
26 }
27 
29 
30 void
31 SphericalR::computeStrain(const unsigned qp,
32  const SymmTensor & total_strain_old,
33  SymmTensor & total_strain_new,
34  SymmTensor & strain_increment)
35 {
36  strain_increment.xx() = _grad_disp_r[qp](0);
37  strain_increment.yy() =
38  (_solid_model.q_point(qp)(0) != 0.0 ? _disp_r[qp] / _solid_model.q_point(qp)(0) : 0.0);
39  strain_increment.zz() = strain_increment.yy();
40  if (_large_strain)
41  {
42  strain_increment.xx() += 0.5 * (_grad_disp_r[qp](0) * _grad_disp_r[qp](0));
43  strain_increment.yy() += 0.5 * (strain_increment.yy() * strain_increment.yy());
44  strain_increment.zz() += 0.5 * (strain_increment.zz() * strain_increment.zz());
45  }
46 
47  total_strain_new = strain_increment;
48 
49  strain_increment -= total_strain_old;
50 }
51 }
SymmTensor::xx
Real xx() const
Definition: SymmTensor.h:131
SolidMechanics::SphericalR::SphericalR
SphericalR(SolidModel &solid_model, const std::string &name, const InputParameters &parameters)
Definition: SphericalR.C:18
SymmTensor::zz
Real zz() const
Definition: SymmTensor.h:133
SolidMechanics::SphericalR::_disp_r
const VariableValue & _disp_r
Definition: SphericalR.h:36
SolidMechanics::SphericalR::~SphericalR
virtual ~SphericalR()
Definition: SphericalR.C:28
SolidMechanics
Definition: AxisymmetricRZ.h:16
SolidModel::q_point
const Point & q_point(unsigned i) const
Definition: SolidModel.h:56
SolidModel
SolidModel is the base class for all this module's solid mechanics material models.
Definition: SolidModel.h:33
name
const std::string name
Definition: Setup.h:21
SphericalR.h
SolidMechanics::Element::_solid_model
SolidModel & _solid_model
Definition: Element.h:74
SolidMechanics::Element
Element is the base class for all of this module's solid mechanics element formulations.
Definition: Element.h:25
SolidMechanics::SphericalR::_large_strain
const bool _large_strain
Definition: SphericalR.h:38
SymmTensor
Definition: SymmTensor.h:21
SolidMechanics::SphericalR::computeStrain
virtual void computeStrain(const unsigned qp, const SymmTensor &total_strain_old, SymmTensor &total_strain_new, SymmTensor &strain_increment)
Definition: SphericalR.C:31
SymmTensor::yy
Real yy() const
Definition: SymmTensor.h:132
SolidModel.h
SolidMechanics::SphericalR::_grad_disp_r
const VariableGradient & _grad_disp_r
Definition: SphericalR.h:40