https://mooseframework.inl.gov
HomogenizedTotalLagrangianStressDivergenceS.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 HomogenizationS
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 
33 {
34 public:
37 
38 protected:
42  virtual void computeScalarResidual() override;
43 
47  virtual void computeScalarJacobian() override;
48 
53  virtual void computeScalarOffDiagJacobian(const unsigned int jvar_num) override;
54 
58  virtual Real computeScalarQpOffDiagJacobian(const unsigned int jvar_num) override;
59 
64  virtual void computeOffDiagJacobianScalarLocal(const unsigned int svar_num) override;
65 
69  virtual Real computeQpOffDiagJacobianScalar(const unsigned int svar_num) override;
70 
71 protected:
74 
77 
79  unsigned int _m;
80  unsigned int _n;
81  unsigned int _a;
82  unsigned int _b;
83 };
const MultiMooseEnum constraintType("strain stress none")
Moose constraint type, for input.
Enforce equilibrium with a total Lagrangian formulation.
unsigned int _m
Used internally to iterate over each scalar component.
HomogenizationS::ConstraintType _ctype
The constraint type; initialize with &#39;none&#39;.
virtual void computeScalarResidual() override
Method for computing the scalar part of residual for _kappa.
HomogenizationS::ConstraintMap _cmap
Type of each constraint (stress or strain) for each component.
virtual void computeScalarOffDiagJacobian(const unsigned int jvar_num) override
Method for computing an off-diagonal jacobian component d-_kappa-residual / d-jvar.
virtual Real computeQpOffDiagJacobianScalar(const unsigned int svar_num) override
Method for computing d-_var-residual / d-svar at quadrature points.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
ConstraintType
Constraint type: stress/PK stress or strain/deformation gradient.
virtual void computeOffDiagJacobianScalarLocal(const unsigned int svar_num) override
Method for computing an off-diagonal jacobian component d-_var-residual / d-svar. ...
virtual void computeScalarJacobian() override
Method for computing the scalar variable part of Jacobian for d-_kappa-residual / d-_kappa...
Total Lagrangian formulation with all homogenization terms (one disp_xyz field and macro_gradient sca...
virtual Real computeScalarQpOffDiagJacobian(const unsigned int jvar_num) override
Method for computing an off-diagonal jacobian component at quadrature points.
std::map< std::pair< unsigned int, unsigned int >, std::pair< ConstraintType, const Function * > > ConstraintMap