https://mooseframework.inl.gov
UpdatedLagrangianStressDivergence.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 #include "Assembly.h"
15 
31 template <class G>
33 {
34 public:
36  {
38  return params;
39  }
42  virtual void initialSetup() override;
43 
44 protected:
45  virtual RankTwoTensor gradTest(unsigned int component) override;
46  virtual RankTwoTensor gradTrial(unsigned int component) override;
47  virtual void precalculateJacobianDisplacement(unsigned int component) override;
48  virtual Real computeQpResidual() override;
49  virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override;
50  virtual Real computeQpJacobianTemperature(unsigned int cvar) override;
51  virtual Real computeQpJacobianOutOfPlaneStrain() override { return 0; }
52 
55 
56  // The derivative of the increment in Cauchy stress w.r.t. the increment in the spatial velocity
57  // gradient
59 
60  // @{
61  // The assembly quantities in the reference frame for stabilization
67  // @}
68 
69 private:
71  virtual RankTwoTensor gradTrialUnstabilized(unsigned int component);
72 
74  virtual RankTwoTensor gradTrialStabilized(unsigned int component);
75 };
76 
77 template <>
78 inline InputParameters
80 {
82  params.addClassDescription(
83  "Enforce equilibrium with an updated Lagrangian formulation in Cartesian coordinates.");
84  return params;
85 }
86 
87 template <>
88 inline void
90 {
91  if (getBlockCoordSystem() != Moose::COORD_XYZ)
92  mooseError("This kernel should only act in Cartesian coordinates.");
93 }
94 
virtual RankTwoTensor gradTrial(unsigned int component) override
virtual RankTwoTensor gradTest(unsigned int component) override
void mooseError(Args &&... args)
static const std::string component
Definition: NS.h:153
virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override
static InputParameters validParams()
static const std::string G
Definition: NS.h:166
virtual RankTwoTensor gradTrialStabilized(unsigned int component)
The stabilized trial function gradient.
UpdatedLagrangianStressDivergenceBase< GradientOperatorCartesian > UpdatedLagrangianStressDivergence
const MaterialProperty< RankTwoTensor > & _stress
The Cauchy stress.
const MaterialProperty< RankFourTensor > & _material_jacobian
virtual RankTwoTensor gradTrialUnstabilized(unsigned int component)
The unstabilized trial function gradient.
OutputTools< Real >::VariablePhiGradient VariablePhiGradient
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string alpha
Definition: NS.h:134
void addClassDescription(const std::string &doc_string)
virtual void precalculateJacobianDisplacement(unsigned int component) override
Prepare the average shape function gradients for stabilization.
UpdatedLagrangianStressDivergenceBase(const InputParameters &parameters)
virtual Real computeQpJacobianTemperature(unsigned int cvar) override
virtual void initialSetup() override
Base class of the "Lagrangian" kernel system.
Enforce equilibrium with an updated Lagrangian formulation.