Total Lagrangian formulation with most homogenization terms (one disp_xyz field and one scalar) The macro_gradient variable is split into two scalars: the first component called '_hvar' herein and all other components called '_avar' herein. More...
#include <HomogenizedTotalLagrangianStressDivergenceA.h>
Public Types | |
typedef std::vector< int > | JvarMap |
Public Member Functions | |
HomogenizedTotalLagrangianStressDivergenceA (const InputParameters ¶meters) | |
virtual void | initialSetup () override |
template<> | |
void | initialSetup () |
template<> | |
void | initialSetup () |
template<> | |
void | initialSetup () |
virtual void | computeOffDiagJacobian (unsigned int jvar) override |
unsigned int | mapJvarToCvar (unsigned int jvar) |
int | mapJvarToCvar (unsigned int jvar, const JvarMap &jvar_map) |
bool | mapJvarToCvar (unsigned int jvar, unsigned int &cvar) |
const JvarMap & | getJvarMap () |
const JvarMap & | getParameterJvarMap (std::string parameter_name) |
Static Public Member Functions | |
static InputParameters | validParams () |
static InputParameters | baseParams () |
Protected Member Functions | |
virtual Real | computeQpResidual () override |
virtual Real | computeQpJacobianDisplacement (unsigned int alpha, unsigned int beta) override |
virtual void | computeScalarResidual () override |
Method for computing the scalar part of residual for _kappa. More... | |
virtual void | computeScalarJacobian () override |
Method for computing the scalar variable part of Jacobian for d-_kappa-residual / d-_kappa. More... | |
virtual void | computeScalarOffDiagJacobian (const unsigned int jvar_num) override |
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-jvar jvar is looped over all field variables, which herein is just disp_x and disp_y. More... | |
virtual Real | computeScalarQpOffDiagJacobian (const unsigned int jvar_num) override |
Method for computing an off-diagonal jacobian component at quadrature points. More... | |
virtual void | computeOffDiagJacobianScalarLocal (const unsigned int svar_num) override |
Method for computing an off-diagonal jacobian component d-_var-residual / d-svar. More... | |
virtual Real | computeQpOffDiagJacobianScalar (const unsigned int svar_num) override |
Method for computing d-_var-residual / d-_svar at quadrature points. More... | |
virtual void | computeScalarOffDiagJacobianScalar (const unsigned int svar_num) override |
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-svar svar is looped over other scalar variables, which herein is just _kappa_other. More... | |
virtual RankTwoTensor | gradTest (unsigned int component) override |
virtual RankTwoTensor | gradTrial (unsigned int component) override |
virtual void | precalculateJacobianDisplacement (unsigned int component) override |
Prepare the average shape function gradients for stabilization. More... | |
virtual Real | computeQpJacobianTemperature (unsigned int cvar) override |
virtual Real | computeQpJacobianOutOfPlaneStrain () override |
virtual void | precalculateJacobian () override |
virtual void | precalculateOffDiagJacobian (unsigned int jvar) override |
virtual Real | computeQpJacobian () override |
virtual Real | computeQpOffDiagJacobian (unsigned int jvar) override |
Protected Attributes | |
const unsigned int | _beta |
Which component of the scalar vector residual this constraint is responsible for. More... | |
const MooseVariableScalar *const | _kappao_var_ptr |
(Pointer to) Scalar variable this kernel operates on More... | |
const unsigned int | _kappao_var |
The unknown scalar variable ID. More... | |
const unsigned int | _ko_order |
Order of the scalar variable, used in several places. More... | |
const VariableValue & | _kappa_other |
Reference to the current solution at the current quadrature point. More... | |
HomogenizationA::ConstraintMap | _cmap |
Type of each constraint (stress or strain) for each component. More... | |
HomogenizationA::ConstraintType | _ctype = HomogenizationA::ConstraintType::None |
The constraint type; initialize with 'none'. More... | |
unsigned int | _m |
Used internally to iterate over each scalar component. More... | |
unsigned int | _n |
unsigned int | _a |
unsigned int | _b |
const MaterialProperty< RankTwoTensor > & | _pk1 |
The 1st Piola-Kirchhoff stress. More... | |
const MaterialProperty< RankFourTensor > & | _dpk1 |
The derivative of the PK1 stress with respect to the deformation gradient. More... | |
const bool | _large_kinematics |
If true use large deformation kinematics. More... | |
const bool | _stabilize_strain |
If true calculate the deformation gradient derivatives for F_bar. More... | |
const std::string | _base_name |
Prepend to the material properties. More... | |
const unsigned int | _alpha |
Which component of the vector residual this kernel is responsible for. More... | |
const unsigned int | _ndisp |
Total number of displacements/size of residual vector. More... | |
std::vector< unsigned int > | _disp_nums |
The displacement numbers. More... | |
std::vector< std::vector< RankTwoTensor > > | _avg_grad_trial |
const MaterialProperty< RankTwoTensor > & | _F_ust |
The unmodified deformation gradient. More... | |
const MaterialProperty< RankTwoTensor > & | _F_avg |
The element-average deformation gradient. More... | |
const MaterialProperty< RankTwoTensor > & | _f_inv |
The inverse increment deformation gradient. More... | |
const MaterialProperty< RankTwoTensor > & | _F_inv |
The inverse deformation gradient. More... | |
const MaterialProperty< RankTwoTensor > & | _F |
The actual (stabilized) deformation gradient. More... | |
const MooseVariable * | _temperature |
Temperature, if provided. This is used only to get the trial functions. More... | |
const MooseVariable * | _out_of_plane_strain |
Out-of-plane strain, if provided. More... | |
std::vector< std::vector< const MaterialProperty< RankTwoTensor > * > > | _deigenstrain_dargs |
Eigenstrain derivatives wrt generate coupleds. More... | |
const unsigned int | _n_args |
Total Lagrangian formulation with most homogenization terms (one disp_xyz field and one scalar) The macro_gradient variable is split into two scalars: the first component called '_hvar' herein and all other components called '_avar' herein.
For parameter _beta = 0, the primary scalar (_kappa) is _hvar and the coupled scalar is _avar. For parameter _beta = 1, the primary scalar (_kappa) is _avar and the coupled scalar is _hvar. Just like the primary field variable (_var) is either disp_x or disp_y or disp_z depending on _alpha.
Thus, each instance of HomogenizedTotalLagrangianStressDivergenceA acts on one field variable (_disp_alpha) and one scalar variable (_hvar_beta). The job of the kernel is to assemble the residual of all dofs of _disp_alpha and of all dofs of _hvar_beta (namely, selected entries). It assembles a symmetric portion of the Jacobian for _disp_alpha and _hvar_beta, with some logical checks to access only the particular desired terms (often for _alpha or _beta = 0). The entries for the other field/scalar variables are handled by other instances of the kernel, which have other values of _alpha AND _beta. The logical checks ensure the proper decomposition of the jobs.
In summary, for x=disp_x etc. and h=_hvar and a=_avar, then the contributions of the instances are _alpha=0, _beta=0 R = [Rx, 00, 00, Rh, 00 ]^T J = [Jxx, Jxy, Jxz, Jxh, 000 Jhx, 000, 000, Jhh, Jha] _alpha=1, _beta=0 R = [00, Ry, 00, 00, 00 ]^T J = [Jyx, Jyy, Jyz, Jyh, 000 000, Jhy, 000, 000, 000] _alpha=2, _beta=0 R = [00, 00, Rz, 00, 00 ]^T J = [Jzx, Jzy, Jzz, Jzh, 000 000, 000, Jhz, 000, 000] _alpha=0, _beta=1 R = [00, 00, 00, 00, Ra ]^T J = [000, 000, 000, 000, Jxa Jax, 000, 000, Jah, Jaa] _alpha=1, _beta=1 R = [00, 00, 00, 00, 00 ]^T J = [000, 000, 000, 000, Jya 000, Jay, 000, 000, 000] _alpha=2, _beta=1 R = [00, 00, 00, 00, 00 ]^T J = [000, 000, 000, 000, Jza 000, 000, Jaz, 000, 000]
In this manner, the full R and J are obtained with NO duplication of jobs: R = [Rx, Ry, Rz, Rh, Ra ]^T J = [Jxx, Jxy, Jxz, Jxh, Jxa Jyx, Jyy, Jyz, Jyh, Jya Jzx, Jzy, Jzz, Jzh, Jza Jhx, Jhy, Jhz, Jhh, Jha Jax, Jay, Jaz, Jah, Jaa]
Definition at line 80 of file HomogenizedTotalLagrangianStressDivergenceA.h.
HomogenizedTotalLagrangianStressDivergenceA::HomogenizedTotalLagrangianStressDivergenceA | ( | const InputParameters & | parameters | ) |
Definition at line 45 of file HomogenizedTotalLagrangianStressDivergenceA.C.
|
staticinherited |
Definition at line 14 of file TotalLagrangianStressDivergenceBaseS.C.
Referenced by TotalLagrangianStressDivergenceBaseS< G >::validParams().
|
overrideprotectedvirtual |
Method for computing an off-diagonal jacobian component d-_var-residual / d-svar.
svar is looped over all scalar variables, which herein is just _kappa and _kappa_other
Definition at line 295 of file HomogenizedTotalLagrangianStressDivergenceA.C.
|
overrideprotectedvirtualinherited |
Definition at line 115 of file LagrangianStressDivergenceBaseS.C.
|
overrideprotectedvirtual |
Reimplemented from TotalLagrangianStressDivergenceBaseS< G >.
Definition at line 88 of file HomogenizedTotalLagrangianStressDivergenceA.C.
|
overrideprotectedvirtualinherited |
Implements LagrangianStressDivergenceBaseS.
Definition at line 128 of file TotalLagrangianStressDivergenceBaseS.C.
|
overrideprotectedvirtualinherited |
Implements LagrangianStressDivergenceBaseS.
Definition at line 110 of file TotalLagrangianStressDivergenceBaseS.C.
|
overrideprotectedvirtualinherited |
Definition at line 121 of file LagrangianStressDivergenceBaseS.C.
|
overrideprotectedvirtual |
Method for computing d-_var-residual / d-_svar at quadrature points.
Definition at line 346 of file HomogenizedTotalLagrangianStressDivergenceA.C.
Referenced by computeOffDiagJacobianScalarLocal().
|
overrideprotectedvirtual |
Reimplemented from TotalLagrangianStressDivergenceBaseS< G >.
Definition at line 78 of file HomogenizedTotalLagrangianStressDivergenceA.C.
|
overrideprotectedvirtual |
Method for computing the scalar variable part of Jacobian for d-_kappa-residual / d-_kappa.
Definition at line 165 of file HomogenizedTotalLagrangianStressDivergenceA.C.
|
overrideprotectedvirtual |
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-jvar jvar is looped over all field variables, which herein is just disp_x and disp_y.
Definition at line 246 of file HomogenizedTotalLagrangianStressDivergenceA.C.
|
overrideprotectedvirtual |
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-svar svar is looped over other scalar variables, which herein is just _kappa_other.
Definition at line 375 of file HomogenizedTotalLagrangianStressDivergenceA.C.
|
overrideprotectedvirtual |
Method for computing an off-diagonal jacobian component at quadrature points.
Definition at line 355 of file HomogenizedTotalLagrangianStressDivergenceA.C.
Referenced by computeScalarOffDiagJacobian().
|
overrideprotectedvirtual |
Method for computing the scalar part of residual for _kappa.
Definition at line 99 of file HomogenizedTotalLagrangianStressDivergenceA.C.
|
overrideprotectedvirtualinherited |
Implements LagrangianStressDivergenceBaseS.
Definition at line 33 of file TotalLagrangianStressDivergenceBaseS.C.
Referenced by HomogenizedTotalLagrangianStressDivergenceR::computeQpJacobianDisplacement(), computeQpJacobianDisplacement(), HomogenizedTotalLagrangianStressDivergenceS::computeQpOffDiagJacobianScalar(), HomogenizedTotalLagrangianStressDivergenceR::computeQpOffDiagJacobianScalar(), computeQpOffDiagJacobianScalar(), HomogenizedTotalLagrangianStressDivergenceR::computeQpResidual(), and computeQpResidual().
|
overrideprotectedvirtualinherited |
Implements LagrangianStressDivergenceBaseS.
Definition at line 41 of file TotalLagrangianStressDivergenceBaseS.C.
Referenced by HomogenizedTotalLagrangianStressDivergenceR::computeQpJacobianDisplacement(), computeQpJacobianDisplacement(), HomogenizedTotalLagrangianStressDivergenceS::computeScalarQpOffDiagJacobian(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarQpOffDiagJacobian(), and computeScalarQpOffDiagJacobian().
|
inlineinherited |
Definition at line 26 of file TotalLagrangianStressDivergenceS.h.
|
inherited |
Definition at line 26 of file TotalLagrangianStressDivergenceCentrosymmetricSphericalS.h.
|
inherited |
Definition at line 26 of file TotalLagrangianStressDivergenceAxisymmetricCylindricalS.h.
|
overridevirtualinherited |
|
overrideprotectedvirtualinherited |
Definition at line 85 of file LagrangianStressDivergenceBaseS.C.
|
overrideprotectedvirtualinherited |
Prepare the average shape function gradients for stabilization.
Implements LagrangianStressDivergenceBaseS.
Definition at line 80 of file TotalLagrangianStressDivergenceBaseS.C.
|
overrideprotectedvirtualinherited |
Definition at line 98 of file LagrangianStressDivergenceBaseS.C.
|
static |
Definition at line 25 of file HomogenizedTotalLagrangianStressDivergenceA.C.
|
protected |
Definition at line 154 of file HomogenizedTotalLagrangianStressDivergenceA.h.
|
protectedinherited |
Which component of the vector residual this kernel is responsible for.
Definition at line 72 of file LagrangianStressDivergenceBaseS.h.
Referenced by LagrangianStressDivergenceBaseS::computeQpJacobian(), LagrangianStressDivergenceBaseS::computeQpOffDiagJacobian(), HomogenizedTotalLagrangianStressDivergenceS::computeQpOffDiagJacobianScalar(), HomogenizedTotalLagrangianStressDivergenceR::computeQpOffDiagJacobianScalar(), computeQpOffDiagJacobianScalar(), HomogenizedTotalLagrangianStressDivergenceR::computeQpResidual(), computeQpResidual(), HomogenizedTotalLagrangianStressDivergenceS::computeScalarJacobian(), computeScalarJacobian(), computeScalarOffDiagJacobianScalar(), HomogenizedTotalLagrangianStressDivergenceS::computeScalarQpOffDiagJacobian(), computeScalarQpOffDiagJacobian(), HomogenizedTotalLagrangianStressDivergenceS::computeScalarResidual(), computeScalarResidual(), and LagrangianStressDivergenceBaseS::precalculateJacobian().
|
protectedinherited |
Definition at line 83 of file LagrangianStressDivergenceBaseS.h.
Referenced by LagrangianStressDivergenceBaseS::precalculateJacobian(), and LagrangianStressDivergenceBaseS::precalculateOffDiagJacobian().
|
protected |
Definition at line 155 of file HomogenizedTotalLagrangianStressDivergenceA.h.
|
protectedinherited |
Prepend to the material properties.
Definition at line 69 of file LagrangianStressDivergenceBaseS.h.
|
protected |
Which component of the scalar vector residual this constraint is responsible for.
Definition at line 131 of file HomogenizedTotalLagrangianStressDivergenceA.h.
Referenced by computeOffDiagJacobianScalarLocal(), computeQpJacobianDisplacement(), computeQpResidual(), computeScalarJacobian(), computeScalarOffDiagJacobian(), computeScalarOffDiagJacobianScalar(), and computeScalarResidual().
|
protected |
Type of each constraint (stress or strain) for each component.
Definition at line 146 of file HomogenizedTotalLagrangianStressDivergenceA.h.
Referenced by computeOffDiagJacobianScalarLocal(), computeScalarJacobian(), computeScalarOffDiagJacobian(), computeScalarOffDiagJacobianScalar(), computeScalarResidual(), and HomogenizedTotalLagrangianStressDivergenceA().
|
protected |
The constraint type; initialize with 'none'.
Definition at line 149 of file HomogenizedTotalLagrangianStressDivergenceA.h.
Referenced by computeOffDiagJacobianScalarLocal(), computeScalarOffDiagJacobian(), and computeScalarQpOffDiagJacobian().
|
protectedinherited |
Eigenstrain derivatives wrt generate coupleds.
Definition at line 107 of file LagrangianStressDivergenceBaseS.h.
Referenced by LagrangianStressDivergenceBaseS::LagrangianStressDivergenceBaseS().
|
protectedinherited |
The displacement numbers.
Definition at line 78 of file LagrangianStressDivergenceBaseS.h.
Referenced by LagrangianStressDivergenceBaseS::computeQpOffDiagJacobian(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarQpOffDiagJacobian(), LagrangianStressDivergenceBaseS::LagrangianStressDivergenceBaseS(), and LagrangianStressDivergenceBaseS::precalculateOffDiagJacobian().
|
protectedinherited |
The derivative of the PK1 stress with respect to the deformation gradient.
Definition at line 49 of file TotalLagrangianStressDivergenceBaseS.h.
Referenced by HomogenizedTotalLagrangianStressDivergenceR::computeQpJacobianDisplacement(), computeQpJacobianDisplacement(), HomogenizedTotalLagrangianStressDivergenceS::computeQpOffDiagJacobianScalar(), HomogenizedTotalLagrangianStressDivergenceR::computeQpOffDiagJacobianScalar(), computeQpOffDiagJacobianScalar(), HomogenizedTotalLagrangianStressDivergenceS::computeScalarJacobian(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarJacobian(), computeScalarJacobian(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarOffDiagJacobianScalar(), computeScalarOffDiagJacobianScalar(), HomogenizedTotalLagrangianStressDivergenceS::computeScalarQpOffDiagJacobian(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarQpOffDiagJacobian(), and computeScalarQpOffDiagJacobian().
|
protectedinherited |
The actual (stabilized) deformation gradient.
Definition at line 98 of file LagrangianStressDivergenceBaseS.h.
Referenced by HomogenizedTotalLagrangianStressDivergenceS::computeScalarResidual(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarResidual(), and computeScalarResidual().
|
protectedinherited |
The element-average deformation gradient.
Definition at line 89 of file LagrangianStressDivergenceBaseS.h.
|
protectedinherited |
The inverse increment deformation gradient.
Definition at line 92 of file LagrangianStressDivergenceBaseS.h.
|
protectedinherited |
The inverse deformation gradient.
Definition at line 95 of file LagrangianStressDivergenceBaseS.h.
|
protectedinherited |
The unmodified deformation gradient.
Definition at line 86 of file LagrangianStressDivergenceBaseS.h.
|
protected |
Reference to the current solution at the current quadrature point.
Definition at line 143 of file HomogenizedTotalLagrangianStressDivergenceA.h.
|
protected |
The unknown scalar variable ID.
Definition at line 137 of file HomogenizedTotalLagrangianStressDivergenceA.h.
Referenced by computeScalarOffDiagJacobianScalar().
|
protected |
(Pointer to) Scalar variable this kernel operates on
Definition at line 134 of file HomogenizedTotalLagrangianStressDivergenceA.h.
Referenced by computeScalarOffDiagJacobianScalar().
|
protected |
Order of the scalar variable, used in several places.
Definition at line 140 of file HomogenizedTotalLagrangianStressDivergenceA.h.
Referenced by computeScalarOffDiagJacobianScalar().
|
protectedinherited |
If true use large deformation kinematics.
Definition at line 63 of file LagrangianStressDivergenceBaseS.h.
Referenced by HomogenizedTotalLagrangianStressDivergenceS::computeScalarJacobian(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarJacobian(), computeScalarJacobian(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarOffDiagJacobianScalar(), computeScalarOffDiagJacobianScalar(), HomogenizedTotalLagrangianStressDivergenceS::computeScalarQpOffDiagJacobian(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarQpOffDiagJacobian(), computeScalarQpOffDiagJacobian(), HomogenizedTotalLagrangianStressDivergenceS::computeScalarResidual(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarResidual(), and computeScalarResidual().
|
protected |
Used internally to iterate over each scalar component.
Definition at line 152 of file HomogenizedTotalLagrangianStressDivergenceA.h.
Referenced by computeOffDiagJacobianScalarLocal(), computeQpOffDiagJacobianScalar(), computeScalarOffDiagJacobian(), and computeScalarQpOffDiagJacobian().
|
protected |
Definition at line 153 of file HomogenizedTotalLagrangianStressDivergenceA.h.
Referenced by computeOffDiagJacobianScalarLocal(), computeQpOffDiagJacobianScalar(), computeScalarOffDiagJacobian(), and computeScalarQpOffDiagJacobian().
|
protectedinherited |
Total number of displacements/size of residual vector.
Definition at line 75 of file LagrangianStressDivergenceBaseS.h.
Referenced by LagrangianStressDivergenceBaseS::computeQpOffDiagJacobian(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarQpOffDiagJacobian(), LagrangianStressDivergenceBaseS::LagrangianStressDivergenceBaseS(), and LagrangianStressDivergenceBaseS::precalculateOffDiagJacobian().
|
protectedinherited |
Out-of-plane strain, if provided.
Definition at line 104 of file LagrangianStressDivergenceBaseS.h.
Referenced by LagrangianStressDivergenceBaseS::computeQpOffDiagJacobian().
|
protectedinherited |
The 1st Piola-Kirchhoff stress.
Definition at line 45 of file TotalLagrangianStressDivergenceBaseS.h.
Referenced by HomogenizedTotalLagrangianStressDivergenceR::computeQpResidual(), computeQpResidual(), HomogenizedTotalLagrangianStressDivergenceS::computeScalarResidual(), HomogenizedTotalLagrangianStressDivergenceR::computeScalarResidual(), and computeScalarResidual().
|
protectedinherited |
If true calculate the deformation gradient derivatives for F_bar.
Definition at line 66 of file LagrangianStressDivergenceBaseS.h.
Referenced by LagrangianStressDivergenceBaseS::precalculateJacobian(), and LagrangianStressDivergenceBaseS::precalculateOffDiagJacobian().
|
protectedinherited |
Temperature, if provided. This is used only to get the trial functions.
Definition at line 101 of file LagrangianStressDivergenceBaseS.h.
Referenced by LagrangianStressDivergenceBaseS::computeQpOffDiagJacobian().