www.mooseframework.org
MooseTypes.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "ChainedReal.h"
15 #include "ChainedADReal.h"
16 #include "ADRankTwoTensorForward.h"
21 
22 #include "libmesh/libmesh.h"
23 #include "libmesh/id_types.h"
24 #include "libmesh/stored_range.h"
25 #include "libmesh/petsc_macro.h"
26 #include "libmesh/boundary_info.h"
27 #include "libmesh/parameters.h"
28 #include "libmesh/dense_vector.h"
29 #include "libmesh/int_range.h"
30 
31 // BOOST include
32 #include "boost/bitmask_operators.h"
33 
34 #include "libmesh/ignore_warnings.h"
35 #include "Eigen/Core"
36 #include "libmesh/restore_warnings.h"
37 #include "libmesh/tensor_tools.h"
38 
39 #include "metaphysicl/ct_types.h"
40 
41 #include <string>
42 #include <vector>
43 #include <memory>
44 #include <type_traits>
45 #include <functional>
46 
47 #include "nlohmann/json_fwd.h"
48 
49 // DO NOT USE (Deprecated)
50 #define MooseSharedPointer std::shared_ptr
51 #define MooseSharedNamespace std
52 
60 // The multiple macros that you would need anyway [as per: Crazy Eddie (stack overflow)]
61 #ifdef __clang__
62 #pragma clang diagnostic push
63 #pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
64 #endif
65 
66 #define beginIndex_0() ERROR-- > "beginIndex() requires one or two arguments"
67 #define beginIndex_1(A) decltype(A.size())(0)
68 #define beginIndex_2(A, B) decltype(A.size())(B)
69 #define beginIndex_3(A, B, C) ERROR-- > "beginIndex() requires one or two arguments"
70 #define beginIndex_4(A, B, C, D) ERROR-- > "beginIndex() requires one or two arguments"
71 
72 // The interim macro that simply strips the excess and ends up with the required macro
73 #define beginIndex_X(x, A, B, C, D, FUNC, ...) FUNC
74 
75 // The macro that the programmer uses
76 #define beginIndex(...) \
77  beginIndex_X(, \
78  ##__VA_ARGS__, \
79  beginIndex_4(__VA_ARGS__), \
80  beginIndex_3(__VA_ARGS__), \
81  beginIndex_2(__VA_ARGS__), \
82  beginIndex_1(__VA_ARGS__), \
83  beginIndex_0(__VA_ARGS__))
84 
98 #define MooseIndex(type) decltype(_MooseIndex(type, 0))
99 
100 // SFINAE templates for type MooseIndex type selection
101 template <typename T, typename std::enable_if<std::is_integral<T>::value>::type * = nullptr>
102 typename std::remove_const<T>::type
103 _MooseIndex(T, int)
104 {
105 }
106 
107 template <typename T>
108 decltype(std::declval<T>().size())
109 _MooseIndex(T &&, int)
110 {
111 }
112 
113 template <typename T>
114 decltype("NOTE: MooseIndex only works with integers and objects with size()!")
115 _MooseIndex(T, double) = delete;
116 
117 #ifdef __clang__
118 #pragma clang diagnostic pop
119 #endif
120 
124 template <typename>
125 class MooseArray;
126 template <typename>
127 class MaterialProperty;
128 template <typename>
129 class ADMaterialProperty;
130 class InputParameters;
131 
132 namespace libMesh
133 {
134 template <typename>
135 class VectorValue;
137 typedef Eigen::Matrix<Real, Moose::dim, 1> RealDIMValue;
138 typedef Eigen::Matrix<Real, Eigen::Dynamic, 1> RealEigenVector;
139 typedef Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim> RealVectorArrayValue;
140 typedef Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim * Moose::dim> RealTensorArrayValue;
141 typedef Eigen::Matrix<Real, Eigen::Dynamic, Eigen::Dynamic> RealEigenMatrix;
142 template <typename>
143 class TypeVector;
144 template <typename>
147 template <typename>
148 class TypeTensor;
149 template <unsigned int, typename>
150 class TypeNTensor;
151 class Point;
152 template <typename>
153 class DenseMatrix;
154 template <typename>
155 class DenseVector;
156 
157 namespace TensorTools
158 {
159 template <>
160 struct IncrementRank<Eigen::Matrix<Real, Eigen::Dynamic, 1>>
161 {
162  typedef Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim> type;
163 };
164 
165 template <>
166 struct IncrementRank<Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim>>
167 {
168  typedef Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim * Moose::dim> type;
169 };
170 
171 template <>
172 struct DecrementRank<Eigen::Matrix<Real, Eigen::Dynamic, Moose::dim>>
173 {
174  typedef Eigen::Matrix<Real, Eigen::Dynamic, 1> type;
175 };
176 }
177 }
178 
179 namespace MetaPhysicL
180 {
181 template <typename U>
182 struct ReplaceAlgebraicType<libMesh::RealEigenVector, U>
183 {
184  typedef U type;
185 };
186 }
187 
192 typedef std::vector<Real> VectorPostprocessorValue;
195 typedef unsigned int InterfaceID;
197 typedef unsigned int MooseObjectID;
198 typedef unsigned int THREAD_ID;
199 typedef unsigned int TagID;
200 typedef unsigned int TagTypeID;
201 typedef unsigned int PerfID;
202 typedef unsigned int InvalidSolutionID;
203 using RestartableDataMapName = std::string; // see MooseApp.h
204 
205 typedef StoredRange<std::vector<dof_id_type>::iterator, dof_id_type> NodeIdRange;
206 typedef StoredRange<std::vector<const Elem *>::iterator, const Elem *> ConstElemPointerRange;
207 
208 namespace Moose
209 {
210 
218 constexpr std::size_t constMaxQpsPerElem = 216;
219 
220 // These are used by MooseVariableData and MooseVariableDataFV
221 enum SolutionState : int
222 {
223  Current = 0,
224  Old = 1,
225  Older = 2,
227 };
228 
229 enum class SolutionIterationType : unsigned short
230 {
231  Time = 0,
232  Nonlinear
233 };
234 
235 // These are used by MooseVariableData and MooseVariableDataFV
237 {
240 };
241 
242 template <typename OutputType>
243 struct ShapeType
244 {
245  typedef OutputType type;
246 };
247 template <>
248 struct ShapeType<Eigen::Matrix<Real, Eigen::Dynamic, 1>>
249 {
250  typedef Real type;
251 };
252 
253 template <typename OutputType>
254 struct DOFType
255 {
256  typedef OutputType type;
257 };
258 template <>
260 {
261  typedef Real type;
262 };
263 } // namespace Moose
264 
265 template <typename OutputType>
267 {
268  typedef typename TensorTools::IncrementRank<OutputType>::type OutputGradient;
269  typedef typename TensorTools::IncrementRank<OutputGradient>::type OutputSecond;
270  typedef typename TensorTools::DecrementRank<OutputType>::type OutputDivergence;
271 
277 
279  typedef typename TensorTools::IncrementRank<OutputShape>::type OutputShapeGradient;
280  typedef typename TensorTools::IncrementRank<OutputShapeGradient>::type OutputShapeSecond;
281  typedef typename TensorTools::DecrementRank<OutputShape>::type OutputShapeDivergence;
282 
288 
294 
295  // DoF value type for the template class OutputType
298  typedef OutputType OutputValue;
299 };
300 
301 // types for standard variable
317 
318 // types for vector variable
334 
335 // types for array variable
343 typedef std::vector<std::vector<Eigen::Map<RealDIMValue>>> MappedArrayVariablePhiGradient;
352 
368 
369 namespace Moose
370 {
371 
372 // type conversion from regular to AD
373 template <typename T>
374 struct ADType;
375 template <>
376 struct ADType<Real>
377 {
378  typedef ADReal type;
379 };
380 template <>
382 {
384 };
385 template <>
387 {
389 };
390 template <>
392 {
394 };
395 template <>
397 {
399 };
400 
401 template <>
403 {
405 };
406 template <>
408 {
410 };
411 
412 template <template <typename> class W>
413 struct ADType<W<Real>>
414 {
415  typedef W<ADReal> type;
416 };
417 template <>
419 {
421 };
422 template <>
424 {
426 };
427 template <>
429 {
431 };
432 template <>
434 {
436 };
437 
438 template <>
439 struct ADType<ADReal>
440 {
441  typedef ADReal type;
442 };
443 template <>
445 {
447 };
448 template <>
450 {
452 };
453 template <>
455 {
457 };
458 template <>
460 {
462 };
463 
464 template <>
466 {
468 };
469 template <>
471 {
473 };
474 
475 template <template <typename> class W>
476 struct ADType<W<ADReal>>
477 {
478  typedef W<ADReal> type;
479 };
480 
481 template <>
483 {
485 };
486 template <>
488 {
490 };
491 template <>
493 {
495 };
496 
502 template <class T>
503 constexpr std::false_type always_false{};
504 
505 } // namespace Moose
506 
513 
514 template <typename T>
517 template <typename T>
520 template <typename T>
523 
530 
531 // We can use the non-ad version for test values because these don't depend on the mesh
532 // displacements (unless the location of the quadrature points depend on the mesh displacements...)
533 template <typename T>
535 template <typename T>
537 
538 // We need to use the AD version for test gradients and seconds because these *do* depend on the
539 // mesh displacements
540 template <typename T>
543 template <typename T>
546 template <typename T>
550 
551 // Templated typed to support is_ad templated classes
552 namespace Moose
553 {
554 template <typename T, bool is_ad>
555 using GenericType = typename std::conditional<is_ad, typename ADType<T>::type, T>::type;
556 } // namespace Moose
557 
558 template <bool is_ad>
560 template <bool is_ad>
562 template <bool is_ad>
564 template <bool is_ad>
566 template <bool is_ad>
568 template <bool is_ad>
570 template <bool is_ad>
572 template <bool is_ad>
574 template <bool is_ad>
576 template <bool is_ad>
578 template <bool is_ad>
579 using GenericDenseVector =
580  typename std::conditional<is_ad, DenseVector<ADReal>, DenseVector<Real>>::type;
581 template <bool is_ad>
582 using GenericDenseMatrix =
583  typename std::conditional<is_ad, DenseMatrix<ADReal>, DenseMatrix<Real>>::type;
584 
585 namespace Moose
586 {
588 extern const SubdomainID ANY_BLOCK_ID;
591 extern const SubdomainID INVALID_BLOCK_ID;
592 extern const BoundaryID ANY_BOUNDARY_ID;
593 extern const BoundaryID INVALID_BOUNDARY_ID;
594 extern const TagID INVALID_TAG_ID;
595 extern const TagTypeID INVALID_TAG_TYPE_ID;
596 const std::set<SubdomainID> EMPTY_BLOCK_IDS = {};
597 const std::set<BoundaryID> EMPTY_BOUNDARY_IDS = {};
598 
605 {
611 };
612 
617 {
618  PRE_IC = 0,
619  PRE_AUX = 1,
620  POST_AUX = 2,
621  ALL = 3
622 };
623 
628 {
632 };
633 
635 {
641 };
642 
644 {
648 };
649 
651 {
654 };
655 
657 {
660 };
661 
663 {
668 };
669 
671 {
674 };
675 
676 enum class ElementType : unsigned int
677 {
681 };
682 
683 enum class MortarType : unsigned int
684 {
685  Secondary = static_cast<unsigned int>(Moose::ElementType::Element),
686  Primary = static_cast<unsigned int>(Moose::ElementType::Neighbor),
687  Lower = static_cast<unsigned int>(Moose::ElementType::Lower)
688 };
689 
693 enum class ComputeType
694 {
695  Residual,
696  Jacobian,
698 };
699 
704 enum class RESTARTABLE_FILTER : unsigned char
705 {
707 };
708 
710 {
720 };
721 
723 {
727 };
728 
733 {
738 };
739 
744 {
750 };
751 
756 {
762 };
763 
768 {
778 };
779 
784 {
792 };
793 
798 {
810 };
811 
816 {
825 };
826 
831 {
834 };
839 {
850 };
851 
856 {
860 };
861 
866 {
871 };
872 
876 enum class RelationshipManagerType : unsigned char
877 {
878  DEFAULT = 0,
879  GEOMETRIC = 1 << 0,
880  ALGEBRAIC = 1 << 1,
881  COUPLING = 1 << 2
882 };
883 
885 {
889 };
890 
892 {
896 };
897 
901 typedef std::function<void(const InputParameters &, InputParameters &)>
903 
904 std::string stringify(const Moose::RelationshipManagerType & t);
905 std::string stringify(const Moose::TimeIntegratorType & t);
906 } // namespace Moose
907 
908 namespace libMesh
909 {
910 template <>
911 inline void
912 print_helper(std::ostream & os, const Moose::RelationshipManagerType * param)
913 {
914  // Specialization so that we don't print out unprintable characters
915  os << Moose::stringify(*param);
916 }
917 
918 // End of Moose Namespace
919 }
920 
921 template <>
922 struct enable_bitmask_operators<Moose::RelationshipManagerType>
923 {
924  static const bool enable = true;
925 };
926 
935 #define DerivativeStringClass(TheName) \
936  class TheName : public std::string \
937  { \
938  public: \
939  TheName() : std::string() {} \
940  TheName(const std::string & str) : std::string(str) {} \
941  TheName(const std::string & str, size_t pos, size_t n = npos) : std::string(str, pos, n) {} \
942  TheName(const char * s, size_t n) : std::string(s, n) {} \
943  TheName(const char * s) : std::string(s) {} \
944  TheName(size_t n, char c) : std::string(n, c) {} \
945  }; \
946  namespace nlohmann \
947  { \
948  template <> \
949  struct adl_serializer<TheName> \
950  { \
951  static void to_json(json & j, const TheName & v); \
952  }; \
953  } \
954  static_assert(true, "")
955 
956 // Instantiate new Types
957 
962 DerivativeStringClass(FileName);
963 
965 DerivativeStringClass(FileNameNoExtension);
966 
968 DerivativeStringClass(MeshFileName);
969 
971 DerivativeStringClass(OutFileBase);
972 
974 DerivativeStringClass(NonlinearVariableName);
975 
977 DerivativeStringClass(AuxVariableName);
978 
980 DerivativeStringClass(VariableName);
981 
983 DerivativeStringClass(BoundaryName);
984 
986 DerivativeStringClass(SubdomainName);
987 
989 DerivativeStringClass(PostprocessorName);
990 
992 DerivativeStringClass(VectorPostprocessorName);
993 
995 DerivativeStringClass(MeshDivisionName);
996 
998 DerivativeStringClass(FunctionName);
999 
1001 DerivativeStringClass(DistributionName);
1002 
1004 DerivativeStringClass(SamplerName);
1005 
1007 DerivativeStringClass(UserObjectName);
1008 
1010 DerivativeStringClass(IndicatorName);
1011 
1013 DerivativeStringClass(MarkerName);
1014 
1016 DerivativeStringClass(MultiAppName);
1017 
1019 DerivativeStringClass(OutputName);
1020 
1022 DerivativeStringClass(MaterialPropertyName);
1023 
1025 DerivativeStringClass(MooseFunctorName);
1026 
1028 DerivativeStringClass(MaterialName);
1029 
1031 DerivativeStringClass(TagName);
1032 
1034 DerivativeStringClass(MeshGeneratorName);
1035 
1037 DerivativeStringClass(ExtraElementIDName);
1038 
1040 DerivativeStringClass(ReporterValueName);
1041 
1043 DerivativeStringClass(PhysicsName);
1044 
1046 DerivativeStringClass(PositionsName);
1047 
1049 DerivativeStringClass(TimesName);
1050 
1052 DerivativeStringClass(ExecutorName);
1053 
1055 DerivativeStringClass(ParsedFunctionExpression);
1056 
1058 DerivativeStringClass(NonlinearSystemName);
1059 
1061 DerivativeStringClass(CLIArgString);
1062 
1066 typedef std::vector<VariableName> CoupledName;
1067 namespace Moose
1068 {
1069 extern const TagName SOLUTION_TAG;
1070 extern const TagName OLD_SOLUTION_TAG;
1071 extern const TagName OLDER_SOLUTION_TAG;
1072 extern const TagName PREVIOUS_NL_SOLUTION_TAG;
1073 }
1074 
1076 #define usingTensorIndices(...) \
1077  enum \
1078  { \
1079  __VA_ARGS__ \
1080  }
ADRealVectorValue ADRealGradient
Definition: MooseTypes.h:357
ConstraintFormulationType
Type of constraint formulation.
Definition: MooseTypes.h:830
typename OutputTools< typename Moose::ADType< T >::type >::VariableSecond ADTemplateVariableSecond
Definition: MooseTypes.h:522
OutputTools< Real >::VariableGradient VariableGradient
Definition: MooseTypes.h:303
VarFieldType
Definition: MooseTypes.h:634
typename std::conditional< is_ad, DenseMatrix< ADReal >, DenseMatrix< Real > >::type GenericDenseMatrix
Definition: MooseTypes.h:583
RankFourTensorTempl is designed to handle any N-dimensional fourth order tensor, C.
Generalized Non-Hermitian.
Definition: MooseTypes.h:789
OutputTools< RealVectorValue >::VariableDivergence VectorVariableDivergence
Definition: MooseTypes.h:323
unsigned int TagTypeID
Definition: MooseTypes.h:200
libMesh::VectorValue< ADReal > ADRealVectorValue
AD typedefs.
Definition: MooseTypes.h:356
typename Moose::GenericType< RankFourTensor, is_ad > GenericRankFourTensor
Definition: MooseTypes.h:571
Generalized Hermitian indefinite.
Definition: MooseTypes.h:788
OutputTools< RealVectorValue >::VariableSecond VectorVariableSecond
Definition: MooseTypes.h:321
Newton-based eigensolver with an assembled Jacobian matrix (fully coupled by default) ...
Definition: MooseTypes.h:774
Full Newton Solve.
Definition: MooseTypes.h:759
OutputTools< RealEigenVector >::VariableDivergence ArrayVariableDivergence
Definition: MooseTypes.h:340
typename OutputTools< typename Moose::ADType< T >::type >::VariablePhiGradient ADTemplateVariablePhiGradient
Definition: MooseTypes.h:548
ConstraintType
Definition: MooseTypes.h:670
smallest magnitude
Definition: MooseTypes.h:800
libMesh::DenseMatrix< ADReal > ADDenseMatrix
Definition: MooseTypes.h:360
const TagTypeID INVALID_TAG_TYPE_ID
Definition: MooseTypes.C:26
EigenSolveType
Type of the eigen solve.
Definition: MooseTypes.h:767
RelationshipManagerType
Main types of Relationship Managers.
Definition: MooseTypes.h:876
typename Moose::GenericType< VariableValue, is_ad > GenericVariableValue
Definition: MooseTypes.h:573
void print_helper(std::ostream &os, const P *param)
typename Moose::GenericType< VariableSecond, is_ad > GenericVariableSecond
Definition: MooseTypes.h:577
OutputTools< Real >::VariableTestDivergence VariableTestDivergence
Definition: MooseTypes.h:316
TensorTools::IncrementRank< OutputGradient >::type OutputSecond
Definition: MooseTypes.h:269
unsigned int TagID
Definition: MooseTypes.h:199
unsigned int InvalidSolutionID
Definition: MooseTypes.h:202
MooseArray< std::vector< OutputShapeGradient > > VariablePhiGradient
Definition: MooseTypes.h:284
VectorValue< Real > RealVectorValue
Definition: SubProblem.h:33
subdomain_id_type SubdomainID
Definition: MooseTypes.h:196
typename OutputTools< typename Moose::ADType< T >::type >::VariableTestSecond ADTemplateVariableTestSecond
Definition: MooseTypes.h:545
OutputTools< RealVectorValue >::VariableTestCurl VectorVariableTestCurl
Definition: MooseTypes.h:332
const BoundaryID INVALID_BOUNDARY_ID
Definition: MooseTypes.C:24
const TagName OLDER_SOLUTION_TAG
Definition: MooseTypes.C:29
MooseArray< std::vector< OutputShapeDivergence > > VariablePhiDivergence
Definition: MooseTypes.h:287
MooseArray< std::vector< OutputShapeDivergence > > VariableTestDivergence
Definition: MooseTypes.h:293
OutputType type
Definition: MooseTypes.h:256
OutputType type
Definition: MooseTypes.h:245
StoredRange< std::vector< dof_id_type >::iterator, dof_id_type > NodeIdRange
Definition: MooseTypes.h:205
OutputTools< RealEigenVector >::VariablePhiValue ArrayVariablePhiValue
Definition: MooseTypes.h:341
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:218
DualNumber< Real, Real > ChainedReal
Definition: ChainedReal.h:30
typename OutputTools< T >::VariableTestValue ADTemplateVariableTestValue
Definition: MooseTypes.h:534
The same as PJFNK except that matrix-vector multiplication is employed to replace residual evaluation...
Definition: MooseTypes.h:776
MortarType
Definition: MooseTypes.h:683
MooseArray< std::vector< OutputShape > > VariableTestValue
Definition: MooseTypes.h:289
TestClass subdomain_id_type
VariableTestGradient ADVariableTestGradient
Definition: MooseTypes.h:525
OutputTools< RealVectorValue >::VariableValue VectorVariableValue
Definition: MooseTypes.h:319
libMesh::DenseVector< ADReal > ADDenseVector
Definition: MooseTypes.h:361
MaterialDataType
MaterialData types.
Definition: MooseTypes.h:604
MooseArray< std::vector< OutputShapeGradient > > VariableTestGradient
Definition: MooseTypes.h:290
OutputType OutputValue
Definition: MooseTypes.h:298
Definition: ADReal.h:15
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:503
MooseArray< ADRealVectorValue > ADVariableGradient
Definition: MooseTypes.h:363
const SubdomainID BOUNDARY_SIDE_LOWERD_ID
Definition: MooseTypes.C:21
typename OutputTools< T >::VariablePhiValue ADTemplateVariablePhiValue
Definition: MooseTypes.h:536
TensorTools::DecrementRank< OutputShape >::type OutputShapeDivergence
Definition: MooseTypes.h:281
OutputTools< RealVectorValue >::VariableTestValue VectorVariableTestValue
Definition: MooseTypes.h:329
typename OutputTools< typename Moose::ADType< T >::type >::VariableValue ADTemplateVariableValue
Definition: MooseTypes.h:516
MooseArray< libMesh::TypeNTensor< 3, DualReal > > ADVectorVariableSecond
Definition: MooseTypes.h:367
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
OutputTools< RealEigenVector >::VariableCurl ArrayVariableCurl
Definition: MooseTypes.h:339
ADTemplateVariablePhiGradient< Real > ADVariablePhiGradient
Definition: MooseTypes.h:549
Solving a linear problem.
Definition: MooseTypes.h:761
OutputTools< RealEigenVector >::VariableSecond ArrayVariableSecond
Definition: MooseTypes.h:338
OutputTools< Real >::VariablePhiValue VariablePhiValue
Definition: MooseTypes.h:307
MooseArray< OutputData > DoFValue
Definition: MooseTypes.h:297
OutputTools< RealVectorValue >::VariableCurl VectorVariableCurl
Definition: MooseTypes.h:322
use whatever SLPEC has by default
Definition: MooseTypes.h:791
OutputTools< RealVectorValue >::VariablePhiGradient VectorVariablePhiGradient
Definition: MooseTypes.h:325
target magnitude
Definition: MooseTypes.h:805
OutputTools< RealEigenVector >::VariablePhiSecond ArrayVariablePhiSecond
Definition: MooseTypes.h:344
We need to instantiate the following CompareTypes to tell the compiler that ADReal is a subtype of Ch...
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
ElementType
Definition: MooseTypes.h:676
std::basic_ostream< charT, traits > * os
Definition: InfixIterator.h:33
DGResidualType
Definition: MooseTypes.h:656
Generalized Non-Hermitian with positive (semi-)definite B.
Definition: MooseTypes.h:790
MooseArray< OutputType > VariableValue
Definition: MooseTypes.h:272
MffdType
Type of the matrix-free finite-differencing parameter.
Definition: MooseTypes.h:855
TensorTools::IncrementRank< OutputShapeGradient >::type OutputShapeSecond
Definition: MooseTypes.h:280
VectorVariableTestSecond ADVectorVariableTestSecond
Definition: MooseTypes.h:529
OutputTools< Real >::VariablePhiSecond VariablePhiSecond
Definition: MooseTypes.h:309
Power / Inverse / RQI.
Definition: MooseTypes.h:769
typename std::conditional< is_ad, typename ADType< T >::type, T >::type GenericType
Definition: MooseTypes.h:555
Krylov-Schur.
Definition: MooseTypes.h:771
unsigned int PerfID
Definition: MooseTypes.h:201
AuxGroup
Flag for AuxKernel related execution type.
Definition: MooseTypes.h:616
RankThreeTensor is designed to handle any N-dimensional third order tensor, r.
Eigen::Matrix< Real, Eigen::Dynamic, Moose::dim *Moose::dim > type
Definition: MooseTypes.h:168
MooseArray< ADReal > ADVariableValue
Definition: MooseTypes.h:362
VariableTestSecond ADVariableTestSecond
Definition: MooseTypes.h:526
MooseKSPNormType
Norm type for converge test.
Definition: MooseTypes.h:743
const SubdomainID INVALID_BLOCK_ID
Definition: MooseTypes.C:22
StoredRange< std::vector< const Elem * >::iterator, const Elem * > ConstElemPointerRange
Definition: MooseTypes.h:206
MooseArray< std::vector< OutputShape > > VariablePhiValue
Definition: MooseTypes.h:283
OutputTools< RealVectorValue >::VariablePhiDivergence VectorVariablePhiDivergence
Definition: MooseTypes.h:328
TensorValue< Real > RealTensorValue
uint8_t processor_id_type
std::remove_const< T >::type _MooseIndex(T, int)
Definition: MooseTypes.h:103
Use whatever we have in PETSc.
Definition: MooseTypes.h:737
Preconditioned Jacobian-free Newton Krylov.
Definition: MooseTypes.h:775
WhichEigenPairs
Which eigen pairs.
Definition: MooseTypes.h:797
int8_t boundary_id_type
OutputTools< RealEigenVector >::VariableTestDivergence ArrayVariableTestDivergence
Definition: MooseTypes.h:351
OutputTools< RealEigenVector >::VariableValue ArrayVariableValue
Definition: MooseTypes.h:336
OutputTools< RealVectorValue >::VariableTestDivergence VectorVariableTestDivergence
Definition: MooseTypes.h:333
MooseArray< ADRealTensorValue > ADVectorVariableGradient
Definition: MooseTypes.h:366
OutputTools< Real >::VariableCurl VariableCurl
Definition: MooseTypes.h:305
LineSearchType
Type of the line search.
Definition: MooseTypes.h:838
RESTARTABLE_FILTER
The filter type applied to a particular piece of "restartable" data.
Definition: MooseTypes.h:704
const TagName OLD_SOLUTION_TAG
Definition: MooseTypes.C:28
Use whatever we have in PETSc.
Definition: MooseTypes.h:749
std::function< void(const InputParameters &, InputParameters &)> RelationshipManagerInputParameterCallback
The type for the callback to set RelationshipManager parameters.
Definition: MooseTypes.h:902
libMesh::VectorValue< ADReal > ADPoint
Definition: MooseTypes.h:358
OutputTools< RealVectorValue >::VariablePhiSecond VectorVariablePhiSecond
Definition: MooseTypes.h:326
OutputTools< Real >::VariableTestValue VariableTestValue
Definition: MooseTypes.h:312
boundary_id_type BoundaryID
VarKindType
Framework-wide stuff.
Definition: MooseTypes.h:627
TensorTools::IncrementRank< OutputType >::type OutputGradient
Definition: MooseTypes.h:268
Jacobian-Free Newton Krylov.
Definition: MooseTypes.h:758
std::vector< std::vector< Eigen::Map< RealDIMValue > > > MappedArrayVariablePhiGradient
Definition: MooseTypes.h:343
SymmetricRankTwoTensorTempl is designed to handle the Stress or Strain Tensor for an anisotropic mate...
Real PostprocessorValue
various MOOSE typedefs
Definition: MooseTypes.h:191
typename OutputTools< typename Moose::ADType< T >::type >::VariableTestGradient ADTemplateVariableTestGradient
Definition: MooseTypes.h:542
ADSymmetricRankFourTensor type
Definition: MooseTypes.h:409
OutputTools< Real >::VariableDivergence VariableDivergence
Definition: MooseTypes.h:306
MooseArray< std::vector< OutputShape > > VariableTestCurl
Definition: MooseTypes.h:292
MooseArray< OutputSecond > VariableSecond
Definition: MooseTypes.h:274
unsigned int InterfaceID
Definition: MooseTypes.h:195
Moose::ShapeType< OutputType >::type OutputShape
Definition: MooseTypes.h:278
typename OutputTools< typename Moose::ADType< T >::type >::VariableGradient ADTemplateVariableGradient
Definition: MooseTypes.h:519
target imaginary
Definition: MooseTypes.h:807
TensorTools::IncrementRank< OutputShape >::type OutputShapeGradient
Definition: MooseTypes.h:279
OutputTools< Real >::VariablePhiCurl VariablePhiCurl
Definition: MooseTypes.h:310
MooseArray< OutputGradient > VariableGradient
Definition: MooseTypes.h:273
Use finite differences to compute Jacobian.
Definition: MooseTypes.h:760
MooseArray< OutputType > VariableCurl
Definition: MooseTypes.h:275
DualReal ADReal
Definition: ADRealForward.h:14
subdomain_id_type SubdomainID
typename Moose::GenericType< ChainedReal, is_ad > GenericChainedReal
Definition: MooseTypes.h:561
Eigen::Matrix< Real, Eigen::Dynamic, Eigen::Dynamic > RealEigenMatrix
Definition: MooseTypes.h:141
ADRealGradient DualRealGradient
Definition: MooseTypes.h:512
std::string stringify(const T &t)
conversion to string
Definition: Conversion.h:62
Nonlinear inverse power.
Definition: MooseTypes.h:773
libMesh::TensorValue< ADReal > ADRealTensorValue
Definition: MooseTypes.h:359
TensorTools::DecrementRank< OutputType >::type OutputDivergence
Definition: MooseTypes.h:270
OutputTools< Real >::VariablePhiDivergence VariablePhiDivergence
Definition: MooseTypes.h:311
typename Moose::GenericType< RealTensorValue, is_ad > GenericRealTensorValue
Definition: MooseTypes.h:565
VectorTagType
Definition: MooseTypes.h:891
ComputeType
The type of nonlinear computation being performed.
Definition: MooseTypes.h:693
Jacobi-Davidson.
Definition: MooseTypes.h:772
const processor_id_type INVALID_PROCESSOR_ID
Definition: MooseTypes.C:18
Eigen::Matrix< Real, Eigen::Dynamic, Moose::dim > RealVectorArrayValue
Definition: MooseTypes.h:139
OutputTools< Real >::VariableValue VariableValue
Definition: MooseTypes.h:302
DGJacobianType
Definition: MooseTypes.h:662
ConstraintSideType
Definition: MooseTypes.h:650
std::vector< Real > VectorPostprocessorValue
Definition: MooseTypes.h:192
Real ScatterVectorPostprocessorValue
Definition: MooseTypes.h:193
OutputTools< Real >::VariablePhiGradient VariablePhiGradient
Definition: MooseTypes.h:308
MooseArray< std::vector< OutputShapeSecond > > VariablePhiSecond
Definition: MooseTypes.h:285
MooseArray< std::vector< OutputShape > > VariablePhiCurl
Definition: MooseTypes.h:286
const SubdomainID ANY_BLOCK_ID
Definition: MooseTypes.C:19
forward declarations
Definition: MooseArray.h:17
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::set< SubdomainID > EMPTY_BLOCK_IDS
Definition: MooseTypes.h:596
OutputTools< Real >::VariableTestSecond VariableTestSecond
Definition: MooseTypes.h:314
OutputTools< RealVectorValue >::VariableTestGradient VectorVariableTestGradient
Definition: MooseTypes.h:330
OutputTools< RealVectorValue >::VariablePhiValue VectorVariablePhiValue
Definition: MooseTypes.h:324
GeometryType
Definition: MooseTypes.h:236
OutputTools< RealEigenVector >::VariableTestSecond ArrayVariableTestSecond
Definition: MooseTypes.h:349
CoordinateSystemType
Definition: MooseTypes.h:722
smallest imaginary
Definition: MooseTypes.h:804
std::string RestartableDataMapName
Definition: MooseTypes.h:203
VectorVariableTestValue ADVectorVariableTestValue
Definition: MooseTypes.h:527
const std::set< BoundaryID > EMPTY_BOUNDARY_IDS
Definition: MooseTypes.h:597
const TagID INVALID_TAG_ID
Definition: MooseTypes.C:25
std::vector< VariableName > CoupledName
additional MOOSE typedefs
Definition: MooseTypes.h:1066
RMSystemType
Definition: MooseTypes.h:884
const SubdomainID INTERNAL_SIDE_LOWERD_ID
Definition: MooseTypes.C:20
typename std::conditional< is_ad, DenseVector< ADReal >, DenseVector< Real > >::type GenericDenseVector
Definition: MooseTypes.h:580
OutputTools< RealVectorValue >::VariableTestSecond VectorVariableTestSecond
Definition: MooseTypes.h:331
SolutionState
Definition: MooseTypes.h:221
Jacobian-free Newton Krylov.
Definition: MooseTypes.h:777
means not set
Definition: MooseTypes.h:857
PatchUpdateType
Type of patch update strategy for modeling node-face constraints or contact.
Definition: MooseTypes.h:865
MooseArray< std::vector< OutputShapeSecond > > VariableTestSecond
Definition: MooseTypes.h:291
ConstraintJacobianType
Definition: MooseTypes.h:709
OutputTools< RealEigenVector >::VariablePhiDivergence ArrayVariablePhiDivergence
Definition: MooseTypes.h:346
SymmetricRankFourTensorTempl is designed to handle an N-dimensional fourth order tensor with minor sy...
largest imaginary
Definition: MooseTypes.h:803
OutputTools< RealEigenVector >::VariablePhiCurl ArrayVariablePhiCurl
Definition: MooseTypes.h:345
Non-Hermitian.
Definition: MooseTypes.h:786
CouplingType
Definition: MooseTypes.h:643
OutputTools< RealEigenVector >::VariablePhiGradient ArrayVariablePhiGradient
Definition: MooseTypes.h:342
TimeIntegratorType
Time integrators.
Definition: MooseTypes.h:815
MooseArray< ADRealTensorValue > ADVariableSecond
Definition: MooseTypes.h:364
DerivativeStringClass(FileName)
This type is for expected (i.e.
PCSideType
Preconditioning side.
Definition: MooseTypes.h:732
ADRealTensorValue DualRealTensorValue
Definition: MooseTypes.h:511
VectorVariableTestGradient ADVectorVariableTestGradient
Definition: MooseTypes.h:528
typename Moose::GenericType< RankTwoTensor, is_ad > GenericRankTwoTensor
Definition: MooseTypes.h:567
Moose::DOFType< OutputType >::type OutputData
Definition: MooseTypes.h:296
VariableTestValue ADVariableTestValue
Definition: MooseTypes.h:524
all eigenvalues
Definition: MooseTypes.h:808
const TagName SOLUTION_TAG
Definition: MooseTypes.C:27
OutputTools< Real >::VariableSecond VariableSecond
Definition: MooseTypes.h:304
Eigen::Matrix< Real, Eigen::Dynamic, 1 > RealEigenVector
Definition: MooseTypes.h:138
Preconditioned Jacobian-Free Newton Krylov.
Definition: MooseTypes.h:757
Eigen::Matrix< Real, Moose::dim, 1 > RealDIMValue
Definition: MooseTypes.h:137
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
OutputTools< RealVectorValue >::VariablePhiCurl VectorVariablePhiCurl
Definition: MooseTypes.h:327
MooseArray< OutputDivergence > VariableDivergence
Definition: MooseTypes.h:276
use whatever we have in SLEPC
Definition: MooseTypes.h:809
OutputTools< RealVectorValue >::VariableGradient VectorVariableGradient
Definition: MooseTypes.h:320
means not set
Definition: MooseTypes.h:840
typename Moose::GenericType< Real, is_ad > GenericReal
Definition: MooseTypes.h:559
largest magnitude
Definition: MooseTypes.h:799
Eigen::Matrix< Real, Eigen::Dynamic, Moose::dim *Moose::dim > RealTensorArrayValue
Definition: MooseTypes.h:140
OutputTools< Real >::VariableTestCurl VariableTestCurl
Definition: MooseTypes.h:315
OutputTools< RealEigenVector >::VariableTestValue ArrayVariableTestValue
Definition: MooseTypes.h:347
SolveType
Type of the solve.
Definition: MooseTypes.h:755
OutputTools< Real >::VariableTestGradient VariableTestGradient
Definition: MooseTypes.h:313
OutputTools< RealEigenVector >::VariableGradient ArrayVariableGradient
Definition: MooseTypes.h:337
const TagName PREVIOUS_NL_SOLUTION_TAG
Definition: MooseTypes.C:30
typename Moose::GenericType< VariableGradient, is_ad > GenericVariableGradient
Definition: MooseTypes.h:575
unsigned int MooseObjectID
Definition: MooseTypes.h:197
MooseArray< ADRealVectorValue > ADVectorVariableValue
Definition: MooseTypes.h:365
typename Moose::GenericType< RealVectorValue, is_ad > GenericRealVectorValue
Definition: MooseTypes.h:563
OutputTools< RealEigenVector >::VariableTestGradient ArrayVariableTestGradient
Definition: MooseTypes.h:348
ADRealVectorValue DualRealVectorValue
some AD typedefs for backwards compatability
Definition: MooseTypes.h:510
EigenProblemType
Type of the eigen problem.
Definition: MooseTypes.h:783
ADSymmetricRankTwoTensor type
Definition: MooseTypes.h:404
void ErrorVector unsigned int
Generalized Hermitian.
Definition: MooseTypes.h:787
OutputTools< RealEigenVector >::VariableTestCurl ArrayVariableTestCurl
Definition: MooseTypes.h:350
typename Moose::GenericType< RankThreeTensor, is_ad > GenericRankThreeTensor
Definition: MooseTypes.h:569
SolutionIterationType
Definition: MooseTypes.h:229
const BoundaryID ANY_BOUNDARY_ID
Definition: MooseTypes.C:23
unsigned int THREAD_ID
Definition: MooseTypes.h:198
boundary_id_type BoundaryID
Definition: MooseTypes.h:194
uint8_t dof_id_type
DualNumber< ADReal, ADReal > ChainedADReal
Definition: ChainedADReal.h:15