https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MooseTypes.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
12#include "Moose.h"
13#include "ADReal.h"
14#include "EigenADReal.h"
15#include "ChainedReal.h"
16#include "ChainedADReal.h"
22
23// This is not strictly needed here, but it used to be included by ADReal.h
24// so developers relied heavily on it being already available
25#include "MooseError.h"
26
27#include "libmesh/libmesh.h"
28#include "libmesh/id_types.h"
29#include "libmesh/stored_range.h"
30#include "libmesh/petsc_macro.h"
31#include "libmesh/boundary_info.h"
32#include "libmesh/parameters.h"
33#include "libmesh/dense_vector.h"
34#include "libmesh/dense_matrix.h"
35#include "libmesh/int_range.h"
36
37// BOOST include
38#include "boost/bitmask_operators.h"
39
40#include "libmesh/ignore_warnings.h"
41#include "Eigen/Core"
42#include "libmesh/restore_warnings.h"
43#include "libmesh/tensor_tools.h"
44
45#include "metaphysicl/ct_types.h"
46
47#include <string>
48#include <vector>
49#include <memory>
50#include <type_traits>
51#include <functional>
52#include <iterator> // std::data
53
54#if !defined(INCLUDE_NLOHMANN_JSON_HPP_) && !defined(MOOSE_NLOHMANN_INCLUDED)
55#undef INCLUDE_NLOHMANN_JSON_FWD_HPP_
56#include "nlohmann/json_fwd.h"
57#define MOOSE_NLOHMANN_INCLUDED
58#endif
59
60// DO NOT USE (Deprecated)
61#define MooseSharedPointer std::shared_ptr
62#define MooseSharedNamespace std
63
71// The multiple macros that you would need anyway [as per: Crazy Eddie (stack overflow)]
72#ifdef __clang__
73#pragma clang diagnostic push
74#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
75#endif
76
77#define beginIndex_0() ERROR-- > "beginIndex() requires one or two arguments"
78#define beginIndex_1(A) decltype(A.size())(0)
79#define beginIndex_2(A, B) decltype(A.size())(B)
80#define beginIndex_3(A, B, C) ERROR-- > "beginIndex() requires one or two arguments"
81#define beginIndex_4(A, B, C, D) ERROR-- > "beginIndex() requires one or two arguments"
82
83// The interim macro that simply strips the excess and ends up with the required macro
84#define beginIndex_X(x, A, B, C, D, FUNC, ...) FUNC
85
86// The macro that the programmer uses
87#define beginIndex(...) \
88 beginIndex_X(, \
89 ##__VA_ARGS__, \
90 beginIndex_4(__VA_ARGS__), \
91 beginIndex_3(__VA_ARGS__), \
92 beginIndex_2(__VA_ARGS__), \
93 beginIndex_1(__VA_ARGS__), \
94 beginIndex_0(__VA_ARGS__))
95
109#define MooseIndex(type) decltype(_MooseIndex(type, 0))
110
111// SFINAE templates for type MooseIndex type selection
112template <typename T, typename std::enable_if<std::is_integral<T>::value>::type * = nullptr>
113typename std::remove_const<T>::type
115{
116}
117
118template <typename T>
119decltype(std::declval<T>().size())
120_MooseIndex(T &&, int)
121{
122}
123
124template <typename T>
125decltype("NOTE: MooseIndex only works with integers and objects with size()!")
126_MooseIndex(T, double) = delete;
127
128#ifdef __clang__
129#pragma clang diagnostic pop
130#endif
131
135template <typename>
136class MooseArray;
137template <typename>
138class MaterialProperty;
139template <typename>
141class InputParameters;
142
143namespace libMesh
144{
146typedef Eigen::Matrix<Real, Moose::dim, 1> RealDIMValue;
147typedef Eigen::Matrix<Real, Eigen::Dynamic, 1> RealEigenVector;
148typedef Eigen::Matrix<ADReal, Eigen::Dynamic, 1> ADRealEigenVector;
149typedef Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim> RealVectorArrayValue;
150typedef Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim * Moose::dim> RealTensorArrayValue;
151typedef Eigen::Matrix<Real, Eigen::Dynamic, Eigen::Dynamic> RealEigenMatrix;
152typedef Eigen::Matrix<ADReal, Eigen::Dynamic, Eigen::Dynamic> ADRealEigenMatrix;
154
155namespace TensorTools
156{
157template <>
158struct IncrementRank<Eigen::Matrix<Real, Eigen::Dynamic, 1>>
159{
160 typedef Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim> type;
161};
162
163template <>
164struct IncrementRank<Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim>>
165{
166 typedef Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim * Moose::dim> type;
167};
168
169template <>
170struct DecrementRank<Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim>>
171{
172 typedef Eigen::Matrix<Real, Eigen::Dynamic, 1> type;
173};
174
175template <>
176struct IncrementRank<Eigen::Matrix<ADReal, Eigen::Dynamic, 1>>
177{
178 typedef Eigen::Matrix<ADReal, Eigen::Dynamic, Moose::dim> type;
179};
180
181template <>
182struct IncrementRank<Eigen::Matrix<ADReal, Eigen::Dynamic, Moose::dim>>
183{
184 typedef Eigen::Matrix<ADReal, Eigen::Dynamic, Moose::dim * Moose::dim> type;
185};
186
187template <>
188struct DecrementRank<Eigen::Matrix<ADReal, Eigen::Dynamic, Moose::dim>>
189{
190 typedef Eigen::Matrix<ADReal, Eigen::Dynamic, 1> type;
191};
192}
193}
194
195// Common types defined in libMesh
198
199// Bring these common types added to the libMesh namespace in this header
200// to global namespace
212
213namespace MetaPhysicL
214{
215template <typename U>
216struct ReplaceAlgebraicType<libMesh::RealEigenVector, U>
217{
218 typedef U type;
219};
220template <typename U>
221struct ReplaceAlgebraicType<libMesh::ADRealEigenVector, U>
222{
223 typedef U type;
224};
225}
226
231typedef std::vector<Real> VectorPostprocessorValue;
233typedef boundary_id_type BoundaryID;
234typedef unsigned int InterfaceID;
235typedef subdomain_id_type SubdomainID;
236typedef unsigned int MooseObjectID;
237typedef unsigned int THREAD_ID;
238typedef unsigned int TagID;
239typedef unsigned int TagTypeID;
240typedef unsigned int PerfID;
241typedef unsigned int InvalidSolutionID;
242using RestartableDataMapName = std::string; // see MooseApp.h
243
247
248namespace Moose
249{
250
258constexpr std::size_t constMaxQpsPerElem = 1000;
259
260// These are used by MooseVariableData and MooseVariableDataFV
262{
264 Old = 1,
265 Older = 2,
266 PreviousNL = -1
268
269enum class SolutionIterationType : unsigned short
270{
271 Time = 0,
272 Nonlinear,
275 // Special name for determing the total size of
276 // iteration types. If adding a new type, it should
277 // always be above this entry.
278 Count
279};
280
281// These are used by MooseVariableData and MooseVariableDataFV
287
288template <typename OutputType>
290{
291 typedef OutputType type;
292};
293template <>
294struct ShapeType<Eigen::Matrix<Real, Eigen::Dynamic, 1>>
295{
296 typedef Real type;
297};
298
299template <typename OutputType>
301{
302 typedef OutputType type;
303};
304template <>
305struct DOFType<RealVectorValue>
306{
307 typedef Real type;
308};
309} // namespace Moose
310
311template <typename OutputType>
313{
317
323
328
334
340
341 // DoF value type for the template class OutputType
344 typedef OutputType OutputValue;
345};
346
347// types for standard variable
363
364// types for vector variable
380
381// types for array variable
391typedef std::vector<std::vector<Eigen::Map<RealDIMValue>>> MappedArrayVariablePhiGradient;
400
404/*
405typedef typename OutputTools<ADRealEigenVector>::VariableTestValue ADArrayVariableTestValue;
406typedef typename OutputTools<ADRealEigenVector>::VariableTestGradient ADArrayVariableTestGradient;
407*/
424
425namespace Moose
426{
427
428// type conversion from regular to AD
429template <typename T>
430struct ADType
431{
432 // unless a specialization exists we assume there is no specific AD type
433 typedef T type;
434};
435
436template <>
437struct ADType<Real>
438{
439 typedef ADReal type;
440};
441template <>
443{
445};
446template <>
447struct ADType<Point>
448{
449 typedef ADPoint type;
450};
451
452template <>
453struct ADType<RealVectorValue>
454{
456};
457template <>
459{
461};
462template <>
467template <>
469{
471};
472
473template <>
478template <>
483
484template <template <typename T> class W, typename T>
485struct ADType<W<T>>
486{
487 typedef W<typename ADType<T>::type> type;
488};
489
490template <typename T>
491struct ADType<std::vector<T, std::allocator<T>>>
492{
493 typedef typename ADType<T>::type adT;
494 typedef std::vector<adT, std::allocator<adT>> type;
495};
496
497template <typename T>
498struct ADType<std::list<T, std::allocator<T>>>
499{
500 typedef typename ADType<T>::type adT;
501 typedef std::list<adT, std::allocator<adT>> type;
502};
503
504template <typename T>
505struct ADType<std::set<T, std::less<T>, std::allocator<T>>>
506{
507 typedef typename ADType<T>::type adT;
508 typedef std::set<adT, std::less<adT>, std::allocator<adT>> type;
509};
510
511template <typename T>
516
517template <typename T>
522
523template <>
524struct ADType<RealEigenVector>
525{
526 typedef ADRealEigenVector type;
527};
528
529template <>
530struct ADType<RealEigenMatrix>
531{
532 typedef ADRealEigenMatrix type;
533};
534
535template <>
537{
539};
540template <>
545template <>
547{
549};
550
551template <>
553{
554 typedef ADReal type;
555};
556template <>
558{
560};
561template <>
563{
565};
566template <>
571template <>
576
577template <>
582template <>
587
588template <>
590{
592};
593template <>
598template <>
603
604template <typename T>
606{
607 static constexpr bool value = false;
608};
609
610template <>
612{
613 static constexpr bool value = true;
614};
615
616template <>
618{
619 static constexpr bool value = true;
620};
621
622template <template <typename T, typename... Args> class W, typename T, typename... Args>
623struct IsADType<W<T, Args...>>
624{
625 static constexpr bool value = IsADType<T>::value;
626};
627
628template <typename T, typename... Args>
629struct IsADType<MetaPhysicL::DualNumber<T, Args...>>
630{
631 static constexpr bool value = true;
632};
633
639template <class... Ts>
640constexpr std::false_type always_false{};
641
642} // namespace Moose
643
650
651template <typename T>
654template <typename T>
657template <typename T>
660template <typename T>
662
669
670// We can use the non-ad version for test values because these don't depend on the mesh
671// displacements (unless the location of the quadrature points depend on the mesh displacements...)
672template <typename T>
674template <typename T>
676
677// We need to use the AD version for test gradients and seconds because these *do* depend on the
678// mesh displacements
679template <typename T>
682template <typename T>
685template <typename T>
689
690// Templated typed to support is_ad templated classes
691namespace Moose
692{
693template <typename T, bool is_ad>
694using GenericType = typename std::conditional<is_ad, typename ADType<T>::type, T>::type;
695}
696
697template <bool is_ad>
699template <bool is_ad>
701template <bool is_ad>
703template <bool is_ad>
705template <bool is_ad>
707template <bool is_ad>
709template <bool is_ad>
711template <bool is_ad>
713template <bool is_ad>
715template <bool is_ad>
717template <bool is_ad>
719template <bool is_ad>
721template <bool is_ad>
723template <bool is_ad>
725template <bool is_ad>
727
728namespace Moose
729{
730extern const processor_id_type INVALID_PROCESSOR_ID;
731extern const SubdomainID ANY_BLOCK_ID;
732extern const SubdomainID INVALID_BLOCK_ID;
733extern const BoundaryID ANY_BOUNDARY_ID;
735extern const TagID INVALID_TAG_ID;
736extern const TagTypeID INVALID_TAG_TYPE_ID;
737const std::set<SubdomainID> EMPTY_BLOCK_IDS = {};
738const std::set<BoundaryID> EMPTY_BOUNDARY_IDS = {};
739
753
758{
762 ALL = 3
764
774
783
790
796
802
810
816
823
824enum class MortarType : unsigned int
825{
826 Secondary = static_cast<unsigned int>(Moose::ElementType::Element),
827 Primary = static_cast<unsigned int>(Moose::ElementType::Neighbor),
828 Lower = static_cast<unsigned int>(Moose::ElementType::Lower)
829};
830
834enum class ComputeType
835{
836 Residual,
837 Jacobian,
839};
840
845enum class RESTARTABLE_FILTER : unsigned char
846{
848};
849
862
869
880
892
904
920
934
952
967
992
1002
1013
1017enum class RelationshipManagerType : unsigned char
1018{
1019 DEFAULT = 0,
1020 GEOMETRIC = 1 << 0,
1021 ALGEBRAIC = 1 << 1,
1022 COUPLING = 1 << 2
1023};
1024
1031
1038
1042typedef std::function<void(const InputParameters &, InputParameters &)>
1044
1045std::string stringify(const Moose::RelationshipManagerType & t);
1046std::string stringify(const Moose::TimeIntegratorType & t);
1047
1052{
1053};
1054
1064template <typename T>
1065class Span
1066{
1067public:
1068 using element_type = T;
1069 using size_type = std::size_t;
1070 using pointer = T *;
1071 using reference = T &;
1072
1073 constexpr Span(T * ptr, size_type n) noexcept : _ptr(ptr), _n(n) {}
1074
1075 // observers (enough for std::data / std::size)
1076 constexpr pointer data() const noexcept { return _ptr; }
1077 constexpr size_type size() const noexcept { return _n; }
1078 constexpr bool empty() const noexcept { return _n == 0; }
1079
1080 // optional element/iterator access
1081 constexpr reference operator[](size_type i) const noexcept { return _ptr[i]; }
1082 constexpr pointer begin() const noexcept { return _ptr; }
1083 constexpr pointer end() const noexcept { return _ptr + _n; }
1084
1085private:
1086 T * _ptr;
1088};
1089
1093template <class C>
1094auto
1095makeSpan(C & container, std::size_t offset, std::size_t n)
1096{
1097 using PointerType = decltype(std::data(container));
1098 using ElementType = std::remove_pointer_t<PointerType>;
1099 return Moose::Span<ElementType>{std::data(container) + offset, n};
1100}
1101} // namespace Moose
1102
1103namespace libMesh
1104{
1105template <>
1106inline void
1107print_helper(std::ostream & os, const Moose::RelationshipManagerType * param)
1108{
1109 // Specialization so that we don't print out unprintable characters
1110 os << Moose::stringify(*param);
1111}
1112} // namespace libMesh
1113
1114template <>
1115struct enable_bitmask_operators<Moose::RelationshipManagerType>
1116{
1117 static const bool enable = true;
1118};
1119
1128#define MooseDerivativeStringClass(TheName) \
1129 class TheName : public std::string, public Moose::DerivativeStringClass \
1130 { \
1131 public: \
1132 TheName() : std::string() {} \
1133 TheName(const std::string & str) : std::string(str) {} \
1134 TheName(const std::string & str, size_t pos, size_t n = npos) : std::string(str, pos, n) {} \
1135 TheName(const char * s, size_t n) : std::string(s, n) {} \
1136 TheName(const char * s) : std::string(s) {} \
1137 TheName(size_t n, char c) : std::string(n, c) {} \
1138 }; \
1139 namespace nlohmann \
1140 { \
1141 template <> \
1142 struct adl_serializer<TheName> \
1143 { \
1144 static void to_json(json & j, const TheName & v); \
1145 }; \
1146 } \
1147 static_assert(true, "")
1148
1149// Instantiate new Types
1150
1155
1157MooseDerivativeStringClass(FileNameNoExtension);
1158
1162
1166
1169
1172
1175
1177MooseDerivativeStringClass(NonlinearVariableName);
1178
1180MooseDerivativeStringClass(LinearVariableName);
1181
1183MooseDerivativeStringClass(SolverVariableName);
1184
1187
1190
1193
1196
1199
1201MooseDerivativeStringClass(VectorPostprocessorName);
1202
1205
1208
1211
1214
1217
1219MooseDerivativeStringClass(InterpolationMethodName);
1220
1223
1226
1229
1232
1234MooseDerivativeStringClass(MaterialPropertyName);
1235
1238
1241
1244
1247
1249MooseDerivativeStringClass(ExtraElementIDName);
1250
1253
1256
1259
1262
1265
1268
1270MooseDerivativeStringClass(ParsedFunctionExpression);
1271
1273MooseDerivativeStringClass(NonlinearSystemName);
1274
1277
1280
1283
1286
1287#ifdef MOOSE_MFEM_ENABLED
1292MooseDerivativeStringClass(MFEMScalarCoefficientName);
1293MooseDerivativeStringClass(MFEMVectorCoefficientName);
1294MooseDerivativeStringClass(MFEMMatrixCoefficientName);
1298#endif
1302typedef std::vector<VariableName> CoupledName;
1303
1304namespace Moose
1305{
1306extern const TagName SOLUTION_TAG;
1307extern const TagName OLD_SOLUTION_TAG;
1308extern const TagName OLDER_SOLUTION_TAG;
1309extern const TagName PREVIOUS_NL_SOLUTION_TAG;
1310extern const TagName PREVIOUS_MULTIAPP_FP_SOLUTION_TAG;
1311extern const TagName PREVIOUS_MULTISYSTEM_FP_SOLUTION_TAG;
1312extern const TagName SOLUTION_DOT_TAG;
1313extern const TagName SOLUTION_DOTDOT_TAG;
1314
1315enum class FEBackend
1316{
1317 LibMesh
1318#ifdef MOOSE_MFEM_ENABLED
1319 ,
1320 MFEM
1321#endif
1322};
1323
1324#ifdef MOOSE_KOKKOS_ENABLED
1325namespace Kokkos
1326{
1327// Passkey for calling special constructors for functor copy
1329{
1330 friend class ResidualObject;
1332 friend class KernelBase;
1333 friend class NodalKernelBase;
1334 friend class BoundaryCondition;
1335 friend class LinearFVKernel;
1337 friend class IntegratedBCBase;
1338 friend class NodalBCBase;
1339 friend class MaterialBase;
1340 friend class Material;
1341 friend class AuxKernel;
1342 friend class FunctionBase;
1343 friend class UserObject;
1344 friend class ElementUserObject;
1345 friend class NodalUserObject;
1346 friend class SideUserObject;
1347 friend class GeneralUserObject;
1348 friend class ElementReducer;
1349 friend class NodalReducer;
1350 friend class SideReducer;
1351 friend class Postprocessor;
1353 friend class Reporter;
1354
1357};
1358}
1359#endif
1360}
1361
1363#define usingTensorIndices(...) \
1364 enum \
1365 { \
1366 __VA_ARGS__ \
1367 }
DualNumber< Real, DNDerivativeType, true > ADReal
boundary_id_type BoundaryID
DualNumber< ADReal, ADReal > ChainedADReal
DualNumber< Real, Real > ChainedReal
Definition ChainedReal.h:30
OutputTools< RealVectorValue >::VariablePhiValue VectorVariablePhiValue
Definition MooseTypes.h:370
OutputTools< Real >::VariablePhiValue VariablePhiValue
Definition MooseTypes.h:353
typename OutputTools< T >::VariablePhiValue ADTemplateVariablePhiValue
Definition MooseTypes.h:675
libMesh::VectorValue< ADReal > ADRealVectorValue
AD Array typedefs.
Definition MooseTypes.h:411
VectorVariableTestSecond ADVectorVariableTestSecond
Definition MooseTypes.h:668
OutputTools< RealEigenVector >::VariableCurl ArrayVariableCurl
Definition MooseTypes.h:387
OutputTools< RealVectorValue >::VariableCurl VectorVariableCurl
Definition MooseTypes.h:368
OutputTools< RealEigenVector >::VariableDivergence ArrayVariableDivergence
Definition MooseTypes.h:388
OutputTools< ADRealEigenVector >::VariableGradient ADArrayVariableGradient
Definition MooseTypes.h:385
MooseArray< ADReal > ADVariableValue
Definition MooseTypes.h:417
VariableTestValue ADVariableTestValue
Definition MooseTypes.h:663
VariableTestGradient ADVariableTestGradient
Definition MooseTypes.h:664
OutputTools< RealVectorValue >::VariablePhiCurl VectorVariablePhiCurl
Definition MooseTypes.h:373
OutputTools< Real >::VariableTestCurl VariableTestCurl
Definition MooseTypes.h:361
unsigned int MooseObjectID
Definition MooseTypes.h:236
OutputTools< Real >::VariablePhiCurl VariablePhiCurl
Definition MooseTypes.h:356
OutputTools< Real >::VariableTestValue VariableTestValue
Definition MooseTypes.h:358
OutputTools< Real >::VariableGradient VariableGradient
Definition MooseTypes.h:349
VectorVariableTestValue ADVectorVariableTestValue
Definition MooseTypes.h:666
OutputTools< RealVectorValue >::VariableTestValue VectorVariableTestValue
Definition MooseTypes.h:375
OutputTools< RealEigenVector >::VariablePhiGradient ArrayVariablePhiGradient
Definition MooseTypes.h:390
unsigned int TagID
Definition MooseTypes.h:238
libMesh::TensorValue< ADReal > ADRealTensorValue
Definition MooseTypes.h:414
MooseDerivativeStringClass(FileName)
This type is for expected (i.e.
OutputTools< RealEigenVector >::VariableValue ArrayVariableValue
Definition MooseTypes.h:382
Moose::GenericType< VariableValue, is_ad > GenericVariableValue
Definition MooseTypes.h:712
Moose::GenericType< VectorVariableValue, is_ad > GenericVectorVariableValue
Definition MooseTypes.h:714
OutputTools< Real >::VariableTestGradient VariableTestGradient
Definition MooseTypes.h:359
Real ScatterVectorPostprocessorValue
Definition MooseTypes.h:232
Moose::GenericType< VariableSecond, is_ad > GenericVariableSecond
Definition MooseTypes.h:718
std::string RestartableDataMapName
Definition MooseTypes.h:242
std::vector< VariableName > CoupledName
additional MOOSE typedefs
OutputTools< RealEigenVector >::VariablePhiCurl ArrayVariablePhiCurl
Definition MooseTypes.h:393
unsigned int InvalidSolutionID
Definition MooseTypes.h:241
OutputTools< RealEigenVector >::VariablePhiValue ArrayVariablePhiValue
Definition MooseTypes.h:389
OutputTools< Real >::VariableValue VariableValue
Definition MooseTypes.h:348
Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
Definition MooseTypes.h:710
OutputTools< RealVectorValue >::VariableDivergence VectorVariableDivergence
Definition MooseTypes.h:369
Moose::GenericType< RealEigenVector, is_ad > GenericRealEigenVector
Definition MooseTypes.h:724
libMesh::DenseVector< ADReal > ADDenseVector
Definition MooseTypes.h:416
OutputTools< Real >::VariablePhiGradient VariablePhiGradient
Definition MooseTypes.h:354
MooseArray< libMesh::TypeNTensor< 3, ADReal > > ADVectorVariableSecond
Definition MooseTypes.h:422
unsigned int InterfaceID
Definition MooseTypes.h:234
OutputTools< RealVectorValue >::VariableTestCurl VectorVariableTestCurl
Definition MooseTypes.h:378
libMesh::StoredRange< std::vector< const Elem * >::iterator, const Elem * > ConstElemPointerRange
Definition MooseTypes.h:246
OutputTools< ADRealEigenVector >::VariableValue ADArrayVariableValue
Definition MooseTypes.h:383
Moose::GenericType< DenseVector< Real >, is_ad > GenericDenseVector
Definition MooseTypes.h:720
OutputTools< RealVectorValue >::VariableTestDivergence VectorVariableTestDivergence
Definition MooseTypes.h:379
OutputTools< RealEigenVector >::VariableTestGradient ArrayVariableTestGradient
Definition MooseTypes.h:396
typename OutputTools< typename Moose::ADType< T >::type >::VariableSecond ADTemplateVariableSecond
Definition MooseTypes.h:659
Real PostprocessorValue
various MOOSE typedefs
Definition MooseTypes.h:230
OutputTools< RealEigenVector >::VariableTestSecond ArrayVariableTestSecond
Definition MooseTypes.h:397
OutputTools< Real >::VariableDivergence VariableDivergence
Definition MooseTypes.h:352
libMesh::VectorValue< ADReal > ADPoint
Definition MooseTypes.h:413
typename OutputTools< typename Moose::ADType< T >::type >::VariableValue ADTemplateVariableValue
Definition MooseTypes.h:653
VectorVariableTestGradient ADVectorVariableTestGradient
Definition MooseTypes.h:667
MooseArray< ADRealTensorValue > ADVariableSecond
Definition MooseTypes.h:419
std::vector< std::vector< Eigen::Map< RealDIMValue > > > MappedArrayVariablePhiGradient
Definition MooseTypes.h:391
Moose::GenericType< VariableGradient, is_ad > GenericVariableGradient
Definition MooseTypes.h:716
typename OutputTools< typename Moose::ADType< T >::type >::VariablePhiGradient ADTemplateVariablePhiGradient
Definition MooseTypes.h:687
OutputTools< RealEigenVector >::VariableTestDivergence ArrayVariableTestDivergence
Definition MooseTypes.h:399
OutputTools< RealVectorValue >::VariableTestGradient VectorVariableTestGradient
Definition MooseTypes.h:376
typename OutputTools< T >::VariableTestValue ADTemplateVariableTestValue
Definition MooseTypes.h:673
Moose::GenericType< Real, is_ad > GenericReal
Definition MooseTypes.h:698
Moose::GenericType< RealTensorValue, is_ad > GenericRealTensorValue
Definition MooseTypes.h:704
libMesh::DenseMatrix< ADReal > ADDenseMatrix
Definition MooseTypes.h:415
Moose::GenericType< RankThreeTensor, is_ad > GenericRankThreeTensor
Definition MooseTypes.h:708
Moose::GenericType< ChainedReal, is_ad > GenericChainedReal
Definition MooseTypes.h:700
OutputTools< RealEigenVector >::VariableGradient ArrayVariableGradient
Definition MooseTypes.h:384
MooseArray< ADRealVectorValue > ADVectorVariableValue
Definition MooseTypes.h:420
OutputTools< Real >::VariableSecond VariableSecond
Definition MooseTypes.h:350
Moose::GenericType< RealEigenMatrix, is_ad > GenericRealEigenMatrix
Definition MooseTypes.h:726
typename OutputTools< typename Moose::ADType< T >::type >::VariableTestGradient ADTemplateVariableTestGradient
Definition MooseTypes.h:681
Moose::GenericType< RealVectorValue, is_ad > GenericRealVectorValue
Definition MooseTypes.h:702
unsigned int PerfID
Definition MooseTypes.h:240
typename OutputTools< typename Moose::ADType< T >::type >::VariableCurl ADTemplateVariableCurl
Definition MooseTypes.h:661
OutputTools< RealVectorValue >::VariableSecond VectorVariableSecond
Definition MooseTypes.h:367
OutputTools< RealEigenVector >::VariableTestValue ArrayVariableTestValue
Definition MooseTypes.h:395
OutputTools< RealEigenVector >::VariablePhiSecond ArrayVariablePhiSecond
Definition MooseTypes.h:392
OutputTools< RealEigenVector >::VariableTestCurl ArrayVariableTestCurl
Definition MooseTypes.h:398
typename OutputTools< typename Moose::ADType< T >::type >::VariableTestSecond ADTemplateVariableTestSecond
Definition MooseTypes.h:684
ADTemplateVariablePhiGradient< Real > ADVariablePhiGradient
Definition MooseTypes.h:688
VariableTestSecond ADVariableTestSecond
Definition MooseTypes.h:665
OutputTools< RealVectorValue >::VariableGradient VectorVariableGradient
Definition MooseTypes.h:366
MooseArray< ADRealTensorValue > ADVectorVariableGradient
Definition MooseTypes.h:421
OutputTools< RealVectorValue >::VariableTestSecond VectorVariableTestSecond
Definition MooseTypes.h:377
OutputTools< RealVectorValue >::VariablePhiSecond VectorVariablePhiSecond
Definition MooseTypes.h:372
boundary_id_type BoundaryID
Definition MooseTypes.h:233
OutputTools< Real >::VariableTestSecond VariableTestSecond
Definition MooseTypes.h:360
Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
Definition MooseTypes.h:706
unsigned int THREAD_ID
Definition MooseTypes.h:237
std::vector< Real > VectorPostprocessorValue
Definition MooseTypes.h:231
ADRealVectorValue ADRealGradient
Definition MooseTypes.h:412
unsigned int TagTypeID
Definition MooseTypes.h:239
typename OutputTools< typename Moose::ADType< T >::type >::VariableGradient ADTemplateVariableGradient
Definition MooseTypes.h:656
OutputTools< RealVectorValue >::VariablePhiDivergence VectorVariablePhiDivergence
Definition MooseTypes.h:374
Moose::GenericType< DenseMatrix< Real >, is_ad > GenericDenseMatrix
Definition MooseTypes.h:722
libMesh::StoredRange< std::vector< dof_id_type >::iterator, dof_id_type > NodeIdRange
Definition MooseTypes.h:244
MooseArray< ADRealVectorValue > ADVectorVariableCurl
Definition MooseTypes.h:423
OutputTools< Real >::VariablePhiSecond VariablePhiSecond
Definition MooseTypes.h:355
std::remove_const< T >::type _MooseIndex(T, int)
Definition MooseTypes.h:114
OutputTools< RealVectorValue >::VariableValue VectorVariableValue
Definition MooseTypes.h:365
OutputTools< Real >::VariableTestDivergence VariableTestDivergence
Definition MooseTypes.h:362
OutputTools< RealEigenVector >::VariableSecond ArrayVariableSecond
Definition MooseTypes.h:386
MooseArray< ADRealVectorValue > ADVariableGradient
Definition MooseTypes.h:418
OutputTools< Real >::VariableCurl VariableCurl
Definition MooseTypes.h:351
OutputTools< Real >::VariablePhiDivergence VariablePhiDivergence
Definition MooseTypes.h:357
subdomain_id_type SubdomainID
Definition MooseTypes.h:235
OutputTools< RealEigenVector >::VariablePhiDivergence ArrayVariablePhiDivergence
Definition MooseTypes.h:394
OutputTools< RealVectorValue >::VariablePhiGradient VectorVariablePhiGradient
Definition MooseTypes.h:371
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
forward declarations
Definition MooseArray.h:18
The base class for a user to derive their own Kokkos auxiliary kernels.
The base class for Kokkos boundary conditions.
The base class for a user to derive their own Kokkos functions.
FunctorCopy(const FunctorCopy &)
The base class for Kokkos integrated boundary conditions.
The base class for Kokkos kernels.
Base class for Kokkos linear finite volume boundary conditions.
Base class for Kokkos linear finite volume kernels that contribute to the linear system.
Base class for Kokkos objects that contribute to a linear system, i.e.
The base class for Kokkos materials.
The base class for a user to derive their own Kokkos materials.
The base class for Kokkos nodal boundary conditions.
The base class for Kokkos nodal kernels.
The base class for Kokkos residual objects.
Replacement for std::span which we only get in c++20.
constexpr reference operator[](size_type i) const noexcept
constexpr bool empty() const noexcept
size_type _n
constexpr pointer begin() const noexcept
constexpr Span(T *ptr, size_type n) noexcept
constexpr pointer data() const noexcept
constexpr pointer end() const noexcept
constexpr size_type size() const noexcept
std::size_t size_type
RankFourTensorTempl is designed to handle any N-dimensional fourth order tensor, C.
RankThreeTensor is designed to handle any N-dimensional third order tensor, r.
SymmetricRankFourTensorTempl is designed to handle an N-dimensional fourth order tensor with minor sy...
Definition JsonIO.h:69
We need to instantiate the following CompareTypes to tell the compiler that ADReal is a subtype of Ch...
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
constexpr std::false_type always_false
This is a helper variable template for cases when we want to use a default compile-time error with co...
Definition MooseTypes.h:640
const TagName SOLUTION_DOTDOT_TAG
Definition MooseTypes.C:32
ComputeType
The type of nonlinear computation being performed.
Definition MooseTypes.h:835
PCSideType
Preconditioning side.
Definition MooseTypes.h:874
@ PCS_LEFT
Definition MooseTypes.h:875
@ PCS_DEFAULT
Use whatever we have in PETSc.
Definition MooseTypes.h:878
@ PCS_SYMMETRIC
Definition MooseTypes.h:877
@ PCS_RIGHT
Definition MooseTypes.h:876
@ AUXILIARY
@ NONLINEAR
SolveType
Type of the solve.
Definition MooseTypes.h:897
@ ST_FD
Use finite differences to compute Jacobian.
Definition MooseTypes.h:901
@ ST_LINEAR
Solving a linear problem.
Definition MooseTypes.h:902
@ ST_NEWTON
Full Newton Solve.
Definition MooseTypes.h:900
@ ST_JFNK
Jacobian-Free Newton Krylov.
Definition MooseTypes.h:899
@ ST_PJFNK
Preconditioned Jacobian-Free Newton Krylov.
Definition MooseTypes.h:898
ConstraintFormulationType
Type of constraint formulation.
Definition MooseTypes.h:972
@ Penalty
Definition MooseTypes.h:973
@ Kinematic
Definition MooseTypes.h:974
@ VAR_FIELD_SCALAR
Definition MooseTypes.h:778
@ VAR_FIELD_STANDARD
Definition MooseTypes.h:777
@ VAR_FIELD_ARRAY
Definition MooseTypes.h:780
@ VAR_FIELD_ANY
Definition MooseTypes.h:781
@ VAR_FIELD_VECTOR
Definition MooseTypes.h:779
DGResidualType
Definition MooseTypes.h:798
@ Element
Definition MooseTypes.h:799
@ Neighbor
Definition MooseTypes.h:800
AuxGroup
Flag for AuxKernel related execution type.
Definition MooseTypes.h:758
@ POST_AUX
Definition MooseTypes.h:761
@ PRE_AUX
Definition MooseTypes.h:760
constexpr std::size_t constMaxQpsPerElem
This is used for places where we initialize some qp-sized data structures that would end up being siz...
Definition MooseTypes.h:258
const TagID INVALID_TAG_ID
Definition MooseTypes.C:23
MooseKSPNormType
Norm type for converge test.
Definition MooseTypes.h:885
@ KSPN_NONE
Definition MooseTypes.h:886
@ KSPN_PRECONDITIONED
Definition MooseTypes.h:887
@ KSPN_UNPRECONDITIONED
Definition MooseTypes.h:888
@ KSPN_DEFAULT
Use whatever we have in PETSc.
Definition MooseTypes.h:890
@ KSPN_NATURAL
Definition MooseTypes.h:889
const TagName PREVIOUS_MULTISYSTEM_FP_SOLUTION_TAG
Definition MooseTypes.C:30
const TagName OLDER_SOLUTION_TAG
Definition MooseTypes.C:27
ConstraintType
Definition MooseTypes.h:812
@ Primary
Definition MooseTypes.h:814
@ Secondary
Definition MooseTypes.h:813
ConstraintJacobianType
Definition MooseTypes.h:851
@ LowerLower
Definition MooseTypes.h:856
@ SecondarySecondary
Definition MooseTypes.h:852
@ PrimaryLower
Definition MooseTypes.h:860
@ LowerSecondary
Definition MooseTypes.h:857
@ LowerPrimary
Definition MooseTypes.h:858
@ SecondaryPrimary
Definition MooseTypes.h:853
@ PrimarySecondary
Definition MooseTypes.h:854
@ PrimaryPrimary
Definition MooseTypes.h:855
@ SecondaryLower
Definition MooseTypes.h:859
const TagName SOLUTION_DOT_TAG
Definition MooseTypes.C:31
TimeIntegratorType
Time integrators.
Definition MooseTypes.h:957
@ TI_EXPLICIT_EULER
Definition MooseTypes.h:959
@ TI_EXPLICIT_TVD_RK_2
Definition MooseTypes.h:964
@ TI_EXPLICIT_MIDPOINT
Definition MooseTypes.h:962
@ TI_NEWMARK_BETA
Definition MooseTypes.h:965
@ TI_IMPLICIT_EULER
Definition MooseTypes.h:958
@ TI_CRANK_NICOLSON
Definition MooseTypes.h:960
@ TI_BDF2
Definition MooseTypes.h:961
@ TI_LSTABLE_DIRK2
Definition MooseTypes.h:963
const SubdomainID ANY_BLOCK_ID
Definition MooseTypes.C:19
const std::set< SubdomainID > EMPTY_BLOCK_IDS
Definition MooseTypes.h:737
auto makeSpan(C &container, std::size_t offset, std::size_t n)
Helper function for creating a span from a given container.
LineSearchType
Type of the line search.
Definition MooseTypes.h:980
@ LS_DEFAULT
Definition MooseTypes.h:982
@ LS_NONE
Definition MooseTypes.h:983
@ LS_PROJECT
Definition MooseTypes.h:987
@ LS_CONTACT
Definition MooseTypes.h:986
@ LS_SHELL
Definition MooseTypes.h:985
@ LS_BASIC
Definition MooseTypes.h:984
@ LS_INVALID
means not set
Definition MooseTypes.h:981
@ VECTOR_TAG_SOLUTION
@ VECTOR_TAG_ANY
@ VECTOR_TAG_RESIDUAL
std::function< void(const InputParameters &, InputParameters &)> RelationshipManagerInputParameterCallback
The type for the callback to set RelationshipManager parameters.
PatchUpdateType
Type of patch update strategy for modeling node-face constraints or contact.
@ Iteration
const TagName PREVIOUS_NL_SOLUTION_TAG
Definition MooseTypes.C:28
const TagName PREVIOUS_MULTIAPP_FP_SOLUTION_TAG
Definition MooseTypes.C:29
const TagTypeID INVALID_TAG_TYPE_ID
Definition MooseTypes.C:24
SolutionState
Definition MooseTypes.h:262
@ Current
Definition MooseTypes.h:263
@ PreviousNL
Definition MooseTypes.h:266
std::string stringify(const T &t)
conversion to string
Definition Conversion.h:64
RelationshipManagerType
Main types of Relationship Managers.
CoordinateSystemType
Definition MooseTypes.h:864
@ COORD_RZ
Definition MooseTypes.h:866
@ COORD_RSPHERICAL
Definition MooseTypes.h:867
@ COORD_XYZ
Definition MooseTypes.h:865
MaterialDataType
MaterialData types.
Definition MooseTypes.h:746
@ NEIGHBOR_MATERIAL_DATA
Definition MooseTypes.h:750
@ BOUNDARY_MATERIAL_DATA
Definition MooseTypes.h:748
@ INTERFACE_MATERIAL_DATA
Definition MooseTypes.h:751
@ BLOCK_MATERIAL_DATA
Definition MooseTypes.h:747
@ FACE_MATERIAL_DATA
Definition MooseTypes.h:749
const TagName OLD_SOLUTION_TAG
Definition MooseTypes.C:26
const std::set< BoundaryID > EMPTY_BOUNDARY_IDS
Definition MooseTypes.h:738
const processor_id_type INVALID_PROCESSOR_ID
Definition MooseTypes.C:18
const BoundaryID INVALID_BOUNDARY_ID
Definition MooseTypes.C:22
SolutionIterationType
Definition MooseTypes.h:270
@ COUPLING_FULL
Definition MooseTypes.h:787
@ COUPLING_DIAG
Definition MooseTypes.h:786
@ COUPLING_CUSTOM
Definition MooseTypes.h:788
VarKindType
Framework-wide stuff.
Definition MooseTypes.h:769
@ VAR_ANY
Definition MooseTypes.h:772
@ VAR_AUXILIARY
Definition MooseTypes.h:771
@ VAR_SOLVER
Definition MooseTypes.h:770
WhichEigenPairs
Which eigen pairs.
Definition MooseTypes.h:939
@ WEP_TARGET_MAGNITUDE
target magnitude
Definition MooseTypes.h:946
@ WEP_LARGEST_IMAGINARY
largest imaginary
Definition MooseTypes.h:944
@ WEP_TARGET_IMAGINARY
target imaginary
Definition MooseTypes.h:948
@ WEP_SMALLEST_REAL
smallest real
Definition MooseTypes.h:943
@ WEP_SLEPC_DEFAULT
use whatever we have in SLEPC
Definition MooseTypes.h:950
@ WEP_LARGEST_MAGNITUDE
largest magnitude
Definition MooseTypes.h:940
@ WEP_SMALLEST_MAGNITUDE
smallest magnitude
Definition MooseTypes.h:941
@ WEP_ALL_EIGENVALUES
all eigenvalues
Definition MooseTypes.h:949
@ WEP_SMALLEST_IMAGINARY
smallest imaginary
Definition MooseTypes.h:945
@ WEP_TARGET_REAL
target real
Definition MooseTypes.h:947
@ WEP_LARGEST_REAL
largest real
Definition MooseTypes.h:942
typename std::conditional< is_ad, typename ADType< T >::type, T >::type GenericType
Definition MooseTypes.h:694
RESTARTABLE_FILTER
The filter type applied to a particular piece of "restartable" data.
Definition MooseTypes.h:846
const SubdomainID INVALID_BLOCK_ID
Definition MooseTypes.C:20
const TagName SOLUTION_TAG
Definition MooseTypes.C:25
const BoundaryID ANY_BOUNDARY_ID
Definition MooseTypes.C:21
EigenSolveType
Type of the eigen solve.
Definition MooseTypes.h:909
@ EST_PJFNKMO
The same as PJFNK except that matrix-vector multiplication is employed to replace residual evaluation...
Definition MooseTypes.h:917
@ EST_JACOBI_DAVIDSON
Jacobi-Davidson.
Definition MooseTypes.h:913
@ EST_KRYLOVSCHUR
Krylov-Schur.
Definition MooseTypes.h:912
@ EST_JFNK
Jacobian-free Newton Krylov.
Definition MooseTypes.h:918
@ EST_NEWTON
Newton-based eigensolver with an assembled Jacobian matrix (fully coupled by default)
Definition MooseTypes.h:915
@ EST_POWER
Power / Inverse / RQI.
Definition MooseTypes.h:910
@ EST_NONLINEAR_POWER
Nonlinear inverse power.
Definition MooseTypes.h:914
@ EST_ARNOLDI
Arnoldi.
Definition MooseTypes.h:911
@ EST_PJFNK
Preconditioned Jacobian-free Newton Krylov.
Definition MooseTypes.h:916
ConstraintSideType
Definition MooseTypes.h:792
@ SIDE_SECONDARY
Definition MooseTypes.h:794
@ SIDE_PRIMARY
Definition MooseTypes.h:793
DGJacobianType
Definition MooseTypes.h:804
@ NeighborNeighbor
Definition MooseTypes.h:808
@ ElementElement
Definition MooseTypes.h:805
@ NeighborElement
Definition MooseTypes.h:807
@ ElementNeighbor
Definition MooseTypes.h:806
EigenProblemType
Type of the eigen problem.
Definition MooseTypes.h:925
@ EPT_GEN_INDEFINITE
Generalized Hermitian indefinite.
Definition MooseTypes.h:929
@ EPT_NON_HERMITIAN
Non-Hermitian.
Definition MooseTypes.h:927
@ EPT_GEN_HERMITIAN
Generalized Hermitian.
Definition MooseTypes.h:928
@ EPT_HERMITIAN
Hermitian.
Definition MooseTypes.h:926
@ EPT_GEN_NON_HERMITIAN
Generalized Non-Hermitian.
Definition MooseTypes.h:930
@ EPT_POS_GEN_NON_HERMITIAN
Generalized Non-Hermitian with positive (semi-)definite B.
Definition MooseTypes.h:931
@ EPT_SLEPC_DEFAULT
use whatever SLPEC has by default
Definition MooseTypes.h:932
MffdType
Type of the matrix-free finite-differencing parameter.
Definition MooseTypes.h:997
@ MFFD_WP
Definition MooseTypes.h:999
@ MFFD_INVALID
means not set
Definition MooseTypes.h:998
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Eigen::Matrix< ADReal, Eigen::Dynamic, 1 > ADRealEigenVector
Definition MooseTypes.h:148
Eigen::Matrix< Real, Moose::dim, 1 > RealDIMValue
Definition MooseTypes.h:146
Eigen::Matrix< Real, Eigen::Dynamic, Moose::dim > RealVectorArrayValue
Definition MooseTypes.h:149
TensorValue< Real > RealTensorValue
void print_helper(std::ostream &os, const P *param)
Eigen::Matrix< Real, Eigen::Dynamic, Eigen::Dynamic > RealEigenMatrix
Definition MooseTypes.h:151
VectorValue< Real > RealVectorValue
Definition SubProblem.h:34
Eigen::Matrix< Real, Eigen::Dynamic, 1 > RealEigenVector
Definition MooseTypes.h:147
Eigen::Matrix< Real, Eigen::Dynamic, Moose::dim *Moose::dim > RealTensorArrayValue
Definition MooseTypes.h:150
Eigen::Matrix< ADReal, Eigen::Dynamic, Eigen::Dynamic > ADRealEigenMatrix
Definition MooseTypes.h:152
DenseMatrix< typename ADType< T >::type > type
Definition MooseTypes.h:520
DenseVector< typename ADType< T >::type > type
Definition MooseTypes.h:514
W< typename ADType< T >::type > type
Definition MooseTypes.h:487
std::list< adT, std::allocator< adT > > type
Definition MooseTypes.h:501
std::set< adT, std::less< adT >, std::allocator< adT > > type
Definition MooseTypes.h:508
std::vector< adT, std::allocator< adT > > type
Definition MooseTypes.h:494
OutputType type
Definition MooseTypes.h:302
Struct that all MOOSE derivative strings derive from.
static constexpr bool value
Definition MooseTypes.h:607
OutputType type
Definition MooseTypes.h:291
libMesh::TensorTools::IncrementRank< OutputShape >::type OutputShapeGradient
Definition MooseTypes.h:325
libMesh::TensorTools::IncrementRank< OutputGradient >::type OutputSecond
Definition MooseTypes.h:315
MooseArray< OutputSecond > VariableSecond
Definition MooseTypes.h:320
MooseArray< std::vector< OutputShape > > VariablePhiCurl
Definition MooseTypes.h:332
Moose::ShapeType< OutputType >::type OutputShape
Definition MooseTypes.h:324
MooseArray< OutputType > VariableValue
Definition MooseTypes.h:318
OutputType OutputValue
Definition MooseTypes.h:344
MooseArray< std::vector< OutputShapeGradient > > VariablePhiGradient
Definition MooseTypes.h:330
MooseArray< OutputDivergence > VariableDivergence
Definition MooseTypes.h:322
libMesh::TensorTools::IncrementRank< OutputShapeGradient >::type OutputShapeSecond
Definition MooseTypes.h:326
libMesh::TensorTools::DecrementRank< OutputType >::type OutputDivergence
Definition MooseTypes.h:316
MooseArray< std::vector< OutputShapeSecond > > VariableTestSecond
Definition MooseTypes.h:337
Moose::DOFType< OutputType >::type OutputData
Definition MooseTypes.h:342
MooseArray< std::vector< OutputShapeGradient > > VariableTestGradient
Definition MooseTypes.h:336
MooseArray< std::vector< OutputShapeDivergence > > VariablePhiDivergence
Definition MooseTypes.h:333
libMesh::TensorTools::IncrementRank< OutputType >::type OutputGradient
Definition MooseTypes.h:314
MooseArray< std::vector< OutputShapeDivergence > > VariableTestDivergence
Definition MooseTypes.h:339
MooseArray< OutputData > DofValue
Definition MooseTypes.h:343
MooseArray< std::vector< OutputShape > > VariableTestValue
Definition MooseTypes.h:335
MooseArray< std::vector< OutputShape > > VariableTestCurl
Definition MooseTypes.h:338
MooseArray< std::vector< OutputShape > > VariablePhiValue
Definition MooseTypes.h:329
libMesh::TensorTools::DecrementRank< OutputShape >::type OutputShapeDivergence
Definition MooseTypes.h:327
MooseArray< std::vector< OutputShapeSecond > > VariablePhiSecond
Definition MooseTypes.h:331
MooseArray< OutputType > VariableCurl
Definition MooseTypes.h:321
MooseArray< OutputGradient > VariableGradient
Definition MooseTypes.h:319
Eigen::Matrix< ADReal, Eigen::Dynamic, Moose::dim *Moose::dim > type
Definition MooseTypes.h:184
Eigen::Matrix< Real, Eigen::Dynamic, Moose::dim *Moose::dim > type
Definition MooseTypes.h:166