https://mooseframework.inl.gov
HomogenizedTotalLagrangianStressDivergenceR.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 HomogenizationR
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 
73 {
74 public:
77 
78 protected:
79  // Add overrides to base class contributions to only happen for _beta==0, to happen only once
80  virtual Real computeQpResidual() override;
81  virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override;
82 
86  virtual void computeScalarResidual() override;
87 
91  virtual void computeScalarJacobian() override;
92 
97  virtual void computeScalarOffDiagJacobian(const unsigned int jvar_num) override;
98 
102  virtual Real computeScalarQpOffDiagJacobian(const unsigned int jvar_num) override;
103 
108  virtual void computeOffDiagJacobianScalarLocal(const unsigned int svar_num) override;
109 
113  virtual Real computeQpOffDiagJacobianScalar(const unsigned int /*svar_num*/) override;
114 
119  virtual void computeScalarOffDiagJacobianScalar(const unsigned int svar_num) override;
120 
121 protected:
123  const unsigned int _beta;
124 
127 
129  const unsigned int _kappao_var;
130 
132  const unsigned int _ko_order;
133 
136 
139 
142 
144  unsigned int _m;
145  unsigned int _n;
146  unsigned int _a;
147  unsigned int _b;
148 };
Total Lagrangian formulation with most homogenization terms (one disp_xyz field and one scalar) The m...
Enforce equilibrium with a total Lagrangian formulation.
virtual void computeScalarJacobian() override
Method for computing the scalar variable part of Jacobian for d-_kappa-residual / d-_kappa...
virtual void computeScalarResidual() override
Method for computing the scalar part of residual for _kappa.
const unsigned int _kappao_var
The unknown scalar variable ID.
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...
virtual void computeOffDiagJacobianScalarLocal(const unsigned int svar_num) override
Method for computing an off-diagonal jacobian component d-_var-residual / d-svar. ...
HomogenizationR::ConstraintType _ctype
The constraint type; initialize with &#39;none&#39;.
HomogenizationR::ConstraintMap _cmap
Type of each constraint (stress or strain) for each component.
virtual Real computeQpOffDiagJacobianScalar(const unsigned int) override
Method for computing d-_var-residual / d-_svar at quadrature points.
const unsigned int _ko_order
Order of the scalar variable, used in several places.
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...
const MooseVariableScalar *const _kappao_var_ptr
(Pointer to) Scalar variable this kernel operates on
unsigned int _m
Used internally to iterate over each scalar component.
OutputTools< Real >::VariableValue VariableValue
virtual Real computeQpJacobianDisplacement(unsigned int alpha, unsigned int beta) override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableValue & _kappa_other
Reference to the current solution at the current quadrature point.
static const std::string alpha
Definition: NS.h:134
virtual Real computeScalarQpOffDiagJacobian(const unsigned int jvar_num) override
Method for computing an off-diagonal jacobian component at quadrature points.
const unsigned int _beta
Which component of the scalar vector residual this constraint is responsible for. ...
const MultiMooseEnum constraintType("strain stress none")
Moose constraint type, for input.
ConstraintType
Constraint type: stress/PK stress or strain/deformation gradient.
std::map< std::pair< unsigned int, unsigned int >, std::pair< ConstraintType, const Function * > > ConstraintMap