15#include "libmesh/quadrature.h"
23 params.
addClassDescription(
"Compute a strain increment and rotation increment for finite strains "
24 "in 1D spherical symmetry problems.");
38 const auto & subdomainIDs = _mesh.meshSubdomains();
39 for (
auto subdomainID : subdomainIDs)
41 mooseError(
"The coordinate system must be set to RSPHERICAL for 1D R spherical simulations.");
49 for (_qp = 0; _qp < _qrule->n_points(); ++_qp)
62 if (!MooseUtils::relativeFuzzyEqual(_q_point[_qp](0), 0.0))
64 A(1, 1) = (*
_disp[0])[_qp] / _q_point[_qp](0);
70 Fbar(2, 2) = Fbar(1, 1);
84 _Fhat[_qp].addIa(1.0);
94 for (
unsigned int i = 0; i < 3; ++i)
95 total_strain_increment(i, i) = std::log(
_Fhat[_qp](i, i));
registerMooseObject("SolidMechanicsApp", ComputeRSphericalFiniteStrain)
void mooseError(Args &&... args)
ComputeFiniteStrain defines a strain increment and rotation increment, for finite strains.
static InputParameters validParams()
virtual void computeQpStrain()
std::vector< RankTwoTensor > _Fhat
Incremental deformation gradient.
std::vector< const VariableGradient * > _grad_disp_old
MaterialProperty< RankTwoTensor > & _deformation_gradient
void initialSetup() override
ComputeRSphericalFiniteStrain defines a strain increment and a rotation increment for finite strains ...
static InputParameters validParams()
ComputeRSphericalFiniteStrain(const InputParameters ¶meters)
virtual void computeProperties() override
Computes the current and old deformation gradients with the assumptions for 1D spherical symmetry geo...
const VariableValue & _disp_old_0
the old value of the first component of the displacements vector
virtual void initialSetup() override
virtual void computeQpIncrements(RankTwoTensor &e, RankTwoTensor &r) override
std::vector< const VariableGradient * > _grad_disp
Gradient of displacements.
std::vector< const VariableValue * > _disp
Displacement variables.
RankTwoTensorTempl< T > inverse() const