https://mooseframework.inl.gov
TotalLagrangianStressDivergenceBase.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 #include "GradientOperator.h"
14 
26 template <class G>
28 {
29 public:
30  static InputParameters baseParams();
33  virtual void initialSetup() override;
34 
35 protected:
36  virtual RankTwoTensor gradTest(unsigned int component) override;
37  virtual RankTwoTensor gradTrial(unsigned int component) override;
38  virtual void precalculateJacobianDisplacement(unsigned int component) override;
39  virtual void precalculateResidual() override;
40  virtual void precalculateJacobian() override;
41  virtual void precalculateOffDiagJacobian(unsigned int jvar) override;
42  virtual Real computeQpResidual() override;
43  virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override;
44  virtual Real computeQpJacobianTemperature(unsigned int cvar) override;
45  virtual Real computeQpJacobianOutOfPlaneStrain() override;
46 
50 
53  void computeAverageGradientSpatialPhi(unsigned int beta);
54 
61  void computeAvgTestPhiCross(unsigned int beta);
62 
65  Real gradXTestComponent(unsigned int component) const;
66 
68  Real gradXPhiComponent(unsigned int component) const;
69 
72 
77 
83 
90 
91 protected:
95  virtual RankTwoTensor gradTrialUnstabilized(unsigned int component);
96 
97 private:
104  void populateLocalPK1Cache(unsigned int beta);
105 
110 
115  std::vector<std::vector<RankTwoTensor>> _dpk1_grad_trial_cache;
116 
120  std::vector<std::vector<RankTwoTensor>> _grad_trial_cache;
121 
127  std::vector<std::vector<RankTwoTensor>> _delta_PK1_NL_cache;
128 
133  std::vector<std::vector<RankTwoTensor>> _dpk1_total_cache;
134 
137  std::vector<Real> _pk1_ddot_F_ust;
138 
142  std::vector<std::vector<Real>> _dA_dU_cache;
143 };
const MaterialProperty< RankTwoTensor > & _pk1
The 1st Piola-Kirchhoff stress.
std::vector< std::vector< RankTwoTensor > > _dpk1_grad_trial_cache
_dpk1_d_grad_u[qp] * gradTrial(beta) per (qp, j) for the current Jacobian column&#39;s beta...
Real gradXPhiComponent(unsigned int component) const
(grad_x phi_j)_component at the current _qp, same push-forward as gradXTestComponent.
virtual RankTwoTensor gradTrialUnstabilized(unsigned int component)
The unstabilized trial function gradient.
static InputParameters validParams()
static const std::string component
Definition: NS.h:157
const MaterialProperty< RankFourTensor > & _dpk1_bypass_fbar
Variant of _dpk1 (= pk1_jacobian) computed WITHOUT the F-bar chain factor _d_F_stab_d_F_ust in the si...
std::vector< std::vector< RankTwoTensor > > _delta_PK1_NL_cache
Fully wrapped non-local F-bar contribution to deltaPK1 per (qp, j) for the current column: _d_nl_fbar...
std::vector< Real > _pk1_ddot_F_ust
pk1 : F_ust per qp for the B-bar volumetric correction (see cachePK1ContractionFUst).
void computeAverageGradientSpatialTest()
Compute element-averaged spatial gradient of test functions for component _alpha, filling _avg_grad_s...
virtual RankTwoTensor gradTest(unsigned int component) override
static const std::string G
Definition: NS.h:170
std::vector< std::vector< RankTwoTensor > > _dpk1_total_cache
Local + non-local PK1 derivative per (qp, j): _dpk1_grad_trial_cache + _delta_PK1_NL_cache.
void computeAverageGradientSpatialPhi(unsigned int beta)
Compute element-averaged spatial gradient of trial functions for component beta, filling _avg_grad_sp...
void populateLocalPK1Cache(unsigned int beta)
Populate the per-(qp, j) caches consumed by computeQpJacobianDisplacement.
virtual void precalculateOffDiagJacobian(unsigned int jvar) override
virtual Real computeQpJacobianTemperature(unsigned int cvar) override
const MaterialProperty< RankFourTensor > & _dpk1_d_grad_u
The derivative of the PK1 stress with respect to the displacement gradient (grad u_{n+1}).
std::vector< std::vector< Real > > _dA_dU_cache
d(pk1 : F_ust)/dU per (qp, j) for the current column – the B-bar Jacobian&#39;s dA/dU term...
virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override
const MaterialProperty< RankFourTensor > & _dpk1
The derivative of the PK1 stress with respect to the deformation gradient (F that the stress material...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void cachePK1ContractionFUst()
Cache pk1 : F_ust per qp (the J * tr(sigma) factor of the B-bar volumetric correction).
static const std::string alpha
Definition: NS.h:138
Enforce equilibrium with a total Lagrangian formulation.
std::vector< std::vector< RankTwoTensor > > _grad_trial_cache
Cached gradTrialUnstabilized(beta) per (qp, j) for the current column.
virtual void initialSetup() override
Derive _large_kinematics from the strain calculator&#39;s LARGE_KINEMATICS guarantee. ...
TotalLagrangianStressDivergenceBase(const InputParameters &parameters)
void computeAvgTestPhiCross(unsigned int beta)
Compute element-averaged cross product (grad_x test_i)_{b1} * (grad_x phi_j)_{b2} for b1...
virtual RankTwoTensor gradTrial(unsigned int component) override
Real gradXTestComponent(unsigned int component) const
(grad_x test_i)_component at the current _qp, where the push-forward uses the unstabilized F (= F_act...
virtual void precalculateJacobianDisplacement(unsigned int component) override
Prepare the average shape function gradients for stabilization.
Base class of the "Lagrangian" kernel system.