| 
| concept   | FlatInterLeavedBasis | 
|   | Concept to check if a basis uses FlatInterleaved indexing strategy. 
  | 
|   | 
| concept   | LagrangeNode | 
|   | Concept to check if a node in a basis tree is a Lagrangian node. 
  | 
|   | 
| concept   | LagrangeNodeOfOrder | 
|   | 
| concept   | FlatLexicographicBasis | 
|   | Concept to check if a basis uses FlatLexicographic indexing strategy. 
  | 
|   | 
| concept   | FlatIndexBasis | 
|   | Concept to check if a basis uses FlatIndex indexing strategy. 
  | 
|   | 
| concept   | BlockedInterLeavedBasis | 
|   | Concept to check if a basis uses BlockedInterleaved indexing strategy. 
  | 
|   | 
| concept   | BlockedLexicographicBasis | 
|   | Concept to check if a basis uses BlockedLexicographic indexing strategy. 
  | 
|   | 
| concept   | DuneLocalBasis | 
|   | Concept to check if a local basis is a duneLocalBasis. 
  | 
|   | 
| concept   | BlockedIndexBasis | 
|   | Concept to check if a basis uses either BlockedLexicographic or BlockedInterleaved indexing strategy. 
  | 
|   | 
| concept   | PathFollowingStrategy | 
|   | Concept defining the requirements for a path-following strategy. 
  | 
|   | 
| concept   | AdaptiveStepSizingStrategy | 
|   | Concept to check if a type implements all the needed functions to be an adaptive step sizing method. 
  | 
|   | 
| concept   | LinearSolverCheck | 
|   | Concept to check if a linear solver implements all the needed functions for given vector and matrix types. 
  | 
|   | 
| concept   | NonLinearSolverCheckForPathFollowing | 
|   | Concept to check if a non-linear solver with its non-linear operator satisfies requirements for path following. 
  | 
|   | 
| concept   | MultiplyAble | 
|   | Concept defining the requirements for types that support multiplication. 
  | 
|   | 
| concept   | AddAble | 
|   | Concept defining the requirements for types that support addition. 
  | 
|   | 
| concept   | SubstractAble | 
|   | Concept defining the requirements for types that support subtraction. 
  | 
|   | 
| concept   | MultiplyAssignAble | 
|   | Concept defining the requirements for types that support in-place multiplication. 
  | 
|   | 
| concept   | DivideAssignAble | 
|   | Concept defining the requirements for types that support in-place division. 
  | 
|   | 
| concept   | AddAssignAble | 
|   | Concept defining the requirements for types that support in-place addition. 
  | 
|   | 
| concept   | SubstractAssignAble | 
|   | Concept defining the requirements for types that support in-place subtraction. 
  | 
|   | 
| concept   | DivideAble | 
|   | Concept defining the requirements for types that support division. 
  | 
|   | 
| concept   | NegateAble | 
|   | Concept defining the requirements for types that support negation. 
  | 
|   | 
| concept   | TransposeAble | 
|   | Concept defining the requirements for types that support transposition. 
  | 
|   | 
| concept   | IsFunctorWithArgs | 
|   | Concept defining the requirements for functors with arguments. 
  | 
|   | 
| concept   | EigenVector | 
|   | Concept defining the requirements for Eigen vectors. 
  | 
|   | 
| concept   | EigenMatrix | 
|   | Concept defining the requirements for Eigen matrices. This also includes Eigen vectors. 
  | 
|   | 
| concept   | IsMaterial | 
|   | Concept defining the requirements for a material type. 
  | 
|   | 
| concept   | ResultType | 
|   | A concept to check if a template type satisfies the ResultType requirements. 
  | 
|   | 
| concept   | FlatAssembler | 
|   | Concept representing the requirements for a FlatAssembler.A type T satisfies FlatAssembler if it provides the necessary member functions and data types for assembling sparse matrices in a flat structure. 
  | 
|   |