12 #include "FEProblem.h"
13 #include "MooseMesh.h"
15 #include "libmesh/quadrature.h"
21 template <ComputeStage compute_stage>
26 params.addClassDescription(
27 "Compute a strain increment for incremental strains in 1D spherical symmetry problems.");
31 template <ComputeStage compute_stage>
33 const InputParameters & parameters)
35 _disp_old_0(coupledValueOld(
"displacements", 0))
39 template <ComputeStage compute_stage>
45 const auto & subdomainIDs = _mesh.meshSubdomains();
46 for (
auto subdomainID : subdomainIDs)
47 if (_fe_problem.getCoordSystem(subdomainID) != Moose::COORD_RSPHERICAL)
48 mooseError(
"The coordinate system must be set to RSPHERICAL for 1D R spherical simulations.");
51 template <ComputeStage compute_stage>
54 ADRankTwoTensor & total_strain_increment)
63 A(0, 0) = (*_grad_disp[0])[_qp](0);
64 Fbar(0, 0) = (*_grad_disp_old[0])[_qp](0);
67 if (!MooseUtils::relativeFuzzyEqual(_q_point[_qp](0), 0.0))
69 A(1, 1) = (*_disp[0])[_qp] / _q_point[_qp](0);
70 Fbar(1, 1) = _disp_old_0[_qp] / _q_point[_qp](0);
75 Fbar(2, 2) = Fbar(1, 1);
80 total_strain_increment = 0.5 * (A + A.transpose());