https://mooseframework.inl.gov
HomogenizedTotalLagrangianStressDivergenceA.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 
14 // Helpers common to the whole homogenization system
15 namespace HomogenizationA
16 {
18 const MultiMooseEnum constraintType("strain stress none");
20 enum class ConstraintType
21 {
22  Strain,
23  Stress,
24  None
25 };
26 typedef std::map<std::pair<unsigned int, unsigned int>, std::pair<ConstraintType, const Function *>>
28 }
29 
81 {
82 public:
85 
86 protected:
87  // Add overrides to base class contributions to only happen for _beta==0, to happen only once
88  virtual Real computeQpResidual() override;
89  virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override;
90 
94  virtual void computeScalarResidual() override;
95 
99  virtual void computeScalarJacobian() override;
100 
105  virtual void computeScalarOffDiagJacobian(const unsigned int jvar_num) override;
106 
110  virtual Real computeScalarQpOffDiagJacobian(const unsigned int jvar_num) override;
111 
116  virtual void computeOffDiagJacobianScalarLocal(const unsigned int svar_num) override;
117 
121  virtual Real computeQpOffDiagJacobianScalar(const unsigned int svar_num) override;
122 
127  virtual void computeScalarOffDiagJacobianScalar(const unsigned int svar_num) override;
128 
129 protected:
131  const unsigned int _beta;
132 
135 
137  const unsigned int _kappao_var;
138 
140  const unsigned int _ko_order;
141 
144 
147 
150 
152  unsigned int _m;
153  unsigned int _n;
154  unsigned int _a;
155  unsigned int _b;
156 };
virtual Real computeScalarQpOffDiagJacobian(const unsigned int jvar_num) override
Method for computing an off-diagonal jacobian component at quadrature points.
const unsigned int _ko_order
Order of the scalar variable, used in several places.
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 ove...
Enforce equilibrium with a total Lagrangian formulation.
HomogenizationA::ConstraintMap _cmap
Type of each constraint (stress or strain) for each component.
const MooseVariableScalar *const _kappao_var_ptr
(Pointer to) Scalar variable this kernel operates on
virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override
const MultiMooseEnum constraintType("strain stress none")
Moose constraint type, for input.
virtual void computeOffDiagJacobianScalarLocal(const unsigned int svar_num) override
Method for computing an off-diagonal jacobian component d-_var-residual / d-svar. ...
const unsigned int _beta
Which component of the scalar vector residual this constraint is responsible for. ...
Total Lagrangian formulation with most homogenization terms (one disp_xyz field and one scalar) The m...
const unsigned int _kappao_var
The unknown scalar variable ID.
OutputTools< Real >::VariableValue VariableValue
HomogenizationA::ConstraintType _ctype
The constraint type; initialize with &#39;none&#39;.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string alpha
Definition: NS.h:134
unsigned int _m
Used internally to iterate over each scalar component.
std::map< std::pair< unsigned int, unsigned int >, std::pair< ConstraintType, const Function * > > ConstraintMap
ConstraintType
Constraint type: stress/PK stress or strain/deformation gradient.
const VariableValue & _kappa_other
Reference to the current solution at the current quadrature point.
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 ove...
virtual Real computeQpOffDiagJacobianScalar(const unsigned int svar_num) override
Method for computing d-_var-residual / d-_svar at quadrature points.
virtual void computeScalarResidual() override
Method for computing the scalar part of residual for _kappa.
virtual void computeScalarJacobian() override
Method for computing the scalar variable part of Jacobian for d-_kappa-residual / d-_kappa...