26 _pk1(getMaterialPropertyByName<
RankTwoTensor>(_base_name +
"pk1_stress")),
27 _dpk1(getMaterialPropertyByName<
RankFourTensor>(_base_name +
"pk1_jacobian"))
36 return G::gradOp(
component, _grad_test[_i][_qp], _test[_i][_qp], _q_point[_qp]);
43 return _stabilize_strain ? gradTrialStabilized(
component) : gradTrialUnstabilized(
component);
51 return G::gradOp(
component, _grad_phi[_j][_qp], _phi[_j][_qp], _q_point[_qp]);
59 const auto Gb = G::gradOp(
component, _grad_phi[_j][_qp], _phi[_j][_qp], _q_point[_qp]);
61 const auto Ga = _avg_grad_trial[
component][_j];
64 if (_large_kinematics)
67 const Real dratio =
std::pow(_F_avg[_qp].det() / _F_ust[_qp].det(), 1.0 / 3.0);
68 const Real fact = (_F_avg[_qp].inverse().transpose().doubleContraction(Ga) -
69 _F_ust[_qp].inverse().transpose().doubleContraction(Gb)) /
71 return dratio * (Gb + fact * _F_ust[_qp]);
87 {
return G::gradOp(
component, _grad_phi[
j][qp], _phi[
j][qp], _q_point[qp]); },
96 return gradTest(_alpha).doubleContraction(_pk1[_qp]);
105 return gradTest(
alpha).doubleContraction(_dpk1[_qp] * gradTrial(beta));
112 usingTensorIndices(i_, j_, k_, l_);
115 for (
const auto deigen_darg : _deigenstrain_dargs[cvar])
116 total_deigen += (*deigen_darg)[_qp];
118 const auto A = _f_inv[_qp].inverse();
119 const auto B = _F_inv[_qp].inverse();
120 const auto U = 0.5 * (
A.template times<i_, k_, l_, j_>(
B) +
A.template times<i_, l_, k_, j_>(
B));
122 return -(_dpk1[_qp] * U * total_deigen).doubleContraction(gradTest(_alpha)) *
123 _temperature->phi()[_j][_qp];
130 return _dpk1[_qp].contractionKl(2, 2, gradTest(_alpha)) * _out_of_plane_strain->phi()[_j][_qp];
virtual RankTwoTensor gradTrialUnstabilized(unsigned int component)
The unstabilized trial function gradient.
static const std::string component
virtual RankTwoTensor gradTrialStabilized(unsigned int component)
The stabilized trial function gradient.
virtual Real computeQpJacobianOutOfPlaneStrain() override
static RankTwoTensorTempl Identity()
virtual RankTwoTensor gradTest(unsigned int component) override
virtual Real computeQpJacobianTemperature(unsigned int cvar) override
static InputParameters validParams()
virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string alpha
Enforce equilibrium with a total Lagrangian formulation.
IntRange< T > make_range(T beg, T end)
auto elementAverage(const Functor &f, const MooseArray< Real > &JxW, const MooseArray< Real > &coord)
static InputParameters baseParams()
TotalLagrangianStressDivergenceBase(const InputParameters ¶meters)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
virtual Real computeQpResidual() override
virtual RankTwoTensor gradTrial(unsigned int component) override
MooseUnits pow(const MooseUnits &, int)
virtual void precalculateJacobianDisplacement(unsigned int component) override
Prepare the average shape function gradients for stabilization.
Base class of the "Lagrangian" kernel system.