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 Real computeQpResidual() override
virtual void precalculateJacobianDisplacement(unsigned int component) override
Prepare the average shape function gradients for stabilization.
static const std::string component
TotalLagrangianStressDivergenceBaseS(const InputParameters ¶meters)
virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override
static InputParameters validParams()
Enforce equilibrium with a total Lagrangian formulation.
static RankTwoTensorTempl Identity()
virtual RankTwoTensor gradTrialUnstabilized(unsigned int component)
The unstabilized trial function gradient.
virtual RankTwoTensor gradTrialStabilized(unsigned int component)
The stabilized trial function gradient.
virtual RankTwoTensor gradTest(unsigned int component) override
virtual Real computeQpJacobianTemperature(unsigned int cvar) override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string alpha
IntRange< T > make_range(T beg, T end)
auto elementAverage(const Functor &f, const MooseArray< Real > &JxW, const MooseArray< Real > &coord)
Base class of the "Lagrangian" kernel system.
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
virtual Real computeQpJacobianOutOfPlaneStrain() override
static InputParameters baseParams()
MooseUnits pow(const MooseUnits &, int)
virtual RankTwoTensor gradTrial(unsigned int component) override