MFEM  v4.6.0
Finite element discretization library
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
mfem Namespace Reference

Namespaces

 ad
 
 bin_io
 
 blocksolvers
 
 ceed
 
 common
 
 ElasticityKernels
 
 electromagnetics
 
 Ginkgo
 
 KDTreeNorms
 
 KernelHelpers
 
 kernels
 
 navier
 
 petsc
 
 slepc
 
 spde
 
 SubMeshUtils
 
 superlu
 
 TmplPoly_1D
 
 TransferKernels
 
 vtk_xml
 

Classes

class  AB1Solver
 
class  AB2Solver
 
class  AB3Solver
 
class  AB4Solver
 
class  AB5Solver
 
class  AbstractErrorEstimator
 Base class for all error estimators. More...
 
class  AbstractSparseMatrix
 Abstract data type for sparse matrices. More...
 
class  AdamsBashforthSolver
 
class  AdamsMoultonSolver
 
class  AdaptivityEvaluator
 
class  ADIOS2DataCollection
 
class  adios2stream
 
class  AdvectionOper
 
class  AdvectorCG
 
class  AlgoimIntegrationRule
 
class  AM0Solver
 
class  AM1Solver
 
class  AM2Solver
 
class  AM3Solver
 
class  AM4Solver
 
class  AmgXSolver
 
class  AnalyticAdaptTC
 
class  AnisotropicErrorEstimator
 The AnisotropicErrorEstimator class is the base class for all error estimators that compute one non-negative real (double) number and an anisotropic flag for every element in the Mesh. More...
 
class  ARKStepSolver
 Interface to ARKode's ARKStep module – additive Runge-Kutta methods. More...
 
class  Array
 
class  Array2D
 Dynamic 2D array using row-major layout. More...
 
class  Array3D
 
struct  AssignOp
 
struct  AutoSIMD
 
struct  AutoSIMD< double, 2, 16 >
 
struct  AutoSIMD< double, 4, 32 >
 
struct  AutoSIMD< double, 8, 64 >
 
struct  AutoSIMDTraits
 
class  AuxSpaceSmoother
 
class  AverageAccelerationSolver
 The classical midpoint method. More...
 
struct  Backend
 MFEM backends. More...
 
class  BackwardEulerSolver
 Backward Euler ODE solver. L-stable. More...
 
class  BaseKDTreeNodalProjection
 Base class for KDTreeNodalProjection. More...
 
class  BaseQFunction
 Base class for representing function at integration points. More...
 
class  BasisType
 Possible basis types. Note that not all elements can use all BasisType(s). More...
 
class  BatchedLOR_ADS
 
class  BatchedLOR_AMS
 
class  BatchedLOR_H1
 
class  BatchedLOR_ND
 
class  BatchedLOR_RT
 
class  BatchedLORAssembly
 Efficient batched assembly of LOR discretizations on device. More...
 
class  BatchedLORKernel
 Abstract base class for the batched LOR assembly kernels. More...
 
class  BiCGSTABSolver
 BiCGSTAB method. More...
 
class  BiCubic2DFiniteElement
 A 2D bi-cubic element on a square with uniformly spaces nodes. More...
 
class  BiCubic3DFiniteElement
 Class for cubic FE on wedge. More...
 
class  BiLinear2DFiniteElement
 A 2D bi-linear element on a square with nodes at the vertices of the square. More...
 
class  BiLinear3DFiniteElement
 Class for linear FE on wedge. More...
 
class  BilinearForm
 A "square matrix" operator for the associated FE space and BLFIntegrators The sum of all the BLFIntegrators can be used form the matrix M. This class also supports other assembly levels specified via the SetAssemblyLevel() function. More...
 
class  BilinearFormExtension
 Class extending the BilinearForm class to support different AssemblyLevels. More...
 
class  BilinearFormIntegrator
 Abstract base class BilinearFormIntegrator. More...
 
class  BiQuad2DFiniteElement
 A 2D bi-quadratic element on a square with uniformly spaced nodes. More...
 
class  BiQuadPos2DFiniteElement
 
class  BiQuadratic3DFiniteElement
 Class for quadratic FE on wedge. More...
 
class  BlockArray
 
class  BlockDiagonalPreconditioner
 A class to handle Block diagonal preconditioners in a matrix-free implementation. More...
 
class  BlockILU
 
class  BlockLowerTriangularPreconditioner
 A class to handle Block lower triangular preconditioners in a matrix-free implementation. More...
 
class  BlockMatrix
 
class  BlockNonlinearForm
 A class representing a general block nonlinear operator defined on the Cartesian product of multiple FiniteElementSpaces. More...
 
class  BlockNonlinearFormIntegrator
 
class  BlockOperator
 A class to handle Block systems in a matrix-free implementation. More...
 
class  BlockStaticCondensation
 Class that performs static condensation of interior dofs for multiple FE spaces. This class is used in class DPGWeakFrom. It is suitable for systems resulting from the discretization of multiple FE spaces. It eliminates the dofs associated with the interior of the elements and returns the reduced system which contains only the interfacial dofs. The ordering of the dofs in the matrix is implied by the ordering given by the FE spaces, but there is no assumption on the ordering of the FE spaces. This class handles both serial and parallel FE spaces. More...
 
class  BlockVector
 A class to handle Vectors in a block fashion. More...
 
class  BoundaryFlowIntegrator
 
class  BoundaryLFIntegrator
 Class for boundary integration L(v) := (g, v) More...
 
class  BoundaryMassIntegrator
 
class  BoundaryNormalLFIntegrator
 Class for boundary integration \( L(v) = (g \cdot n, v) \). More...
 
class  BoundaryTangentialLFIntegrator
 Class for boundary integration \( L(v) = (g \cdot \tau, v) \) in 2D. More...
 
class  CartesianCoefficient
 
class  CartesianPML
 Class for setting up a simple Cartesian PML region. More...
 
class  CartesianXCoefficient
 Scalar coefficient which returns the x-component of the evaluation point. More...
 
class  CartesianYCoefficient
 Scalar coefficient which returns the y-component of the evaluation point. More...
 
class  CartesianZCoefficient
 Scalar coefficient which returns the z-component of the evaluation point. More...
 
class  CentralDifferenceSolver
 
class  CGSolver
 Conjugate gradient method. More...
 
class  ChangeOfBasis_L2
 Change of basis operator between L2 spaces. More...
 
class  ChangeOfBasis_RT
 
class  CholeskyFactors
 
struct  CoarseFineTransformations
 Defines the coarse-fine transformations of all fine elements. More...
 
class  Coefficient
 Base class Coefficients that optionally depend on space and time. These are used by the BilinearFormIntegrator, LinearFormIntegrator, and NonlinearFormIntegrator classes to represent the physical coefficients in the PDEs that are being discretized. This class can also be used in a more general way to represent functions that don't necessarily belong to a FE space, e.g., to project onto GridFunctions to use as initial conditions, exact solutions, etc. See, e.g., ex4 or ex22 for these uses. More...
 
class  CoefficientRefiner
 Refinement operator to control data oscillation. More...
 
class  CoefficientVector
 Class to represent a coefficient evaluated at quadrature points. More...
 
struct  ColumnMajorLayout2D
 
struct  ColumnMajorLayout3D
 
struct  ColumnMajorLayout4D
 
class  ComplexBlockStaticCondensation
 Class that performs static condensation of interior dofs for multiple FE spaces for complex systems (see BlockStaticCondensation). It's used by the class ComplexDPGWeakForm. More...
 
class  ComplexCholeskyFactors
 
class  ComplexDenseMatrix
 Specialization of the ComplexOperator built from a pair of Dense Matrices. The purpose of this specialization is to support the inverse of a ComplexDenseMatrix and various MatMat operations See ComplexOperator documentation for more information. More...
 
class  ComplexDPGWeakForm
 Class representing the DPG weak formulation for complex valued systems (see the class DPGWeakForm). More...
 
class  ComplexFactors
 
class  ComplexGridFunction
 
class  ComplexHypreParMatrix
 Specialization of the ComplexOperator built from a pair of HypreParMatrices. More...
 
class  ComplexLinearForm
 
class  ComplexLUFactors
 
class  ComplexOperator
 Mimic the action of a complex operator using two real operators. More...
 
class  ComplexSparseMatrix
 Specialization of the ComplexOperator built from a pair of Sparse Matrices. More...
 
class  ComplexUMFPackSolver
 Interface with UMFPack solver specialized for ComplexSparseMatrix This approach avoids forming a monolithic SparseMatrix which leads to increased memory and flops. More...
 
class  ConduitDataCollection
 Data collection that uses the Conduit Mesh Blueprint specification. More...
 
class  ConformingFaceRestriction
 Operator that extracts face degrees of freedom for H1, ND, or RT FiniteElementSpaces. More...
 
class  ConformingProlongationOperator
 Auxiliary class used by ParFiniteElementSpace. More...
 
struct  Connection
 Helper struct for defining a connectivity table, see Table::MakeFromList. More...
 
class  ConservativeConvectionIntegrator
 -alpha (u, q . grad v), negative transpose of ConvectionIntegrator More...
 
class  Const2DFECollection
 Piecewise-constant discontinuous finite elements in 2D. This class is kept only for backward compatibility, consider using L2_FECollection instead. More...
 
class  Const3DFECollection
 Piecewise-constant discontinuous finite elements in 3D. This class is kept only for backward compatibility, consider using L2_FECollection instead. More...
 
class  ConstantCoefficient
 A coefficient that is constant across space and time. More...
 
class  ConstrainedOperator
 Square Operator for imposing essential boundary conditions using only the action, Mult(), of a given unconstrained Operator. More...
 
class  ConstrainedSolver
 An abstract class to solve the constrained system \( Ax = f \) subject to the constraint \( B x = r \). More...
 
class  ConvectionIntegrator
 alpha (q . grad u, v) More...
 
class  ConvectiveVectorConvectionNLFIntegrator
 
class  ConvergenceStudy
 Class to compute error and convergence rates. It supports H1, H(curl) (ND elements), H(div) (RT elements) and L2 (DG). More...
 
class  CPardisoSolver
 MKL Parallel Direct Sparse Solver for Clusters. More...
 
class  CrossCrossCoefficient
 Matrix coefficient defined as -a k x k x, for a vector k and scalar a. More...
 
class  CrouzeixRaviartFECollection
 Crouzeix-Raviart nonconforming elements in 2D. More...
 
class  CrouzeixRaviartFiniteElement
 A 2D Crouzeix-Raviart element on triangle. More...
 
class  CrouzeixRaviartQuadFiniteElement
 A 2D Crouzeix-Raviart finite element on square. More...
 
class  Cubic1DFiniteElement
 A 1D cubic element with uniformly spaced nodes. More...
 
class  Cubic2DFiniteElement
 A 2D cubic element on a triangle with uniformly spaced nodes. More...
 
class  Cubic3DFiniteElement
 
class  CubicDiscont2DFECollection
 Piecewise-cubic discontinuous finite elements in 2D. This class is kept only for backward compatibility, consider using L2_FECollection instead. More...
 
class  CubicFECollection
 Piecewise-(bi)cubic continuous finite elements. More...
 
class  CurlCurlIntegrator
 Integrator for (curl u, curl v) for Nedelec elements. More...
 
class  CurlGridFunctionCoefficient
 Vector coefficient defined as the Curl of a vector GridFunction. More...
 
class  CurlInterpolator
 
class  Cut
 All subclasses of Cut will implement intersection routines and quadrature point generation within the cut in the intersection of two elements. Although, this class is designed to support MortarAssembler and ParMortarAssembler, it can be used for any problem requiring to perform Petrov-Galerkin formulations on non-matching elements. More...
 
struct  CuWrap
 
struct  CuWrap< 1 >
 
struct  CuWrap< 2 >
 
struct  CuWrap< 3 >
 
class  CVODESolver
 Interface to the CVODE library – linear multi-step methods. More...
 
class  CVODESSolver
 
class  CylindricalAzimuthalCoefficient
 
class  CylindricalRadialCoefficient
 
class  DataCollection
 
class  DeltaCoefficient
 Delta function coefficient optionally multiplied by a weight coefficient and a scaled time dependent C-function. More...
 
class  DeltaLFIntegrator
 Abstract class for integrators that support delta coefficients. More...
 
class  DenseMatrix
 Data type dense matrix using column-major storage. More...
 
class  DenseMatrixEigensystem
 
class  DenseMatrixGeneralizedEigensystem
 
class  DenseMatrixInverse
 
class  DenseMatrixSVD
 Class for Singular Value Decomposition of a DenseMatrix. More...
 
class  DenseSymmetricMatrix
 
class  DenseTensor
 Rank 3 tensor (array of matrices) More...
 
class  DerivativeIntegrator
 Class for integrating (Q D_i(u), v); u and v are scalars. More...
 
class  DeterminantCoefficient
 Scalar coefficient defined as the determinant of a matrix coefficient. More...
 
class  Device
 The MFEM Device class abstracts hardware devices such as GPUs, as well as programming models such as CUDA, OCCA, RAJA and OpenMP. More...
 
class  DeviceConformingProlongationOperator
 Auxiliary device class used by ParFiniteElementSpace. More...
 
struct  DeviceDofQuadLimits
 Maximum number of 1D DOFs or quadrature points for the current runtime configuration of the Device (used in fallback kernels). More...
 
class  DeviceTensor
 A basic generic Tensor class, appropriate for use on the GPU. More...
 
class  DG_Interface_FECollection
 
class  DGDiffusionBR2Integrator
 
class  DGDiffusionIntegrator
 
class  DGDirichletLFIntegrator
 
class  DGElasticityDirichletLFIntegrator
 
class  DGElasticityIntegrator
 
class  DGIndexer
 
class  DGMassInverse
 Solver for the discontinuous Galerkin mass matrix. More...
 
class  DGTraceIntegrator
 
class  DiffMappedGridFunctionCoefficient
 Returns f(u(x)) - f(v(x)) where u, v are scalar GridFunctions and f:R → R. More...
 
class  DiffusionIntegrator
 
class  DiffusionObjIntegrator
 
class  DiffusionSolver
 Class for solving Poisson's equation: More...
 
class  DirectSubBlockSolver
 Block diagonal solver for A, each block is inverted by direct solver. More...
 
class  DiscreteAdaptTC
 
class  DiscreteInterpolator
 
class  DiscreteLinearOperator
 
class  DiscreteUpwindLOSolver
 
class  DivDivIntegrator
 (Q div u, div v) for RT elements More...
 
class  DivergenceGridFunctionCoefficient
 Scalar coefficient defined as the Divergence of a vector GridFunction. More...
 
class  DivergenceInterpolator
 
class  DofToQuad
 Structure representing the matrices/tensors needed to evaluate (in reference space) the values, gradients, divergences, or curls of a FiniteElement at a the quadrature points of a given IntegrationRule. More...
 
class  DofTransformation
 
class  DomainLFGradIntegrator
 Class for domain integrator L(v) := (f, grad v) More...
 
class  DomainLFIntegrator
 Class for domain integration L(v) := (f, v) More...
 
class  DPGWeakForm
 Class representing the DPG weak formulation. Given the variational formulation a(u,v) = b(v), (or A u = b, where <Au,v> = a(u,v)) this class forms the DPG linear system A^T G^-1 A u = A^T G^-1 b This system results from the minimum residual formulation u = argmin_w ||G^-1(b - Aw)||. Here G is a symmetric positive definite matrix resulting from the discretization of the Riesz operator on the test space. Since the test space is broken (discontinuous), G is defined and inverted element-wise and the assembly of the global system is performed in the same manner as the standard FEM method. Note that DPGWeakForm can handle multiple Finite Element spaces. More...
 
class  DSmoother
 Data type for scaled Jacobi-type smoother of sparse matrix. More...
 
class  DSTable
 
class  DynamicVectorLayout
 
class  EABilinearFormExtension
 Data and methods for element-assembled bilinear forms. More...
 
class  Edge
 Class that implements an edge defined by a start and end point. More...
 
class  ElasticityDiagonalPreconditioner
 ElasticityDiagonalPreconditioner acts as a matrix-free preconditioner for ElasticityOperator. More...
 
class  ElasticityGradientOperator
 ElasticityGradientOperator is a wrapper class to pass ElasticityOperator::AssembleGradientDiagonal and ElasticityOperator::GradientMult as a separate object through NewtonSolver. More...
 
class  ElasticityIntegrator
 
class  ElasticityOperator
 
class  Element
 Abstract data type element. More...
 
class  ElementDofIndexer
 
class  ElementRestriction
 Operator that converts FiniteElementSpace L-vectors to E-vectors. More...
 
class  ElementRestrictionOperator
 Abstract base class that defines an interface for element restrictions. More...
 
class  ElementTransformation
 
class  EliminationCGSolver
 
class  EliminationGMRESSolver
 
class  EliminationProjection
 
class  EliminationSolver
 Solve constrained system by eliminating the constraint; see ConstrainedSolver. More...
 
class  Eliminator
 Perform elimination of a single constraint. More...
 
struct  Embedding
 Defines the position of a fine element within a coarse element. More...
 
class  ErrorEstimator
 Base class for all element based error estimators. More...
 
class  ErrorException
 Exception class thrown when MFEM encounters an error and the current ErrorAction is set to MFEM_ERROR_THROW. More...
 
class  ESDIRK32Solver
 
class  ESDIRK33Solver
 
class  ExplicitRKSolver
 
class  Extrapolator
 
class  ExtrudeCoefficient
 Class used for extruding scalar GridFunctions. More...
 
class  FABilinearFormExtension
 Data and methods for fully-assembled bilinear forms. More...
 
class  FaceElementTransformations
 A specialized ElementTransformation class representing a face and its two neighboring elements. More...
 
class  FaceGeometricFactors
 Structure for storing face geometric factors: coordinates, Jacobians, determinants of the Jacobians, and normal vectors. More...
 
class  FaceQuadratureInterpolator
 A class that performs interpolation from a face E-vector to quadrature point values and/or derivatives (Q-vectors) on the faces. More...
 
class  FaceQuadratureSpace
 Class representing the storage layout of a FaceQuadratureFunction. More...
 
class  FaceRestriction
 Base class for operators that extracts Face degrees of freedom. More...
 
class  Factors
 
class  FGMRESSolver
 FGMRES method. More...
 
class  FieldEvaluator
 complex_t - dof/qpt data type, real_t - ShapeEvaluator (FE basis) data type More...
 
class  FieldEvaluator_base
 Field evaluators – values of a given global FE grid function This is roughly speaking a templated version of GridFunction. More...
 
class  FindPointsGSLIB
 FindPointsGSLIB can robustly evaluate a GridFunction on an arbitrary collection of points. There are three key functions in FindPointsGSLIB: More...
 
class  FiniteElement
 Abstract class for all finite elements. More...
 
class  FiniteElementCollection
 Collection of finite elements from the same family in multiple dimensions. This class is used to match the degrees of freedom of a FiniteElementSpace between elements, and to provide the finite element restriction from an element to its boundary. More...
 
class  FiniteElementSpace
 Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of degrees of freedom. More...
 
class  FiniteElementSpaceHierarchy
 
class  FMSDataCollection
 Data collection that uses FMS. More...
 
class  ForwardEulerSolver
 The classical forward Euler method. More...
 
class  FoxGoodwinSolver
 
class  FunctionCoefficient
 A general function coefficient. More...
 
class  FunctionSpace
 Describes the function space on each element. More...
 
class  GaussBiLinear2DFiniteElement
 A 2D bi-linear element on a square with nodes at the "Gaussian" points. More...
 
class  GaussBiQuad2DFiniteElement
 A 2D bi-quadratic element on a square with nodes at the 9 "Gaussian" points. More...
 
class  GaussIntegrationRule
 
class  GaussLinear2DFiniteElement
 A linear element on a triangle with nodes at the 3 "Gaussian" points. More...
 
class  GaussLinearDiscont2DFECollection
 Version of LinearDiscont2DFECollection with dofs in the Gaussian points. More...
 
class  GaussQuad2DFiniteElement
 A quadratic element on triangle with nodes at the "Gaussian" points. More...
 
class  GaussQuadraticDiscont2DFECollection
 Version of QuadraticDiscont2DFECollection with dofs in the Gaussian points. More...
 
class  GeneralAMS
 Perform AMS cycle with generic Operator objects. More...
 
class  GeneralizedAlpha2Solver
 
class  GeneralizedAlphaSolver
 
class  GenericIntegrationRule
 
class  GeometricFactors
 Structure for storing mesh geometric factors: coordinates, Jacobians, and determinants of the Jacobians. More...
 
class  GeometricMultigrid
 Geometric multigrid associated with a hierarchy of finite element spaces. More...
 
class  Geometry
 
class  GeometryRefiner
 
class  GMRESSolver
 GMRES method. More...
 
class  GnuTLS_global_state
 
class  GnuTLS_session_params
 
class  GnuTLS_socketbuf
 
class  GnuTLS_status
 
class  GradComponentCoeff
 
class  GradientGridFunctionCoefficient
 Vector coefficient defined as the Gradient of a scalar GridFunction. More...
 
class  GradientIntegrator
 
class  GradientInterpolator
 
class  GridFunction
 Class for grid function - Vector with associated FE space. More...
 
class  GridFunctionCoefficient
 Coefficient defined by a GridFunction. This coefficient is mesh dependent. More...
 
class  GridFunctionPumi
 Class for PUMI grid functions. More...
 
class  GridTransfer
 Base class for transfer algorithms that construct transfer Operators between two finite element (FE) spaces. More...
 
class  GroupCommunicator
 Communicator performing operations within groups defined by a GroupTopology with arbitrary-size data associated with each group. More...
 
class  GroupConvectionIntegrator
 alpha (q . grad u, v) using the "group" FE discretization More...
 
class  GroupTopology
 
class  GSSmoother
 Data type for Gauss-Seidel smoother of sparse matrix. More...
 
class  H1_FECollection
 Arbitrary order H1-conforming (continuous) finite elements. More...
 
class  H1_FiniteElement
 
class  H1_FiniteElement< Geometry::CUBE, P >
 
class  H1_FiniteElement< Geometry::SEGMENT, P >
 
class  H1_FiniteElement< Geometry::SQUARE, P >
 
class  H1_FiniteElement< Geometry::TETRAHEDRON, P >
 
class  H1_FiniteElement< Geometry::TRIANGLE, P >
 
class  H1_FiniteElementSpace
 
class  H1_HexahedronElement
 Arbitrary order H1 elements in 3D on a cube. More...
 
class  H1_QuadrilateralElement
 Arbitrary order H1 elements in 2D on a square. More...
 
class  H1_SegmentElement
 Arbitrary order H1 elements in 1D. More...
 
class  H1_TetrahedronElement
 Arbitrary order H1 elements in 3D on a tetrahedron. More...
 
class  H1_Trace_FECollection
 Arbitrary order "H^{1/2}-conforming" trace finite elements defined on the interface between mesh elements (faces,edges,vertices); these are the trace FEs of the H1-conforming FEs. More...
 
class  H1_TriangleElement
 Arbitrary order H1 elements in 2D on a triangle. More...
 
class  H1_WedgeElement
 Arbitrary order H1 elements in 3D on a wedge. More...
 
class  H1Pos_FECollection
 Arbitrary order H1-conforming (continuous) finite elements with positive basis functions. More...
 
class  H1Pos_HexahedronElement
 Arbitrary order H1 elements in 3D utilizing the Bernstein basis on a cube. More...
 
class  H1Pos_QuadrilateralElement
 Arbitrary order H1 elements in 2D utilizing the Bernstein basis on a square. More...
 
class  H1Pos_SegmentElement
 Arbitrary order H1 elements in 1D utilizing the Bernstein basis. More...
 
class  H1Pos_TetrahedronElement
 
class  H1Pos_TriangleElement
 Arbitrary order H1 elements in 2D utilizing the Bernstein basis on a triangle. More...
 
class  H1Pos_WedgeElement
 Arbitrary order H1 elements in 3D utilizing the Bernstein basis on a wedge. More...
 
class  H1Ser_FECollection
 
class  H1Ser_QuadrilateralElement
 Arbitrary order H1 serendipity elements in 2D on a quad. More...
 
struct  Hashed2
 
struct  Hashed4
 
class  HashFunction
 Hash function for data sequences. More...
 
class  HashTable
 
class  HdivSaddlePointSolver
 Solve the H(div) saddle-point system using MINRES with matrix-free block-diagonal preconditioning. More...
 
class  Hexahedron
 Data type hexahedron element. More...
 
class  HHTAlphaSolver
 
class  HiopNlpOptimizer
 Adapts the HiOp functionality to the MFEM OptimizationSolver interface. More...
 
class  HiopOptimizationProblem
 Internal class - adapts the OptimizationProblem class to HiOp's interface. More...
 
class  HiOpProblem
 Users can inherit this class to access to HiOp-specific functionality. More...
 
struct  HipWrap
 
struct  HipWrap< 1 >
 
struct  HipWrap< 2 >
 
struct  HipWrap< 3 >
 
class  Hybridization
 
class  HyperelasticModel
 Abstract class for hyperelastic models. More...
 
class  HyperelasticNLFIntegrator
 
class  Hypre
 A simple singleton class for hypre's global settings, that 1) calls HYPRE_Init() and sets some GPU-relevant options at construction and 2) calls HYPRE_Finalize() at destruction. More...
 
class  HypreADS
 The Auxiliary-space Divergence Solver in hypre. More...
 
class  HypreAME
 
class  HypreAMS
 The Auxiliary-space Maxwell Solver in hypre. More...
 
class  HypreBoomerAMG
 The BoomerAMG solver in hypre. More...
 
class  HypreDiagScale
 Jacobi preconditioner in hypre. More...
 
class  HypreEuclid
 
class  HypreFGMRES
 Flexible GMRES solver in hypre. More...
 
class  HypreGMRES
 GMRES solver in hypre. More...
 
class  HypreIdentity
 The identity operator as a hypre solver. More...
 
class  HypreILU
 Wrapper for Hypre's native parallel ILU preconditioner. More...
 
class  HypreLOBPCG
 
class  HypreParaSails
 The ParaSails preconditioner in hypre. More...
 
class  HypreParMatrix
 Wrapper for hypre's ParCSR matrix class. More...
 
class  HypreParVector
 Wrapper for hypre's parallel vector class. More...
 
class  HyprePCG
 PCG solver in hypre. More...
 
class  HypreSmoother
 Parallel smoothers in hypre. More...
 
class  HypreSolver
 Abstract class for hypre's solvers and preconditioners. More...
 
class  HypreTriSolve
 
class  IdentityInterpolator
 
class  IdentityMatrixCoefficient
 Constant matrix coefficient defined as the identity of dimension d. More...
 
class  IdentityOperator
 Identity Operator I: x -> x. More...
 
class  ifgzstream
 
class  ImplicitMidpointSolver
 Implicit midpoint method. A-stable, not L-stable. More...
 
class  IncompressibleNeoHookeanIntegrator
 
class  Init
 A class to initialize the size of a Tensor. More...
 
class  Init< Dim, Dim, T, Args... >
 
class  InnerProductCoefficient
 Scalar coefficient defined as the inner product of two vector coefficients. More...
 
class  IntegerSet
 A set of integers. More...
 
class  IntegrationPoint
 Class for integration point with weight. More...
 
class  IntegrationPointTransformation
 
class  IntegrationRule
 Class for an integration rule - an Array of IntegrationPoint. More...
 
class  IntegrationRules
 Container class for integration rules. More...
 
struct  InterpConfig
 
class  InterpolationGridTransfer
 Transfer data between a coarse mesh and an embedded refined mesh using interpolation. More...
 
class  InterpolationManager
 This class manages the storage and computation of the interpolations from master (coarse) face to slave (fine) face. More...
 
class  InterpolatorFP
 
struct  IntRuleCoefficient
 
class  InvariantsEvaluator2D
 Auxiliary class for evaluating the 2x2 matrix invariants and their first and second derivatives. More...
 
class  InvariantsEvaluator3D
 Auxiliary class for evaluating the 3x3 matrix invariants and their first and second derivatives. More...
 
class  InverseElementTransformation
 The inverse transformation of a given ElementTransformation. More...
 
class  InverseHarmonicModel
 
class  InverseIntegrator
 Integrator that inverts the matrix assembled by another integrator. More...
 
class  InverseMatrixCoefficient
 Matrix coefficient defined as the inverse a matrix coefficient. More...
 
class  isockstream
 
class  IsoparametricTransformation
 A standard isoparametric element transformation. More...
 
class  IterativeSolver
 Abstract base class for iterative solver. More...
 
class  IterativeSolverMonitor
 Abstract base class for an iterative solver monitor. More...
 
class  JumpScaling
 
class  KDTree
 
class  KDTreeNodalProjection
 
class  KellyErrorEstimator
 The KellyErrorEstimator class provides a fast error indication strategy for smooth scalar parallel problems. More...
 
class  KINSolver
 Interface to the KINSOL library – nonlinear solver methods. More...
 
class  KLUSolver
 Direct sparse solver using KLU. More...
 
class  KnotVector
 
class  L2_FECollection
 Arbitrary order "L2-conforming" discontinuous finite elements. More...
 
class  L2_FiniteElement
 
class  L2_FiniteElement< Geometry::CUBE, P >
 
class  L2_FiniteElement< Geometry::SEGMENT, P >
 
class  L2_FiniteElement< Geometry::SQUARE, P >
 
class  L2_FiniteElement< Geometry::TETRAHEDRON, P >
 
class  L2_FiniteElement< Geometry::TRIANGLE, P >
 
class  L2_FiniteElement_base
 
class  L2_FiniteElementSpace
 
class  L2_HexahedronElement
 Arbitrary order L2 elements in 3D on a cube. More...
 
class  L2_QuadrilateralElement
 Arbitrary order L2 elements in 2D on a square. More...
 
class  L2_SegmentElement
 Arbitrary order L2 elements in 1D on a segment. More...
 
class  L2_TetrahedronElement
 Arbitrary order L2 elements in 3D on a tetrahedron. More...
 
class  L2_TriangleElement
 Arbitrary order L2 elements in 2D on a triangle. More...
 
class  L2_WedgeElement
 Arbitrary order L2 elements in 3D on a wedge. More...
 
class  L2ElementRestriction
 Operator that converts L2 FiniteElementSpace L-vectors to E-vectors. More...
 
class  L2FaceRestriction
 Operator that extracts Face degrees of freedom for L2 spaces. More...
 
class  L2MortarIntegrator
 Integrator for scalar finite elements \( (u, v)_{L^2(\mathcal{T}_m \cap \mathcal{T}_s)}, u \in U(\mathcal{T}_m ) and v \in V(\mathcal{T}_s ) \). More...
 
class  L2Pos_HexahedronElement
 Arbitrary order L2 elements in 3D utilizing the Bernstein basis on a cube. More...
 
class  L2Pos_QuadrilateralElement
 Arbitrary order L2 elements in 2D utilizing the Bernstein basis on a square. More...
 
class  L2Pos_SegmentElement
 Arbitrary order L2 elements in 1D utilizing the Bernstein basis on a segment. More...
 
class  L2Pos_TetrahedronElement
 
class  L2Pos_TriangleElement
 Arbitrary order L2 elements in 2D utilizing the Bernstein basis on a triangle. More...
 
class  L2Pos_WedgeElement
 Arbitrary order L2 elements in 3D utilizing the Bernstein basis on a wedge. More...
 
class  L2ProjectionGridTransfer
 Transfer data in L2 and H1 finite element spaces between a coarse mesh and an embedded refined mesh using L2 projection. More...
 
class  L2ZienkiewiczZhuEstimator
 The L2ZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure where the flux averaging is replaced by a global L2 projection (requiring a mass matrix solve). More...
 
class  Lagrange1DFiniteElement
 A 1D element with uniform nodes. More...
 
class  LagrangeHexFiniteElement
 Tensor products of 1D Lagrange1DFiniteElement (only degree 2 is functional) More...
 
class  LBFGSSolver
 
class  LevelSetNormalGradCoeff
 
class  Linear1DFiniteElement
 A 1D linear element with nodes on the endpoints. More...
 
class  Linear2DFiniteElement
 A 2D linear element on triangle with nodes at the vertices of the triangle. More...
 
class  Linear3DFiniteElement
 A 3D linear element on a tetrahedron with nodes at the vertices of the tetrahedron. More...
 
class  LinearAccelerationSolver
 
class  LinearDiscont2DFECollection
 Piecewise-linear discontinuous finite elements in 2D. This class is kept only for backward compatibility, consider using L2_FECollection instead. More...
 
class  LinearDiscont3DFECollection
 Piecewise-linear discontinuous finite elements in 3D. This class is kept only for backward compatibility, consider using L2_FECollection instead. More...
 
class  LinearElasticitySolver
 Class for solving linear elasticity: More...
 
class  LinearFECollection
 Piecewise-(bi/tri)linear continuous finite elements. More...
 
class  LinearForm
 Vector with associated FE space and LinearFormIntegrators. More...
 
class  LinearFormExtension
 Class extending the LinearForm class to support assembly on devices. More...
 
class  LinearFormIntegrator
 Abstract base class LinearFormIntegrator. More...
 
class  LinearNonConf3DFECollection
 Piecewise-linear nonconforming finite elements in 3D. More...
 
class  LinearPyramidFiniteElement
 A linear element defined on a square pyramid. More...
 
class  LinearWedgeFiniteElement
 A linear element defined on a triangular prism. More...
 
class  ListOfIntegerSets
 List of integer sets. More...
 
class  Local_FECollection
 Discontinuous collection defined locally by a given finite element. More...
 
class  LORBase
 Abstract base class for LORDiscretization and ParLORDiscretization classes, which construct low-order refined versions of bilinear forms. More...
 
class  LORDiscretization
 Create and assemble a low-order refined version of a BilinearForm. More...
 
class  LORSolver
 Represents a solver of type SolverType created using the low-order refined version of the given BilinearForm or ParBilinearForm. More...
 
class  LORSolver< HypreADS >
 
class  LORSolver< HypreAMS >
 
class  LpErrorEstimator
 The LpErrorEstimator class compares the solution to a known coefficient. More...
 
class  LSZienkiewiczZhuEstimator
 The LSZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure [1,2] using face-based patches [3]. More...
 
class  LUFactors
 
class  LumpedIntegrator
 
class  MappedGridFunctionCoefficient
 Returns f(u(x)) where u is a scalar GridFunction and f:R → R. More...
 
class  MassIntegrator
 
class  MaterialTopology
 Virtual class to define the interface for defining the material topology. More...
 
class  Matrix
 Abstract data type matrix. More...
 
class  MatrixArrayCoefficient
 Matrix coefficient defined by a matrix of scalar coefficients. Coefficients that are not set will evaluate to zero in the vector. The coefficient is stored as a flat Array with indexing (i,j) -> i*width+j. More...
 
class  MatrixCoefficient
 Base class for Matrix Coefficients that optionally depend on time and space. More...
 
class  MatrixConstantCoefficient
 A matrix coefficient that is constant in space and time. More...
 
class  MatrixFreeAMS
 An auxiliary Maxwell solver for a high-order curl-curl system without high-order assembly. More...
 
class  MatrixFreeAuxiliarySpace
 Auxiliary space solvers for MatrixFreeAMS preconditioner. More...
 
class  MatrixFunctionCoefficient
 A matrix coefficient with an optional scalar coefficient multiplier q. The matrix function can either be represented by a std function or a constant matrix provided when constructing this object. More...
 
class  MatrixInverse
 Abstract data type for matrix inverse. More...
 
class  MatrixProductCoefficient
 Matrix coefficient defined as the product of two matrices. More...
 
class  MatrixRestrictedCoefficient
 Derived matrix coefficient that has the value of the parent matrix coefficient where it is active and is zero otherwise. More...
 
class  MatrixSumCoefficient
 Matrix coefficient defined as the linear combination of two matrices. More...
 
class  MatrixVectorProductCoefficient
 Vector coefficient defined as a product of a matrix coefficient and a vector coefficient. More...
 
class  MemAlloc
 
class  MemAllocNode
 
class  Memory
 Class used by MFEM to store pointers to host and/or device memory. More...
 
struct  MemoryIJData
 
class  MemoryManager
 
class  Mesh
 
class  MeshOperator
 The MeshOperator class serves as base for mesh manipulation classes. More...
 
class  MeshOperatorSequence
 
class  MFBilinearFormExtension
 Data and methods for matrix-free bilinear forms. More...
 
class  MFNonlinearFormExtension
 Data and methods for unassembled nonlinear forms. More...
 
class  MINRESSolver
 MINRES method. More...
 
class  MixedBilinearForm
 
class  MixedBilinearFormExtension
 Class extending the MixedBilinearForm class to support different AssemblyLevels. More...
 
class  MixedCrossCurlCurlIntegrator
 
class  MixedCrossCurlGradIntegrator
 
class  MixedCrossCurlIntegrator
 
class  MixedCrossGradCurlIntegrator
 
class  MixedCrossGradGradIntegrator
 
class  MixedCrossGradIntegrator
 
class  MixedCrossProductIntegrator
 
class  MixedCurlCurlIntegrator
 
class  MixedCurlIntegrator
 
class  MixedDirectionalDerivativeIntegrator
 
class  MixedDivGradIntegrator
 
class  MixedDotProductIntegrator
 
class  MixedGradDivIntegrator
 
class  MixedGradGradIntegrator
 
class  MixedScalarCrossCurlIntegrator
 
class  MixedScalarCrossGradIntegrator
 
class  MixedScalarCrossProductIntegrator
 
class  MixedScalarCurlIntegrator
 
class  MixedScalarDerivativeIntegrator
 
class  MixedScalarDivergenceIntegrator
 
class  MixedScalarIntegrator
 
class  MixedScalarMassIntegrator
 
class  MixedScalarVectorIntegrator
 
class  MixedScalarWeakCrossProductIntegrator
 
class  MixedScalarWeakCurlCrossIntegrator
 
class  MixedScalarWeakCurlIntegrator
 
class  MixedScalarWeakDerivativeIntegrator
 
class  MixedScalarWeakDivergenceIntegrator
 
class  MixedScalarWeakGradientIntegrator
 
class  MixedVectorCurlIntegrator
 
class  MixedVectorDivergenceIntegrator
 
class  MixedVectorGradientIntegrator
 
class  MixedVectorIntegrator
 
class  MixedVectorMassIntegrator
 
class  MixedVectorProductIntegrator
 
class  MixedVectorWeakCurlIntegrator
 
class  MixedVectorWeakDivergenceIntegrator
 
class  MixedWeakCurlCrossIntegrator
 
class  MixedWeakDivCrossIntegrator
 
class  MixedWeakGradDotIntegrator
 
class  MortarAssembler
 This class implements the serial variational transfer between finite element spaces. Variational transfer has been shown to have better approximation properties than standard interpolation. This facilities can be used for supporting applications which require the handling of non matching meshes. For instance: General multi-physics problems, fluid structure interaction, or even visualization of average quantities within subvolumes This algorithm allows to perform quadrature in the intersection of elements of two separate and unrelated meshes. It generates quadrature rules in the intersection which allows us to integrate-with to machine precision using the mfem::MortarIntegrator interface. See https://doi.org/10.1137/15M1008361 for and in-depth explanation. At this time curved elements are not supported. More...
 
class  MortarIntegrator
 Interface for mortar element assembly. The MortarIntegrator interface is used for performing Petrov-Galerkin finite element assembly on intersections between elements. The quadrature rules are to be generated by a cut algorithm (e.g., mfem::Cut). The quadrature rules are defined in the respective trial and test reference frames. Trial and test spaces can be associated with different element shapes (e.g., triangles and quadrilaterals) and different polynomial orders (e.g., 1 and 4). This class is designed to work in conjunction with the MFEM/moonolith module but it can be used also for other applications. More...
 
class  Mpi
 A simple singleton class that calls MPI_Init() at construction and MPI_Finalize() at destruction. It also provides easy access to MPI_COMM_WORLD's rank and size. More...
 
class  MPI_Session
 A simple convenience class based on the Mpi singleton class above. Preserved for backward compatibility. New code should use Mpi::Init() and other Mpi methods instead. More...
 
struct  MPITypeMap
 Helper struct to convert a C++ type to an MPI type. More...
 
struct  MPITypeMap< double >
 
struct  MPITypeMap< int >
 
class  Multigrid
 Multigrid solver class. More...
 
class  MultigridBase
 Abstract base class for Multigrid solvers. More...
 
class  MUMPSSolver
 MUMPS: A Parallel Sparse Direct Solver. More...
 
class  MyEnergyFunctor
 
class  MyResidualFunctor
 
class  named_ifgzstream
 
class  NamedFieldsMap
 Lightweight adaptor over an std::map from strings to pointer to T. More...
 
struct  NCInterpConfig
 
class  NCL2FaceRestriction
 Operator that extracts face degrees of freedom for L2 nonconforming spaces. More...
 
class  NCMesh
 A class for non-conforming AMR. The class is not used directly by the user, rather it is an extension of the Mesh class. More...
 
class  ND1_3DFECollection
 Lowest order Nedelec finite elements in 3D. This class is kept only for backward compatibility, consider using the new ND_FECollection instead. More...
 
class  ND_FECollection
 Arbitrary order H(curl)-conforming Nedelec finite elements. More...
 
class  ND_HexahedronElement
 Arbitrary order Nedelec elements in 3D on a cube. More...
 
class  ND_QuadrilateralElement
 Arbitrary order Nedelec elements in 2D on a square. More...
 
class  ND_R1D_FECollection
 Arbitrary order 3D H(curl)-conforming Nedelec finite elements in 1D. More...
 
class  ND_R1D_PointElement
 A 0D Nedelec finite element for the boundary of a 1D domain. More...
 
class  ND_R1D_SegmentElement
 Arbitrary order, three component, Nedelec elements in 1D on a segment. More...
 
class  ND_R2D_FECollection
 Arbitrary order 3D H(curl)-conforming Nedelec finite elements in 2D. More...
 
class  ND_R2D_FiniteElement
 
class  ND_R2D_QuadrilateralElement
 Arbitrary order Nedelec 3D elements in 2D on a square. More...
 
class  ND_R2D_SegmentElement
 
class  ND_R2D_Trace_FECollection
 Arbitrary order 3D H(curl)-trace finite elements in 2D defined on the interface between mesh elements (edges); these are the tangential trace FEs of the H(curl)-conforming FEs. More...
 
class  ND_R2D_TriangleElement
 Arbitrary order Nedelec 3D elements in 2D on a triangle. More...
 
class  ND_SegmentElement
 Arbitrary order Nedelec elements in 1D on a segment. More...
 
class  ND_StatelessDofTransformation
 
class  ND_TetDofTransformation
 DoF transformation implementation for the Nedelec basis on tetrahedra. More...
 
class  ND_TetrahedronElement
 Arbitrary order Nedelec elements in 3D on a tetrahedron. More...
 
class  ND_TetStatelessDofTransformation
 DoF transformation implementation for the Nedelec basis on tetrahedra. More...
 
class  ND_Trace_FECollection
 Arbitrary order H(curl)-trace finite elements defined on the interface between mesh elements (faces,edges); these are the tangential trace FEs of the H(curl)-conforming FEs. More...
 
class  ND_TriangleElement
 Arbitrary order Nedelec elements in 2D on a triangle. More...
 
class  ND_TriDofTransformation
 DoF transformation implementation for the Nedelec basis on triangles. More...
 
class  ND_TriStatelessDofTransformation
 
class  ND_WedgeDofTransformation
 DoF transformation implementation for the Nedelec basis on wedge elements. More...
 
class  ND_WedgeElement
 
class  ND_WedgeStatelessDofTransformation
 DoF transformation implementation for the Nedelec basis on wedge elements. More...
 
class  Nedelec1HexFiniteElement
 A 3D 1st order Nedelec element on a cube. More...
 
class  Nedelec1PyrFiniteElement
 A 3D 1st order Nedelec element on a pyramid. More...
 
class  Nedelec1TetFiniteElement
 A 3D 1st order Nedelec element on a tetrahedron. More...
 
class  Nedelec1WdgFiniteElement
 A 3D 1st order Nedelec element on a wedge. More...
 
class  NeoHookeanModel
 
class  NewmarkSolver
 
class  NewtonSolver
 Newton's method for solving F(x)=b for a given operator F. More...
 
class  NNLSSolver
 
class  NodalFiniteElement
 Class for standard nodal finite elements. More...
 
class  NodalTensorFiniteElement
 
class  NodeExtrudeCoefficient
 Class used to extrude the nodes of a mesh. More...
 
class  NonconservativeDGTraceIntegrator
 
class  NonlinearForm
 
class  NonlinearFormExtension
 Class extending the NonlinearForm class to support the different AssemblyLevels. More...
 
class  NonlinearFormIntegrator
 This class is used to express the local action of a general nonlinear finite element operator. In addition it may provide the capability to assemble the local gradient operator and to compute the local energy. More...
 
class  NormalGradCoeff
 
class  NormalGradComponentCoeff
 
class  NormalInterpolator
 
class  NormalizedVectorCoefficient
 Vector coefficient defined as a normalized vector field (returns v/|v|) More...
 
class  NormalTraceIntegrator
 
class  NormalTraceJumpIntegrator
 
struct  NoSIMDTraits
 
class  NURBS1DFiniteElement
 An arbitrary order 1D NURBS element on a segment. More...
 
class  NURBS2DFiniteElement
 An arbitrary order 2D NURBS element on a square. More...
 
class  NURBS3DFiniteElement
 An arbitrary order 3D NURBS element on a cube. More...
 
class  NURBSExtension
 
class  NURBSFECollection
 Arbitrary order non-uniform rational B-splines (NURBS) finite elements. More...
 
class  NURBSFiniteElement
 An arbitrary order and dimension NURBS element. More...
 
class  NURBSMeshRules
 Class for defining different integration rules on each NURBS patch. More...
 
class  NURBSPatch
 
class  NURBSPatchMap
 
class  OctetTrussTopology
 
class  ODESolver
 Abstract class for solving systems of ODEs: dx/dt = f(x,t) More...
 
struct  OffsetStridedLayout1D
 
struct  OffsetStridedLayout2D
 
struct  OffsetStridedLayout3D
 
struct  OffsetStridedLayout4D
 
class  ofgzstream
 
class  Operator
 Abstract operator. More...
 
class  OperatorChebyshevSmoother
 Chebyshev accelerated smoothing with given vector, no matrix necessary. More...
 
class  OperatorHandle
 Pointer to an Operator of a specified type. More...
 
class  OperatorJacobiSmoother
 Jacobi smoothing for a given bilinear form (no matrix necessary). More...
 
class  OptimizationProblem
 
class  OptimizationSolver
 Abstract solver for OptimizationProblems. More...
 
class  OptionsParser
 
class  Ordering
 The ordering method used when the number of unknowns per mesh node (vector dimension) is bigger than 1. More...
 
class  OrthoSolver
 Solver wrapper which orthogonalizes the input and output vector. More...
 
class  osockstream
 
class  OuterProductCoefficient
 Matrix coefficient defined as the outer product of two vector coefficients. More...
 
class  OutStream
 Simple extension of std::ostream. More...
 
class  OversetFindPointsGSLIB
 OversetFindPointsGSLIB enables use of findpts for arbitrary number of overlapping grids. The parameters in this class are the same as FindPointsGSLIB with the difference of additional inputs required to account for more than 1 mesh. More...
 
class  P0HexFiniteElement
 A 3D constant element on a cube. More...
 
class  P0PyrFiniteElement
 A 3D constant element on a pyramid. More...
 
class  P0QuadFiniteElement
 A 2D constant element on a square. More...
 
class  P0SegmentFiniteElement
 A 1D constant element on a segment. More...
 
class  P0TetFiniteElement
 A 3D constant element on a tetrahedron. More...
 
class  P0TriangleFiniteElement
 A 2D constant element on a triangle. More...
 
class  P0WdgFiniteElement
 A 3D constant element on a wedge. More...
 
class  P0WedgeFiniteElement
 A 0th order L2 element on a Wedge. More...
 
class  P1OnQuadFECollection
 Linear (P1) finite elements on quadrilaterals. More...
 
class  P1OnQuadFiniteElement
 A 2D linear element on a square with 3 nodes at the vertices of the lower left triangle. More...
 
class  P1SegmentFiniteElement
 A 1D linear element with nodes at 1/3 and 2/3 (trace of RT1) More...
 
class  P1TetNonConfFiniteElement
 A 3D Crouzeix-Raviart element on the tetrahedron. More...
 
class  P2SegmentFiniteElement
 A 1D quadratic element with nodes at the Gaussian points (trace of RT2) More...
 
class  PABilinearFormExtension
 Data and methods for partially-assembled bilinear forms. More...
 
class  PADiscreteLinearOperatorExtension
 Partial assembly extension for DiscreteLinearOperator. More...
 
class  Pair
 A pair of objects. More...
 
class  PAMixedBilinearFormExtension
 Data and methods for partially-assembled mixed bilinear forms. More...
 
class  PANonlinearFormExtension
 Data and methods for partially-assembled nonlinear forms. More...
 
class  ParAdvectorCGOper
 Performs a single remap advection step in parallel. More...
 
class  ParametricBNLForm
 A class representing a general parametric block nonlinear operator defined on the Cartesian product of multiple FiniteElementSpaces. More...
 
class  ParametricBNLFormIntegrator
 
class  ParametricLinearDiffusion
 
class  ParaViewDataCollection
 Helper class for ParaView visualization data. More...
 
class  ParBilinearForm
 Class for parallel bilinear form. More...
 
class  ParBlockNonlinearForm
 A class representing a general parallel block nonlinear operator defined on the Cartesian product of multiple ParFiniteElementSpaces. More...
 
class  ParComplexDPGWeakForm
 Class representing the parallel weak formulation. (Convenient for DPG Equations) More...
 
class  ParComplexGridFunction
 
class  ParComplexLinearForm
 
class  ParDiscreteLinearOperator
 
class  PardisoSolver
 MKL Parallel Direct Sparse Solver PARDISO. More...
 
class  ParDPGWeakForm
 Class representing the parallel weak formulation. (Convenient for DPG Equations) More...
 
class  ParFiniteElementSpace
 Abstract parallel finite element space. More...
 
class  ParFiniteElementSpaceHierarchy
 
class  ParGridFunction
 Class for parallel grid function. More...
 
class  ParL2FaceRestriction
 Operator that extracts Face degrees of freedom in parallel. More...
 
class  ParLinearForm
 Class for parallel linear form. More...
 
class  ParLORDiscretization
 Create and assemble a low-order refined version of a ParBilinearForm. More...
 
class  ParMesh
 Class for parallel meshes. More...
 
class  ParMixedBilinearForm
 Class for parallel bilinear form using different test and trial FE spaces. More...
 
class  ParMortarAssembler
 This class implements the parallel variational transfer between finite element spaces. Variational transfer has been shown to have better approximation properties than standard interpolation. This facilities can be used for supporting applications which require the handling of non matching meshes. For instance: General multi-physics problems, fluid structure interaction, or even visualization of average quantities within subvolumes. This particular code is also used with LLNL for large scale multilevel Monte Carlo simulations. This algorithm allows to perform quadrature in the intersection of elements of two separate, unrelated, and arbitrarily distributed meshes. It generates quadrature rules in the intersection which allows us to integrate with to machine precision using the mfem::MortarIntegrator interface. See https://doi.org/10.1137/15M1008361 for and in-depth explanation. At this time curved elements are not supported. Convex non-affine elements are partially supported, however, high order (>3) finite element discretizations or nonlinear geometric transformations might generate undesired oscillations. Discontinuous fields in general can only be mapped to order 0 destination fields. For such cases localized versions of the projection will have to be developed. More...
 
class  ParNCH1FaceRestriction
 Operator that extracts Face degrees of freedom for NCMesh in parallel. More...
 
class  ParNCL2FaceRestriction
 Operator that extracts Face degrees of freedom for NCMesh in parallel. More...
 
class  ParNCMesh
 A parallel extension of the NCMesh class. More...
 
class  ParNonlinearForm
 Parallel non-linear operator on the true dofs. More...
 
class  ParNURBSExtension
 
class  ParParametricBNLForm
 A class representing a general parametric parallel block nonlinear operator defined on the Cartesian product of multiple ParFiniteElementSpaces. More...
 
class  ParPumiMesh
 Class for PUMI parallel meshes. More...
 
class  ParSesquilinearForm
 
class  ParSubMesh
 Subdomain representation of a topological parent in another ParMesh. More...
 
class  ParticleTopology
 Class that implements the particle topology. More...
 
class  ParTransferMap
 ParTransferMap represents a mapping of degrees of freedom from a source ParGridFunction to a destination ParGridFunction. More...
 
class  PenaltyConstrainedSolver
 Solve constrained system with penalty method; see ConstrainedSolver. More...
 
class  PenaltyGMRESSolver
 
class  PenaltyPCGSolver
 
class  PetscBCHandler
 Helper class for handling essential boundary conditions. More...
 
class  PetscBDDCSolver
 
class  PetscBDDCSolverParams
 Auxiliary class for BDDC customization. More...
 
class  PetscFieldSplitSolver
 
class  PetscH2Solver
 
class  PetscLinearSolver
 Abstract class for PETSc's linear solvers. More...
 
class  PetscMemory
 Wrapper for syncing PETSc's vector memory. More...
 
class  PetscNonlinearSolver
 Abstract class for PETSc's nonlinear solvers. More...
 
class  PetscODESolver
 Abstract class for PETSc's ODE solvers. More...
 
class  PetscParMatrix
 Wrapper for PETSc's matrix class. More...
 
class  PetscParVector
 
class  PetscPCGSolver
 
class  PetscPreconditioner
 Abstract class for PETSc's preconditioners. More...
 
class  PetscPreconditionerFactory
 
class  PetscSolver
 Abstract class for PETSc's solvers. More...
 
class  PetscSolverMonitor
 Abstract class for monitoring PETSc's solvers. More...
 
class  pLaplace
 
class  pLaplaceAD
 
class  pLaplaceSL
 
class  PmlCoefficient
 
class  PmlMatrixCoefficient
 
class  Point
 Data type point element. More...
 
class  PointFiniteElement
 A 0D point finite element. More...
 
class  Poly_1D
 Class for computing 1D special polynomials and their associated basis functions. More...
 
class  PositionVectorCoefficient
 
class  PositiveFiniteElement
 Class for finite elements utilizing the always positive Bernstein basis. More...
 
class  PositiveTensorFiniteElement
 
class  PowerCoefficient
 Scalar coefficient defined as a scalar raised to a power. More...
 
class  PowerMethod
 PowerMethod helper class to estimate the largest eigenvalue of an operator using the iterative power method. More...
 
class  PRefinementTransferOperator
 Matrix-free transfer operator between finite element spaces on the same mesh. More...
 
class  ProductCoefficient
 Scalar coefficient defined as the product of two scalar coefficients or a scalar and a scalar coefficient. More...
 
class  ProductOperator
 General product operator: x -> (A*B)(x) = A(B(x)). More...
 
class  ProductSolver
 
class  PumiMesh
 Base class for PUMI meshes. More...
 
class  PWCoefficient
 A piecewise coefficient with the pieces keyed off the element attribute numbers. More...
 
class  PWConstCoefficient
 A piecewise constant coefficient with the constants keyed off the element attribute numbers. More...
 
class  PWMatrixCoefficient
 A piecewise matrix-valued coefficient with the pieces keyed off the element attribute numbers. More...
 
class  PWVectorCoefficient
 A piecewise vector-valued coefficient with the pieces keyed off the element attribute numbers. More...
 
class  Pyramid
 Data type Pyramid element. More...
 
class  QFunctionAutoDiff
 
class  QLinearDiffusion
 
class  Quad1DFiniteElement
 A 1D quadratic finite element with uniformly spaced nodes. More...
 
class  Quad2DFiniteElement
 A 2D quadratic element on triangle with nodes at the vertices and midpoints of the triangle. More...
 
class  QuadPos1DFiniteElement
 A 1D quadratic positive element utilizing the 2nd order Bernstein basis. More...
 
class  Quadratic3DFiniteElement
 A 3D quadratic element on a tetrahedron with uniformly spaced nodes. More...
 
class  QuadraticDiscont2DFECollection
 Piecewise-quadratic discontinuous finite elements in 2D. This class is kept only for backward compatibility, consider using L2_FECollection instead. More...
 
class  QuadraticDiscont3DFECollection
 Piecewise-quadratic discontinuous finite elements in 3D. This class is kept only for backward compatibility, consider using L2_FECollection instead. More...
 
class  QuadraticFECollection
 Piecewise-(bi)quadratic continuous finite elements. More...
 
class  QuadraticPosDiscont2DFECollection
 Version of QuadraticDiscont2DFECollection with positive basis functions. More...
 
class  QuadraticPosFECollection
 Version of QuadraticFECollection with positive basis functions. More...
 
class  Quadrature1D
 A class container for 1D quadrature type constants. More...
 
class  QuadratureFunction
 Represents values or vectors of values at quadrature points on a mesh. More...
 
class  QuadratureFunctionCoefficient
 Quadrature function coefficient which requires that the quadrature rules used for this coefficient be the same as those that live within the supplied QuadratureFunction. More...
 
class  QuadratureFunctions1D
 A Class that defines 1-D numerical quadrature rules on [0,1]. More...
 
class  QuadratureInterpolator
 A class that performs interpolation from an E-vector to quadrature point values and/or derivatives (Q-vectors). More...
 
class  QuadratureLFIntegrator
 
class  QuadratureSpace
 Class representing the storage layout of a QuadratureFunction. More...
 
class  QuadratureSpaceBase
 Abstract base class for QuadratureSpace and FaceQuadratureSpace. More...
 
class  Quadrilateral
 Data type quadrilateral element. More...
 
class  QVectorFuncAutoDiff
 
struct  RajaCuWrap
 
struct  RajaCuWrap< 1 >
 
struct  RajaCuWrap< 2 >
 
struct  RajaCuWrap< 3 >
 
struct  RajaHipWrap
 
struct  RajaHipWrap< 1 >
 
struct  RajaHipWrap< 2 >
 
struct  RajaHipWrap< 3 >
 
class  RAPOperator
 The operator x -> R*A*P*x constructed through the actions of R^T, A and P. More...
 
class  RatioCoefficient
 Scalar coefficient defined as the ratio of two scalars where one or both scalars are scalar coefficients. More...
 
class  Rebalancer
 ParMesh rebalancing operator. More...
 
class  RectangularConstrainedOperator
 Rectangular Operator for imposing essential boundary conditions on the input space using only the action, Mult(), of a given unconstrained Operator. More...
 
class  RefinedBiLinear2DFiniteElement
 A 2D refined bi-linear FE on a square. More...
 
class  RefinedGeometry
 
class  RefinedLinear1DFiniteElement
 A 1D refined linear element. More...
 
class  RefinedLinear2DFiniteElement
 A 2D refined linear element on a triangle. More...
 
class  RefinedLinear3DFiniteElement
 A 2D refined linear element on a tetrahedron. More...
 
class  RefinedLinearFECollection
 Finite element collection on a macro-element. More...
 
class  RefinedTriLinear3DFiniteElement
 A 3D refined tri-linear element on a cube. More...
 
struct  Refinement
 
class  ResidualBCMonitor
 Monitor that checks whether the residual is zero at a given set of dofs. More...
 
class  RestrictedCoefficient
 Derived coefficient that takes the value of the parent coefficient for the active attributes and is zero otherwise. More...
 
class  RK2Solver
 
class  RK3SSPSolver
 Third-order, strong stability preserving (SSP) Runge-Kutta method. More...
 
class  RK4Solver
 The classical explicit forth-order Runge-Kutta method, RK4. More...
 
class  RK6Solver
 
class  RK8Solver
 
class  RotTriLinearHexFiniteElement
 
class  RT0_2DFECollection
 First order Raviart-Thomas finite elements in 2D. This class is kept only for backward compatibility, consider using RT_FECollection instead. More...
 
class  RT0_3DFECollection
 First order Raviart-Thomas finite elements in 3D. This class is kept only for backward compatibility, consider using RT_FECollection instead. More...
 
class  RT0HexFiniteElement
 A 3D 0th order Raviert-Thomas element on a cube. More...
 
class  RT0PyrFiniteElement
 A 3D 0th order Raviert-Thomas element on a pyramid. More...
 
class  RT0QuadFiniteElement
 A 2D 1st order Raviart-Thomas vector element on a square. More...
 
class  RT0TetFiniteElement
 A 3D 0th order Raviert-Thomas element on a tetrahedron. More...
 
class  RT0TriangleFiniteElement
 A 2D 1st order Raviart-Thomas vector element on a triangle. More...
 
class  RT0WdgFiniteElement
 A 3D 0th order Raviert-Thomas element on a wedge. More...
 
class  RT1_2DFECollection
 Second order Raviart-Thomas finite elements in 2D. This class is kept only for backward compatibility, consider using RT_FECollection instead. More...
 
class  RT1_3DFECollection
 Second order Raviart-Thomas finite elements in 3D. This class is kept only for backward compatibility, consider using RT_FECollection instead. More...
 
class  RT1HexFiniteElement
 A 3D 1st order Raviert-Thomas element on a cube. More...
 
class  RT1QuadFiniteElement
 A 2D 2nd order Raviart-Thomas vector element on a square. More...
 
class  RT1TriangleFiniteElement
 A 2D 2nd order Raviart-Thomas vector element on a triangle. More...
 
class  RT2_2DFECollection
 Third order Raviart-Thomas finite elements in 2D. This class is kept only for backward compatibility, consider using RT_FECollection instead. More...
 
class  RT2QuadFiniteElement
 A 2D 3rd order Raviart-Thomas vector element on a square. More...
 
class  RT2TriangleFiniteElement
 A 2D 3rd order Raviart-Thomas vector element on a triangle. More...
 
class  RT_FECollection
 Arbitrary order H(div)-conforming Raviart-Thomas finite elements. More...
 
class  RT_HexahedronElement
 Arbitrary order Raviart-Thomas elements in 3D on a cube. More...
 
class  RT_QuadrilateralElement
 Arbitrary order Raviart-Thomas elements in 2D on a square. More...
 
class  RT_R1D_FECollection
 Arbitrary order 3D H(div)-conforming Raviart-Thomas finite elements in 1D. More...
 
class  RT_R1D_SegmentElement
 Arbitrary order, three component, Raviart-Thomas elements in 1D on a segment. More...
 
class  RT_R2D_FECollection
 Arbitrary order 3D H(div)-conforming Raviart-Thomas finite elements in 2D. More...
 
class  RT_R2D_FiniteElement
 
class  RT_R2D_QuadrilateralElement
 Arbitrary order Raviart-Thomas 3D elements in 2D on a square. More...
 
class  RT_R2D_SegmentElement
 
class  RT_R2D_Trace_FECollection
 Arbitrary order 3D "H^{-1/2}-conforming" face finite elements defined on the interface between mesh elements (faces); these are the normal trace FEs of the H(div)-conforming FEs. More...
 
class  RT_R2D_TriangleElement
 Arbitrary order Raviart-Thomas 3D elements in 2D on a triangle. More...
 
class  RT_TetrahedronElement
 Arbitrary order Raviart-Thomas elements in 3D on a tetrahedron. More...
 
class  RT_Trace_FECollection
 Arbitrary order "H^{-1/2}-conforming" face finite elements defined on the interface between mesh elements (faces); these are the normal trace FEs of the H(div)-conforming FEs. More...
 
class  RT_TriangleElement
 Arbitrary order Raviart-Thomas elements in 2D on a triangle. More...
 
class  RT_WedgeElement
 
class  SBM2DirichletIntegrator
 
class  SBM2DirichletLFIntegrator
 
class  SBM2NeumannIntegrator
 
class  SBM2NeumannLFIntegrator
 
class  ScalarCrossProductInterpolator
 
class  ScalarFiniteElement
 Class for finite elements with basis functions that return scalar values. More...
 
class  ScalarLayout
 
class  ScalarMatrixProductCoefficient
 Matrix coefficient defined as a product of a scalar coefficient and a matrix coefficient. More...
 
struct  ScalarOps
 Auxiliary class used as the default for the second template parameter in the classes InvariantsEvaluator2D and InvariantsEvaluator3D. More...
 
class  ScalarProductInterpolator
 
class  ScalarVectorProductCoefficient
 Vector coefficient defined as a product of scalar and vector coefficients. More...
 
class  ScalarVectorProductInterpolator
 
class  ScaledOperator
 Scaled Operator B: x -> a A(x). More...
 
class  SchurConstrainedHypreSolver
 Basic saddle-point solver with assembled blocks (ie, the operators are assembled HypreParMatrix objects.) More...
 
class  SchurConstrainedSolver
 Solve constrained system by solving original mixed system; see ConstrainedSolver. More...
 
class  SDIRK23Solver
 
class  SDIRK33Solver
 
class  SDIRK34Solver
 
class  SecondOrderODESolver
 Abstract class for solving systems of ODEs: d2x/dt2 = f(x,dx/dt,t) More...
 
class  SecondOrderTimeDependentOperator
 Base abstract class for second order time dependent operators. More...
 
class  Segment
 Data type line segment element. More...
 
class  SerialAdvectorCGOper
 Performs a single remap advection step in serial. More...
 
class  SesquilinearForm
 
class  ShapeEvaluator
 General ShapeEvaluator for any scalar FE type (L2 or H1) More...
 
class  ShapeEvaluator_base
 Shape evaluators – values of basis functions on the reference element. More...
 
class  ShapeEvaluator_base< FE, IR, false, real_t >
 ShapeEvaluator without tensor-product structure. More...
 
class  ShapeEvaluator_base< FE, IR, true, real_t >
 ShapeEvaluator with tensor-product structure in any dimension. More...
 
class  ShiftedFaceMarker
 
class  ShiftedFunctionCoefficient
 
class  ShiftedVectorFunctionCoefficient
 
class  SIA1Solver
 First Order Symplectic Integration Algorithm. More...
 
class  SIA2Solver
 Second Order Symplectic Integration Algorithm. More...
 
class  SIASolver
 
class  SIAVSolver
 Variable order Symplectic Integration Algorithm (orders 1-4) More...
 
class  SidreDataCollection
 Data collection with Sidre routines following the Conduit mesh blueprint specification. More...
 
class  SIMPInterpolationCoefficient
 Solid isotropic material penalization (SIMP) coefficient. More...
 
class  SkewSymmetricVectorConvectionNLFIntegrator
 
class  SLBQPOptimizer
 
class  SlepcEigenSolver
 
class  SLISolver
 Stationary linear iteration: x <- x + B (b - A x) More...
 
class  socketbuf
 
class  socketserver
 
class  socketstream
 
class  Solver
 Base class for solvers. More...
 
class  SparseMatrix
 Data type sparse matrix. More...
 
class  SparseSmoother
 
class  SphericalAzimuthalCoefficient
 
class  SphericalPolarCoefficient
 
class  SphericalRadialCoefficient
 
class  STable
 
class  STable3D
 Symmetric 3D Table stored as an array of rows each of which has a stack of column, floor, number nodes. The number of the node is assigned by counting the nodes from zero as they are pushed into the table. Diagonals of any kind are not allowed so the row, column and floor must all be different for each node. Only one node is stored for all 6 symmetric entries that are indexable by unique triplets of row, column, and floor. More...
 
class  STable3DNode
 
class  Stack
 
class  StackPart
 
class  StatelessDofTransformation
 
class  StatelessVDofTransformation
 
class  StaticCondensation
 
class  StopWatch
 Timing object. More...
 
class  StrainEnergyDensityCoefficient
 Strain energy density coefficient. More...
 
struct  StridedLayout1D
 
struct  StridedLayout2D
 
struct  StridedLayout3D
 
struct  StridedLayout4D
 
class  STRUMPACKRowLocMatrix
 
class  STRUMPACKSolver
 
class  SubMesh
 Subdomain representation of a topological parent in another Mesh. More...
 
class  SumCoefficient
 Scalar coefficient defined as the linear combination of two scalar coefficients or a scalar and a scalar coefficient. More...
 
class  SumIntegrator
 Integrator defining a sum of multiple Integrators. More...
 
class  Sundials
 Singleton class for SUNContext and SundialsMemHelper objects. More...
 
class  SundialsMemHelper
 
class  SundialsNVector
 Vector interface for SUNDIALS N_Vectors. More...
 
class  SundialsSolver
 Base class for interfacing with SUNDIALS packages. More...
 
class  SuperLURowLocMatrix
 
class  SuperLUSolver
 
class  SymmetricMatrixCoefficient
 Base class for symmetric matrix coefficients that optionally depend on time and space. More...
 
class  SymmetricMatrixConstantCoefficient
 A matrix coefficient that is constant in space and time. More...
 
class  SymmetricMatrixFunctionCoefficient
 A matrix coefficient with an optional scalar coefficient multiplier q. The matrix function can either be represented by a std function or a constant matrix provided when constructing this object. More...
 
class  Table
 
class  TangentTraceIntegrator
 
class  TargetConstructor
 Base class representing target-matrix construction algorithms for mesh optimization via the target-matrix optimization paradigm (TMOP). More...
 
class  TAutoDiffDenseMatrix
 Templated dense matrix data type. More...
 
class  TAutoDiffVector
 Templated vector data type. More...
 
class  TBilinearForm
 Templated bilinear form class, cf. bilinearform.?pp. More...
 
class  TCoefficient
 Templated coefficient classes, cf. coefficient.?pp. More...
 
class  TConstantCoefficient
 
struct  TDiffusionKernel
 Diffusion kernel. More...
 
struct  TDiffusionKernel< 1, 1, complex_t >
 Diffusion kernel in 1D. More...
 
struct  TDiffusionKernel< 2, 2, complex_t >
 Diffusion kernel in 2D. More...
 
struct  TDiffusionKernel< 3, 3, complex_t >
 Diffusion kernel in 3D. More...
 
class  TElementTransformation
 Element transformation class, templated on a mesh type and an integration rule. It is constructed from a mesh (e.g. class TMesh) and shape evaluator (e.g. class ShapeEvaluator) objects. Allows computation of physical coordinates and Jacobian matrices corresponding to the reference integration points. The desired result is specified through the template subclass Result and stored in an object of the same type. More...
 
class  TensorBasisElement
 
class  TensorInd
 A Class to compute the real index from the multi-indices of a tensor. More...
 
class  TensorInd< Dim, Dim, T, Args... >
 
class  TensorProductPRefinementTransferOperator
 Matrix-free transfer operator between finite element spaces on the same mesh exploiting the tensor product structure of the finite elements. More...
 
class  Tetrahedron
 Data type tetrahedron element. More...
 
class  TFiniteElementSpace_simple
 
class  TFunctionCoefficient
 Function coefficient. More...
 
class  TGridFunctionCoefficient
 GridFunction coefficient class. More...
 
class  ThresholdDerefiner
 De-refinement operator using an error threshold. More...
 
class  ThresholdRefiner
 Mesh refinement operator using an error threshold. More...
 
class  TimeDependentAdjointOperator
 
class  TimeDependentOperator
 Base abstract class for first order time dependent operators. More...
 
class  TIntegrationRule
 
class  TIntegrationRule< Geometry::CUBE, Order, real_t >
 
class  TIntegrationRule< Geometry::SEGMENT, Order, real_t >
 
class  TIntegrationRule< Geometry::SQUARE, Order, real_t >
 
class  TIntegrationRule< Geometry::TETRAHEDRON, 0, real_t >
 
class  TIntegrationRule< Geometry::TETRAHEDRON, 1, real_t >
 
class  TIntegrationRule< Geometry::TETRAHEDRON, 2, real_t >
 
class  TIntegrationRule< Geometry::TETRAHEDRON, 3, real_t >
 
class  TIntegrationRule< Geometry::TETRAHEDRON, 4, real_t >
 
class  TIntegrationRule< Geometry::TETRAHEDRON, 5, real_t >
 
class  TIntegrationRule< Geometry::TETRAHEDRON, 6, real_t >
 
class  TIntegrationRule< Geometry::TETRAHEDRON, 7, real_t >
 
class  TIntegrationRule< Geometry::TRIANGLE, 0, real_t >
 
class  TIntegrationRule< Geometry::TRIANGLE, 1, real_t >
 
class  TIntegrationRule< Geometry::TRIANGLE, 2, real_t >
 
class  TIntegrationRule< Geometry::TRIANGLE, 3, real_t >
 
class  TIntegrationRule< Geometry::TRIANGLE, 4, real_t >
 
class  TIntegrationRule< Geometry::TRIANGLE, 5, real_t >
 
class  TIntegrationRule< Geometry::TRIANGLE, 6, real_t >
 
class  TIntegrationRule< Geometry::TRIANGLE, 7, real_t >
 
class  TIntegrator
 The Integrator class combines a kernel and a coefficient. More...
 
struct  TMassKernel
 Mass kernel. More...
 
struct  TMatrix
 
class  TMesh
 
class  TMOP_AMetric_011
 
class  TMOP_AMetric_014a
 2D barrier Size (V) metric (polyconvex). More...
 
class  TMOP_AMetric_036
 2D barrier Shape+Size+Orientation (VOS) metric (polyconvex). More...
 
class  TMOP_AMetric_107a
 2D barrier Shape+Orientation (OS) metric (polyconvex). More...
 
class  TMOP_AMetric_126
 2D barrier Shape+Size (VS) metric (polyconvex). More...
 
class  TMOP_Combo_QualityMetric
 
class  TMOP_ExponentialLimiter
 Exponential limiter function in TMOP_Integrator. More...
 
class  TMOP_Integrator
 A TMOP integrator class based on any given TMOP_QualityMetric and TargetConstructor. More...
 
class  TMOP_LimiterFunction
 Base class for limiting functions to be used in class TMOP_Integrator. More...
 
class  TMOP_Metric_001
 2D non-barrier metric without a type. More...
 
class  TMOP_Metric_002
 
class  TMOP_Metric_004
 
class  TMOP_Metric_007
 2D barrier Shape+Size (VS) metric (not polyconvex). More...
 
class  TMOP_Metric_009
 2D barrier Shape+Size (VS) metric (not polyconvex). More...
 
class  TMOP_Metric_014
 2D non-barrier Shape+Size+Orientation (VOS) metric (polyconvex). More...
 
class  TMOP_Metric_022
 2D Shifted barrier form of shape metric (mu_2). More...
 
class  TMOP_Metric_050
 
class  TMOP_Metric_055
 
class  TMOP_Metric_056
 
class  TMOP_Metric_058
 2D barrier shape (S) metric (not polyconvex). More...
 
class  TMOP_Metric_066
 
class  TMOP_Metric_077
 
class  TMOP_Metric_080
 
class  TMOP_Metric_085
 2D barrier Shape+Orientation (OS) metric (polyconvex). More...
 
class  TMOP_Metric_090
 2D compound barrier Shape+Size (VS) metric (balanced). More...
 
class  TMOP_Metric_094
 2D compound barrier Shape+Size (VS) metric (balanced). More...
 
class  TMOP_Metric_098
 2D barrier Shape+Size+Orientation (VOS) metric (polyconvex). More...
 
class  TMOP_Metric_211
 2D untangling metric. More...
 
class  TMOP_Metric_252
 Shifted barrier form of metric 56 (area, ideal barrier metric), 2D. More...
 
class  TMOP_Metric_301
 3D barrier Shape (S) metric, well-posed (polyconvex & invex). More...
 
class  TMOP_Metric_302
 3D barrier Shape (S) metric, well-posed (polyconvex & invex). More...
 
class  TMOP_Metric_303
 3D barrier Shape (S) metric, well-posed (polyconvex & invex). More...
 
class  TMOP_Metric_304
 3D barrier Shape (S) metric, well-posed (polyconvex & invex). More...
 
class  TMOP_Metric_311
 3D Size (V) untangling metric. More...
 
class  TMOP_Metric_313
 3D Shape (S) metric, untangling version of 303. More...
 
class  TMOP_Metric_315
 3D Size (V) metric. More...
 
class  TMOP_Metric_316
 3D Size (V) metric. More...
 
class  TMOP_Metric_318
 3D Size (V) metric. More...
 
class  TMOP_Metric_321
 3D barrier Shape+Size (VS) metric, well-posed (invex). More...
 
class  TMOP_Metric_322
 3D barrier Shape+Size (VS) metric, well-posed (invex). More...
 
class  TMOP_Metric_323
 3D barrier Shape+Size (VS) metric, well-posed (invex). More...
 
class  TMOP_Metric_328
 3D compound barrier Shape+Size (VS) metric (polyconvex, balanced). More...
 
class  TMOP_Metric_332
 3D compound barrier Shape+Size (VS) metric (polyconvex). More...
 
class  TMOP_Metric_333
 3D barrier Shape+Size (VS) metric, well-posed (polyconvex). More...
 
class  TMOP_Metric_334
 3D barrier Shape+Size (VS) metric, well-posed (polyconvex). More...
 
class  TMOP_Metric_338
 3D compound barrier Shape+Size (VS) metric (polyconvex, balanced). More...
 
class  TMOP_Metric_347
 3D barrier Shape+Size (VS) metric, well-posed (polyconvex). More...
 
class  TMOP_Metric_352
 3D shifted barrier form of metric 316 (not typed). More...
 
class  TMOP_Metric_360
 3D non-barrier Shape (S) metric. More...
 
class  TMOP_Metric_aspratio2D
 2D non-barrier Aspect ratio metric. More...
 
class  TMOP_Metric_aspratio3D
 3D non-barrier Aspect ratio metric. More...
 
class  TMOP_Metric_skew2D
 2D non-barrier Skew metric. More...
 
class  TMOP_Metric_skew3D
 3D non-barrier Skew metric. More...
 
class  TMOP_QuadraticLimiter
 Default limiter function in TMOP_Integrator. More...
 
class  TMOP_QualityMetric
 Abstract class for local mesh quality metrics in the target-matrix optimization paradigm (TMOP) by P. Knupp et al. More...
 
class  TMOP_WorstCaseUntangleOptimizer_Metric
 
class  TMOPComboIntegrator
 
class  TMOPDeRefinerEstimator
 
class  TMOPHRSolver
 
class  TMOPMatrixCoefficient
 
class  TMOPNewtonSolver
 
class  TMOPRefinerEstimator
 
class  TPiecewiseConstCoefficient
 
class  TProductIntegrationRule
 
class  TProductIntegrationRule_base
 
class  TProductIntegrationRule_base< 1, Q, real_t >
 
class  TProductIntegrationRule_base< 2, Q, real_t >
 
class  TProductIntegrationRule_base< 3, Q, real_t >
 
class  TProductShapeEvaluator
 
class  TProductShapeEvaluator< 1, DOF, NIP, real_t >
 ShapeEvaluator with 1D tensor-product structure. More...
 
class  TProductShapeEvaluator< 2, DOF, NIP, real_t >
 ShapeEvaluator with 2D tensor-product structure. More...
 
class  TProductShapeEvaluator< 3, DOF, NIP, real_t >
 ShapeEvaluator with 3D tensor-product structure. More...
 
class  TraceIntegrator
 
class  TraceJumpIntegrator
 
class  TransferMap
 TransferMap represents a mapping of degrees of freedom from a source GridFunction to a destination GridFunction. More...
 
class  TransferOperator
 Matrix-free transfer operator between finite element spaces. More...
 
class  TransformedCoefficient
 A coefficient that depends on 1 or 2 parent coefficients and a transformation rule represented by a C-function. More...
 
class  TransposeIntegrator
 
class  TransposeMatrixCoefficient
 Matrix coefficient defined as the transpose a matrix coefficient. More...
 
class  TransposeOperator
 The transpose of a given operator. Switches the roles of the methods Mult() and MultTranspose(). More...
 
class  TrapezoidalRuleSolver
 
class  Triangle
 Data type triangle element. More...
 
class  TriLinear3DFiniteElement
 A 3D tri-linear element on a cube with nodes at the vertices of the cube. More...
 
class  Triple
 A triple of objects. More...
 
class  TripleProductOperator
 General triple product operator x -> A*B*C*x, with ownership of the factors. More...
 
class  TrueTransferOperator
 Matrix-free transfer operator between finite element spaces working on true degrees of freedom. More...
 
struct  TTensor3
 
struct  TTensor4
 
struct  TVector
 
class  UMFPackSolver
 Direct sparse solver using UMFPACK. More...
 
struct  VarMessage
 Variable-length MPI message containing unspecific binary data. More...
 
class  VDofTransformation
 
class  Vector
 Vector data type. More...
 
class  VectorArrayCoefficient
 Vector coefficient defined by an array of scalar coefficients. Coefficients that are not set will evaluate to zero in the vector. This object takes ownership of the array of coefficients inside it and deletes them at object destruction. More...
 
class  VectorBoundaryFluxLFIntegrator
 
class  VectorBoundaryLFIntegrator
 
class  VectorCoefficient
 Base class for vector Coefficients that optionally depend on time and space. More...
 
class  VectorConstantCoefficient
 Vector coefficient that is constant in space and time. More...
 
class  VectorConvectionNLFIntegrator
 
class  VectorCrossProductCoefficient
 Vector coefficient defined as a cross product of two vectors. More...
 
class  VectorCrossProductInterpolator
 
class  VectorCurlCurlIntegrator
 
class  VectorDeltaCoefficient
 Vector coefficient defined by a scalar DeltaCoefficient and a constant vector direction. More...
 
class  VectorDiffusionIntegrator
 
class  VectorDivergenceIntegrator
 
class  VectorDomainLFGradIntegrator
 
class  VectorDomainLFIntegrator
 
class  VectorFEBoundaryFluxLFIntegrator
 
class  VectorFEBoundaryTangentLFIntegrator
 Class for boundary integration \( L(v) = (n \times f, v) \). More...
 
class  VectorFECurlIntegrator
 
class  VectorFEDivergenceIntegrator
 
class  VectorFEDomainLFCurlIntegrator
 \( (Q, curl v)_{\Omega} \) for Nedelec Elements) More...
 
class  VectorFEDomainLFDivIntegrator
 \( (Q, div v)_{\Omega} \) for RT Elements) More...
 
class  VectorFEDomainLFIntegrator
 \( (f, v)_{\Omega} \) for VectorFiniteElements (Nedelec, Raviart-Thomas) More...
 
class  VectorFEMassIntegrator
 
class  VectorFEWeakDivergenceIntegrator
 
class  VectorFiniteElement
 Intermediate class for finite elements whose basis functions return vector values. More...
 
class  VectorFuncAutoDiff
 
class  VectorFunctionCoefficient
 A general vector function coefficient. More...
 
class  VectorGridFunctionCoefficient
 Vector coefficient defined by a vector GridFunction. More...
 
class  VectorInnerProductInterpolator
 
class  VectorL2MortarIntegrator
 Integrator for vector finite elements. Experimental. \( (u, v)_{L^2(\mathcal{T}_m \cap \mathcal{T}_s)}, u \in U(\mathcal{T}_m ) and v \in V(\mathcal{T}_s ) \). More...
 
class  VectorLayout
 
class  VectorMassIntegrator
 
class  VectorQuadratureFunctionCoefficient
 Vector quadrature function coefficient which requires that the quadrature rules used for this vector coefficient be the same as those that live within the supplied QuadratureFunction. More...
 
class  VectorQuadratureLFIntegrator
 
class  VectorRestrictedCoefficient
 Derived vector coefficient that has the value of the parent vector where it is active and is zero otherwise. More...
 
class  VectorRotProductCoefficient
 Scalar coefficient defined as a cross product of two vectors in the xy-plane. More...
 
class  VectorScalarProductInterpolator
 
class  VectorSumCoefficient
 Vector coefficient defined as the linear combination of two vectors. More...
 
class  VectorTensorFiniteElement
 
class  Vertex
 Data type for vertex. More...
 
class  VisItDataCollection
 Data collection with VisIt I/O routines. More...
 
class  VisItFieldInfo
 Helper class for VisIt visualization data. More...
 
class  VolumeForceCoefficient
 Volumetric force for linear elasticity. More...
 
struct  VTKGeometry
 Helper class for converting between MFEM and VTK geometry types. More...
 
class  WBZAlphaSolver
 
class  Wedge
 Data type Wedge element. More...
 
class  WhiteGaussianNoiseDomainLFIntegrator
 
class  ZienkiewiczZhuEstimator
 The ZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure. More...
 

Typedefs

using DofQuadLimits = internal::DofQuadLimits_CUDA
 Maximum number of 1D DOFs or quadrature points for the architecture currently being compiled for (used in fallback kernels). More...
 
using cuda_launch_policy = RAJA::LaunchPolicy< RAJA::cuda_launch_t< true > >
 RAJA Cuda and Hip backends. More...
 
using cuda_teams_x = RAJA::LoopPolicy< RAJA::cuda_block_x_direct >
 
using cuda_threads_z = RAJA::LoopPolicy< RAJA::cuda_thread_z_direct >
 
using hip_launch_policy = RAJA::LaunchPolicy< RAJA::hip_launch_t< true > >
 
using hip_teams_x = RAJA::LoopPolicy< RAJA::hip_block_x_direct >
 
using hip_threads_z = RAJA::LoopPolicy< RAJA::hip_thread_z_direct >
 
typedef KDTree< int, double, 3 > KDTree3D
 Defines KDTree in 3D. More...
 
typedef KDTree< int, double, 2 > KDTree2D
 Defines KDTree in 2D. More...
 
typedef KDTree< int, double, 1 > KDTree1D
 Defines KDTree in 1D. More...
 
typedef std::pair< int, int > occa_id_t
 
typedef std::map< occa_id_t, occa::kernel > occa_kernel_t
 
typedef DeviceTensor< 1, int > DeviceArray
 
typedef DeviceTensor< 1, const int > ConstDeviceArray
 
typedef DeviceTensor< 1, double > DeviceVector
 
typedef DeviceTensor< 1, const double > ConstDeviceVector
 
typedef DeviceTensor< 2, double > DeviceMatrix
 
typedef DeviceTensor< 2, const double > ConstDeviceMatrix
 
typedef DeviceTensor< 3, double > DeviceCube
 
typedef DeviceTensor< 3, const double > ConstDeviceCube
 
typedef OperatorHandle OperatorPtr
 Add an alternative name for OperatorHandle – OperatorPtr. More...
 
using NonconservativeConvectionIntegrator = ConvectionIntegrator
 
using ConservativeDGTraceIntegrator = DGTraceIntegrator
 
typedef CartesianZCoefficient CylindricalZCoefficient
 
typedef VectorCoefficient DiagonalMatrixCoefficient
 
typedef L2_FECollection DG_FECollection
 Declare an alternative name for L2_FECollection = DG_FECollection. More...
 
using H1FaceRestriction = ConformingFaceRestriction
 Alias for ConformingFaceRestriction, for backwards compatibility and as base class for ParNCH1FaceRestriction. More...
 
using Args = kernels::InvariantsEvaluator2D::Buffers
 
typedef MatrixVectorProductCoefficient MatVecCoefficient
 Convenient alias for the MatrixVectorProductCoefficient. More...
 

Enumerations

enum  ErrorAction { MFEM_ERROR_ABORT = 0, MFEM_ERROR_THROW }
 Action to take when MFEM encounters an error. More...
 
enum  MemoryType {
  MemoryType::HOST, MemoryType::HOST_32, MemoryType::HOST_64, MemoryType::HOST_DEBUG,
  MemoryType::HOST_UMPIRE, MemoryType::HOST_PINNED, MemoryType::MANAGED, MemoryType::DEVICE,
  MemoryType::DEVICE_DEBUG, MemoryType::DEVICE_UMPIRE, MemoryType::DEVICE_UMPIRE_2, MemoryType::SIZE,
  MemoryType::PRESERVE, MemoryType::DEFAULT
}
 Memory types supported by MFEM. More...
 
enum  MemoryClass {
  MemoryClass::HOST, MemoryClass::HOST_32, MemoryClass::HOST_64, MemoryClass::DEVICE,
  MemoryClass::MANAGED
}
 Memory classes identify sets of memory types. More...
 
enum  BlockInverseScaleJob { BlockInverseScaleJob::MATRIX_ONLY, BlockInverseScaleJob::RHS_ONLY, BlockInverseScaleJob::MATRIX_AND_RHS }
 
enum  FaceType : bool { FaceType::Interior, FaceType::Boundary }
 
enum  VTKFormat { VTKFormat::ASCII, VTKFormat::BINARY, VTKFormat::BINARY32 }
 Data array format for VTK and VTU files. More...
 
enum  TransferCategory { ParentToSubMesh, SubMeshToParent, SubMeshToSubMesh }
 TransferCategory describes the type of transfer. More...
 
enum  AssemblyLevel {
  AssemblyLevel::LEGACY = 0, AssemblyLevel::LEGACYFULL = 0, AssemblyLevel::FULL, AssemblyLevel::ELEMENT,
  AssemblyLevel::PARTIAL, AssemblyLevel::NONE
}
 Enumeration defining the assembly level for bilinear and nonlinear form classes derived from Operator. For more details, see https://mfem.org/howto/assembly_levels. More...
 
enum  CoefficientStorage : int { CoefficientStorage::FULL = 0, CoefficientStorage::CONSTANTS = 1 << 0, CoefficientStorage::SYMMETRIC = 1 << 1, CoefficientStorage::COMPRESSED = CONSTANTS | SYMMETRIC }
 Flags that determine what storage optimizations to use in CoefficientVector. More...
 
enum  QVectorLayout { QVectorLayout::byNODES, QVectorLayout::byVDIM }
 Type describing possible layouts for Q-vectors. More...
 
enum  ElementDofOrdering { ElementDofOrdering::NATIVE, ElementDofOrdering::LEXICOGRAPHIC }
 Constants describing the possible orderings of the DOFs in one element. More...
 
enum  L2FaceValues : bool { L2FaceValues::SingleValued, L2FaceValues::DoubleValued }
 

Functions

template<class T >
void Swap (Array< T > &, Array< T > &)
 
template<class T >
bool operator== (const Array< T > &LHS, const Array< T > &RHS)
 
template<class T >
bool operator!= (const Array< T > &LHS, const Array< T > &RHS)
 
template<typename T >
const T & AsConst (const T &a)
 Utility function similar to std::as_const in c++17. More...
 
template<class T >
void Swap (Array2D< T > &, Array2D< T > &)
 
template<class T >
void Swap (T &a, T &b)
 inlines /// More...
 
void KdTreeSort (int **coords, int d, int dim, int size)
 
MPI_Comm ReorderRanksZCurve (MPI_Comm comm)
 
void mfem_cuda_error (cudaError_t err, const char *expr, const char *func, const char *file, int line)
 
void * CuMemAlloc (void **d_ptr, size_t bytes)
 Allocates device memory and returns destination ptr. More...
 
void * CuMallocManaged (void **d_ptr, size_t bytes)
 Allocates managed device memory. More...
 
void * CuMemAllocHostPinned (void **ptr, size_t bytes)
 Allocates page-locked (pinned) host memory. More...
 
void * CuMemFree (void *d_ptr)
 Frees device memory and returns destination ptr. More...
 
void * CuMemFreeHostPinned (void *ptr)
 Frees page-locked (pinned) host memory and returns destination ptr. More...
 
void * CuMemcpyHtoD (void *d_dst, const void *h_src, size_t bytes)
 Copies memory from Host to Device and returns destination ptr. More...
 
void * CuMemcpyHtoDAsync (void *d_dst, const void *h_src, size_t bytes)
 Copies memory from Host to Device and returns destination ptr. More...
 
void * CuMemcpyDtoD (void *d_dst, const void *d_src, size_t bytes)
 Copies memory from Device to Device. More...
 
void * CuMemcpyDtoDAsync (void *d_dst, const void *d_src, size_t bytes)
 Copies memory from Device to Device. More...
 
void * CuMemcpyDtoH (void *h_dst, const void *d_src, size_t bytes)
 Copies memory from Device to Host. More...
 
void * CuMemcpyDtoHAsync (void *h_dst, const void *d_src, size_t bytes)
 Copies memory from Device to Host. More...
 
void CuCheckLastError ()
 Check the error code returned by cudaGetLastError(), aborting on error. More...
 
int CuGetDeviceCount ()
 Get the number of CUDA devices. More...
 
template<typename T >
MemoryClass GetMemoryClass (const Memory< T > &mem, bool on_dev)
 Return the memory class to be used by the functions Read(), Write(), and ReadWrite(), while setting the device use flag in mem, if on_dev is true. More...
 
template<typename T >
const T * Read (const Memory< T > &mem, int size, bool on_dev=true)
 Get a pointer for read access to mem with the mfem::Device's DeviceMemoryClass, if on_dev = true, or the mfem::Device's HostMemoryClass, otherwise. More...
 
template<typename T >
const T * HostRead (const Memory< T > &mem, int size)
 Shortcut to Read(const Memory<T> &mem, int size, false) More...
 
template<typename T >
T * Write (Memory< T > &mem, int size, bool on_dev=true)
 Get a pointer for write access to mem with the mfem::Device's DeviceMemoryClass, if on_dev = true, or the mfem::Device's HostMemoryClass, otherwise. More...
 
template<typename T >
T * HostWrite (Memory< T > &mem, int size)
 Shortcut to Write(const Memory<T> &mem, int size, false) More...
 
template<typename T >
T * ReadWrite (Memory< T > &mem, int size, bool on_dev=true)
 Get a pointer for read+write access to mem with the mfem::Device's DeviceMemoryClass, if on_dev = true, or the mfem::Device's HostMemoryClass, otherwise. More...
 
template<typename T >
T * HostReadWrite (Memory< T > &mem, int size)
 Shortcut to ReadWrite(Memory<T> &mem, int size, false) More...
 
void set_error_action (ErrorAction action)
 Set the action MFEM takes when an error is encountered. More...
 
ErrorAction get_error_action ()
 Get the action MFEM takes when an error is encountered. More...
 
void mfem_backtrace (int mode, int depth)
 
void mfem_error (const char *msg=NULL)
 Function called when an error is encountered. Used by the macros MFEM_ABORT, MFEM_ASSERT, MFEM_VERIFY. More...
 
void mfem_warning (const char *msg=NULL)
 Function called by the macro MFEM_WARNING. More...
 
template<typename HBODY >
void OmpWrap (const int N, HBODY &&h_body)
 OpenMP backend. More...
 
template<const int BLOCKS = MFEM_CUDA_BLOCKS, typename DBODY >
void RajaCuWrap1D (const int N, DBODY &&d_body)
 
template<typename DBODY >
void RajaCuWrap2D (const int N, DBODY &&d_body, const int X, const int Y, const int BZ)
 
template<typename DBODY >
void RajaCuWrap3D (const int N, DBODY &&d_body, const int X, const int Y, const int Z, const int G)
 
template<const int BLOCKS = MFEM_HIP_BLOCKS, typename DBODY >
void RajaHipWrap1D (const int N, DBODY &&d_body)
 
template<typename DBODY >
void RajaHipWrap2D (const int N, DBODY &&d_body, const int X, const int Y, const int BZ)
 
template<typename DBODY >
void RajaHipWrap3D (const int N, DBODY &&d_body, const int X, const int Y, const int Z, const int G)
 
template<typename HBODY >
void RajaOmpWrap (const int N, HBODY &&h_body)
 RAJA OpenMP backend. More...
 
template<typename HBODY >
void RajaSeqWrap (const int N, HBODY &&h_body)
 RAJA sequential loop backend. More...
 
template<const int BLCK = MFEM_CUDA_BLOCKS, typename DBODY >
void CuWrap1D (const int N, DBODY &&d_body)
 
template<typename DBODY >
void CuWrap2D (const int N, DBODY &&d_body, const int X, const int Y, const int BZ)
 
template<typename DBODY >
void CuWrap3D (const int N, DBODY &&d_body, const int X, const int Y, const int Z, const int G)
 
template<const int BLCK = MFEM_HIP_BLOCKS, typename DBODY >
void HipWrap1D (const int N, DBODY &&d_body)
 
template<typename DBODY >
void HipWrap2D (const int N, DBODY &&d_body, const int X, const int Y, const int BZ)
 
template<typename DBODY >
void HipWrap3D (const int N, DBODY &&d_body, const int X, const int Y, const int Z, const int G)
 
template<const int DIM, typename d_lambda , typename h_lambda >
void ForallWrap (const bool use_dev, const int N, d_lambda &&d_body, h_lambda &&h_body, const int X=0, const int Y=0, const int Z=0, const int G=0)
 The forall kernel body wrapper. More...
 
template<const int DIM, typename lambda >
void ForallWrap (const bool use_dev, const int N, lambda &&body, const int X=0, const int Y=0, const int Z=0, const int G=0)
 
template<typename lambda >
void forall (int N, lambda &&body)
 
template<typename lambda >
void forall_switch (bool use_dev, int N, lambda &&body)
 
template<typename lambda >
void forall_2D (int N, int X, int Y, lambda &&body)
 
template<typename lambda >
void forall_2D_batch (int N, int X, int Y, int BZ, lambda &&body)
 
template<typename lambda >
void forall_3D (int N, int X, int Y, int Z, lambda &&body)
 
template<typename lambda >
void forall_3D_grid (int N, int X, int Y, int Z, int G, lambda &&body)
 
std::string MakeParFilename (const std::string &prefix, const int myid, const std::string suffix="", const int width=6)
 Construct a string of the form "<prefix><myid><suffix>" where the integer myid is padded with leading zeros to be at least width digits long. More...
 
constexpr char to_hex (unsigned char u)
 
void mfem_hip_error (hipError_t err, const char *expr, const char *func, const char *file, int line)
 
void * HipMemAlloc (void **d_ptr, size_t bytes)
 Allocates device memory. More...
 
void * HipMallocManaged (void **d_ptr, size_t bytes)
 Allocates managed device memory. More...
 
void * HipMemAllocHostPinned (void **ptr, size_t bytes)
 Allocates page-locked (pinned) host memory. More...
 
void * HipMemFree (void *d_ptr)
 Frees device memory. More...
 
void * HipMemFreeHostPinned (void *ptr)
 Frees page-locked (pinned) host memory and returns destination ptr. More...
 
void * HipMemcpyHtoD (void *d_dst, const void *h_src, size_t bytes)
 Copies memory from Host to Device. More...
 
void * HipMemcpyHtoDAsync (void *d_dst, const void *h_src, size_t bytes)
 Copies memory from Host to Device. More...
 
void * HipMemcpyDtoD (void *d_dst, const void *d_src, size_t bytes)
 Copies memory from Device to Device. More...
 
void * HipMemcpyDtoDAsync (void *d_dst, const void *d_src, size_t bytes)
 Copies memory from Device to Device. More...
 
void * HipMemcpyDtoH (void *h_dst, const void *d_src, size_t bytes)
 Copies memory from Device to Host. More...
 
void * HipMemcpyDtoHAsync (void *h_dst, const void *d_src, size_t bytes)
 Copies memory from Device to Host. More...
 
void HipCheckLastError ()
 Check the error code returned by hipGetLastError(), aborting on error. More...
 
int HipGetDeviceCount ()
 Get the number of HIP devices. More...
 
MemoryType GetMemoryType (MemoryClass mc)
 Return a suitable MemoryType for a given MemoryClass. More...
 
bool MemoryClassContainsType (MemoryClass mc, MemoryType mt)
 Return true iff the MemoryType mt is contained in the MemoryClass mc. More...
 
MemoryClass operator* (MemoryClass mc1, MemoryClass mc2)
 Return a suitable MemoryClass from a pair of MemoryClasses. More...
 
void MemoryPrintFlags (unsigned flags)
 Print the state of a Memory object based on its internal flags. Useful in a debugger. See also Memory<T>::PrintFlags(). More...
 
bool IsHostMemory (MemoryType mt)
 Return true if the given memory type is in MemoryClass::HOST. More...
 
bool IsDeviceMemory (MemoryType mt)
 Return true if the given memory type is in MemoryClass::DEVICE. More...
 
occa::device & OccaDev ()
 Return the default occa::device used by MFEM. More...
 
occa::memory OccaMemoryWrap (void *ptr, std::size_t bytes)
 Wrap a pointer as occa::memory with the default occa::device used by MFEM. More...
 
template<typename T >
const occa::memory OccaMemoryRead (const Memory< T > &mem, size_t size)
 Wrap a Memory object as occa::memory for read only access with the mfem::Device MemoryClass. The returned occa::memory is associated with the default occa::device used by MFEM. More...
 
template<typename T >
occa::memory OccaMemoryWrite (Memory< T > &mem, size_t size)
 Wrap a Memory object as occa::memory for write only access with the mfem::Device MemoryClass. The returned occa::memory is associated with the default occa::device used by MFEM. More...
 
template<typename T >
occa::memory OccaMemoryReadWrite (Memory< T > &mem, size_t size)
 Wrap a Memory object as occa::memory for read-write access with the mfem::Device MemoryClass. The returned occa::memory is associated with the default occa::device used by MFEM. More...
 
bool DeviceCanUseOcca ()
 Function that determines if an OCCA kernel should be used, based on the current mfem::Device configuration. More...
 
int isValidAsInt (char *s)
 
int isValidAsDouble (char *s)
 
void parseArray (char *str, Array< int > &var)
 
void parseVector (char *str, Vector &var)
 
template<class A , class B >
bool operator< (const Pair< A, B > &p, const Pair< A, B > &q)
 Comparison operator for class Pair, based on the first element only. More...
 
template<class A , class B >
bool operator== (const Pair< A, B > &p, const Pair< A, B > &q)
 Equality operator for class Pair, based on the first element only. More...
 
template<class A , class B >
void SortPairs (Pair< A, B > *pairs, int size)
 Sort an array of Pairs with respect to the first element. More...
 
template<class A , class B , class C >
bool operator< (const Triple< A, B, C > &p, const Triple< A, B, C > &q)
 Lexicographic comparison operator for class Triple. More...
 
template<class A , class B , class C >
void SortTriple (Triple< A, B, C > *triples, int size)
 Lexicographic sort for arrays of class Triple. More...
 
void Sort3 (int &r, int &c, int &f)
 
void Transpose (const Table &A, Table &At, int ncols_A_=-1)
 Transpose a Table. More...
 
TableTranspose (const Table &A)
 
void Transpose (const Array< int > &A, Table &At, int ncols_A_=-1)
 Transpose an Array<int> More...
 
void Mult (const Table &A, const Table &B, Table &C)
 C = A * B (as boolean matrices) More...
 
TableMult (const Table &A, const Table &B)
 
template<>
void Swap< Table > (Table &a, Table &b)
 Specialization of the template function Swap<> for class Table. More...
 
template<AssignOp::Type Op, typename lvalue_t , typename rvalue_t >
lvalue_t & Assign (lvalue_t &a, const rvalue_t &b)
 
template<AssignOp::Type Op, typename lvalue_t , typename rvalue_t >
MFEM_HOST_DEVICE lvalue_t & AssignHD (lvalue_t &a, const rvalue_t &b)
 
void skip_comment_lines (std::istream &is, const char comment_char)
 Check if the stream starts with comment_char. If so skip it. More...
 
void filter_dos (std::string &line)
 Check for, and remove, a trailing '\r' from and std::string. More...
 
std::string to_padded_string (int i, int digits)
 Convert an integer to a 0-padded string with the given number of digits. More...
 
int to_int (const std::string &str)
 Convert a string to an int. More...
 
void tic ()
 Start the tic_toc timer. More...
 
double toc ()
 End timing and return the time from tic() to toc() in seconds. More...
 
int GetVersion ()
 Return the MFEM version number as a single integer. More...
 
int GetVersionMajor ()
 Return the MFEM major version number as an integer. More...
 
int GetVersionMinor ()
 Return the MFEM minor version number as an integer. More...
 
int GetVersionPatch ()
 Return the MFEM version patch number as an integer. More...
 
const char * GetVersionStr ()
 Return the MFEM version number as a string. More...
 
const char * GetGitStr ()
 Return the MFEM Git hash as a string. More...
 
const char * GetConfigStr ()
 Return the MFEM configuration as a string. More...
 
BlockMatrixTranspose (const BlockMatrix &A)
 Transpose a BlockMatrix: result = A'. More...
 
BlockMatrixMult (const BlockMatrix &A, const BlockMatrix &B)
 Multiply BlockMatrix matrices: result = A*B. More...
 
ComplexDenseMatrixMult (const ComplexDenseMatrix &B, const ComplexDenseMatrix &C)
 Matrix matrix multiplication. A = B * C. More...
 
ComplexDenseMatrixMultAtB (const ComplexDenseMatrix &A, const ComplexDenseMatrix &B)
 Multiply the complex conjugate transpose of a matrix A with a matrix B. A^H*B. More...
 
int CanonicalNodeNumber (FiniteElementSpace &fespace, int node, bool parallel, int d=0)
 
SparseMatrixBuildNormalConstraints (FiniteElementSpace &fespace, Array< int > &constrained_att, Array< int > &constraint_rowstarts, bool parallel=false)
 Build a matrix constraining normal components to zero. More...
 
SparseMatrixParBuildNormalConstraints (ParFiniteElementSpace &fespace, Array< int > &constrained_att, Array< int > &constraint_rowstarts)
 Parallel wrapper for BuildNormalConstraints. More...
 
void dsyevr_Eigensystem (DenseMatrix &a, Vector &ev, DenseMatrix *evect)
 
void dsyev_Eigensystem (DenseMatrix &a, Vector &ev, DenseMatrix *evect)
 
void dsygv_Eigensystem (DenseMatrix &a, DenseMatrix &b, Vector &ev, DenseMatrix *evect)
 
void Add (const DenseMatrix &A, const DenseMatrix &B, double alpha, DenseMatrix &C)
 C = A + alpha*B. More...
 
void Add (double alpha, const double *A, double beta, const double *B, DenseMatrix &C)
 C = alpha*A + beta*B. More...
 
void Add (double alpha, const DenseMatrix &A, double beta, const DenseMatrix &B, DenseMatrix &C)
 C = alpha*A + beta*B. More...
 
bool LinearSolve (DenseMatrix &A, double *X, double TOL=1.e-9)
 Solves the dense linear system, A * X = B for X More...
 
void Mult (const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A = B * C. More...
 
void AddMult_a (double alpha, const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A += alpha * B * C. More...
 
void AddMult (const DenseMatrix &b, const DenseMatrix &c, DenseMatrix &a)
 Matrix matrix multiplication. A += B * C. More...
 
void CalcAdjugate (const DenseMatrix &a, DenseMatrix &adja)
 
void CalcAdjugateTranspose (const DenseMatrix &a, DenseMatrix &adjat)
 Calculate the transposed adjugate of a matrix (for NxN matrices, N=1,2,3) More...
 
void CalcInverse (const DenseMatrix &a, DenseMatrix &inva)
 
void CalcInverseTranspose (const DenseMatrix &a, DenseMatrix &inva)
 Calculate the inverse transpose of a matrix (for NxN matrices, N=1,2,3) More...
 
void CalcOrtho (const DenseMatrix &J, Vector &n)
 
void MultAAt (const DenseMatrix &a, DenseMatrix &aat)
 Calculate the matrix A.At. More...
 
void AddMultADAt (const DenseMatrix &A, const Vector &D, DenseMatrix &ADAt)
 ADAt += A D A^t, where D is diagonal. More...
 
void MultADAt (const DenseMatrix &A, const Vector &D, DenseMatrix &ADAt)
 ADAt = A D A^t, where D is diagonal. More...
 
void MultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 Multiply a matrix A with the transpose of a matrix B: A*Bt. More...
 
void MultADBt (const DenseMatrix &A, const Vector &D, const DenseMatrix &B, DenseMatrix &ADBt)
 ADBt = A D B^t, where D is diagonal. More...
 
void AddMultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 ABt += A * B^t. More...
 
void AddMultADBt (const DenseMatrix &A, const Vector &D, const DenseMatrix &B, DenseMatrix &ADBt)
 ADBt = A D B^t, where D is diagonal. More...
 
void AddMult_a_ABt (double a, const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 ABt += a * A * B^t. More...
 
void MultAtB (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &AtB)
 Multiply the transpose of a matrix A with a matrix B: At*B. More...
 
void AddMult_a_AAt (double a, const DenseMatrix &A, DenseMatrix &AAt)
 AAt += a * A * A^t. More...
 
void Mult_a_AAt (double a, const DenseMatrix &A, DenseMatrix &AAt)
 AAt = a * A * A^t. More...
 
void MultVVt (const Vector &v, DenseMatrix &vvt)
 Make a matrix from a vector V.Vt. More...
 
void MultVWt (const Vector &v, const Vector &w, DenseMatrix &VWt)
 
void AddMultVWt (const Vector &v, const Vector &w, DenseMatrix &VWt)
 VWt += v w^t. More...
 
void AddMultVVt (const Vector &v, DenseMatrix &VWt)
 VVt += v v^t. More...
 
void AddMult_a_VWt (const double a, const Vector &v, const Vector &w, DenseMatrix &VWt)
 VWt += a * v w^t. More...
 
void AddMult_a_VVt (const double a, const Vector &v, DenseMatrix &VVt)
 VVt += a * v v^t. More...
 
void RAP (const DenseMatrix &A, const DenseMatrix &P, DenseMatrix &RAP)
 
void RAP (const DenseMatrix &Rt, const DenseMatrix &A, const DenseMatrix &P, DenseMatrix &RAP)
 
void BatchLUFactor (DenseTensor &Mlu, Array< int > &P, const double TOL=0.0)
 Compute the LU factorization of a batch of matrices. More...
 
void BatchLUSolve (const DenseTensor &Mlu, const Array< int > &P, Vector &X)
 Solve batch linear systems. More...
 
template<typename T , typename... Dims>
MFEM_HOST_DEVICE DeviceTensor< sizeof...(Dims), T > Reshape (T *ptr, Dims... dims)
 Wrap a pointer as a DeviceTensor with automatically deduced template parameters. More...
 
template<typename T >
bool CanShallowCopy (const Memory< T > &src, MemoryClass mc)
 Return true if the src Memory can be used with the MemoryClass mc. More...
 
double InnerProduct (HypreParVector *x, HypreParVector *y)
 
double InnerProduct (HypreParVector &x, HypreParVector &y)
 Returns the inner product of x and y. More...
 
double ParNormlp (const Vector &vec, double p, MPI_Comm comm)
 Compute the l_p norm of the Vector which is split without overlap across the given communicator. More...
 
template<typename T >
void CopyMemory (Memory< T > &src, Memory< T > &dst, MemoryClass dst_mc, bool dst_owner)
 Shallow or deep copy src to dst with the goal to make the array src accessible through dst with the MemoryClass dst_mc. If one of the host/device MemoryTypes of src is contained in dst_mc, then a shallow copy will be used and dst will simply be an alias of src. Otherwise, dst will be properly allocated and src will be deep copied to dst. More...
 
template<typename SrcT , typename DstT >
void CopyConvertMemory (Memory< SrcT > &src, MemoryClass dst_mc, Memory< DstT > &dst)
 Deep copy and convert src to dst with the goal to make the array src accessible through dst with the MemoryClass dst_mc and convert it from type SrcT to type DstT. More...
 
void delete_hypre_ParCSRMatrixColMapOffd (hypre_ParCSRMatrix *A)
 
void HypreStealOwnership (HypreParMatrix &A_hyp, SparseMatrix &A_diag)
 Make A_hyp steal ownership of its diagonal part A_diag. More...
 
void BlockInverseScale (const HypreParMatrix *A, HypreParMatrix *C, const Vector *b, HypreParVector *d, int blocksize, BlockInverseScaleJob job)
 
HypreParMatrixAdd (double alpha, const HypreParMatrix &A, double beta, const HypreParMatrix &B)
 Return a new matrix C = alpha*A + beta*B, assuming that both A and B use the same row and column partitions and the same col_map_offd arrays. More...
 
HypreParMatrixParAdd (const HypreParMatrix *A, const HypreParMatrix *B)
 Returns the matrix A + B. More...
 
HypreParMatrixParMult (const HypreParMatrix *A, const HypreParMatrix *B, bool own_matrix)
 
HypreParMatrixRAP (const HypreParMatrix *A, const HypreParMatrix *P)
 Returns the matrix P^t * A * P. More...
 
HypreParMatrixRAP (const HypreParMatrix *Rt, const HypreParMatrix *A, const HypreParMatrix *P)
 Returns the matrix Rt^t * A * P. More...
 
void GatherBlockOffsetData (MPI_Comm comm, const int rank, const int nprocs, const int num_loc, const Array< int > &offsets, std::vector< int > &all_num_loc, const int numBlocks, std::vector< std::vector< HYPRE_BigInt >> &blockProcOffsets, std::vector< HYPRE_BigInt > &procOffsets, std::vector< std::vector< int >> &procBlockOffsets, HYPRE_BigInt &firstLocal, HYPRE_BigInt &globalNum)
 
HypreParMatrixHypreParMatrixFromBlocks (Array2D< HypreParMatrix * > &blocks, Array2D< double > *blockCoeff=NULL)
 Returns a merged hypre matrix constructed from hypre matrix blocks. More...
 
void EliminateBC (const HypreParMatrix &A, const HypreParMatrix &Ae, const Array< int > &ess_dof_list, const Vector &X, Vector &B)
 Eliminate essential BC specified by ess_dof_list from the solution X to the r.h.s. B. More...
 
int ParCSRRelax_Taubin (hypre_ParCSRMatrix *A, hypre_ParVector *f, double lambda, double mu, int N, double max_eig, hypre_ParVector *u, hypre_ParVector *r)
 
int ParCSRRelax_FIR (hypre_ParCSRMatrix *A, hypre_ParVector *f, double max_eig, int poly_order, double *fir_coeffs, hypre_ParVector *u, hypre_ParVector *x0, hypre_ParVector *x1, hypre_ParVector *x2, hypre_ParVector *x3)
 
constexpr MemoryClass GetHypreMemoryClass ()
 The MemoryClass used by Hypre objects. More...
 
MemoryType GetHypreMemoryType ()
 The MemoryType used by MFEM when allocating arrays for Hypre objects. More...
 
HypreParMatrixDiscreteGrad (ParFiniteElementSpace *edge_fespace, ParFiniteElementSpace *vert_fespace)
 Compute the discrete gradient matrix between the nodal linear and ND1 spaces. More...
 
HypreParMatrixDiscreteCurl (ParFiniteElementSpace *face_fespace, ParFiniteElementSpace *edge_fespace)
 Compute the discrete curl matrix between the ND1 and RT0 spaces. More...
 
bool IsIdentityProlongation (const Operator *P)
 
void MFEMInitializePetsc ()
 Convenience functions to initialize/finalize PETSc. More...
 
void MFEMInitializePetsc (int *argc, char ***argv)
 
void MFEMInitializePetsc (int *argc, char ***argv, const char rc_file[], const char help[])
 
void MFEMFinalizePetsc ()
 
PetscParMatrixTripleMatrixProduct (PetscParMatrix *R, PetscParMatrix *A, PetscParMatrix *P)
 Returns the matrix R * A * P. More...
 
PetscParMatrixRAP (PetscParMatrix *Rt, PetscParMatrix *A, PetscParMatrix *P)
 Returns the matrix Rt^t * A * P. More...
 
PetscParMatrixRAP (PetscParMatrix *A, PetscParMatrix *P)
 Returns the matrix P^t * A * P. More...
 
PetscParMatrixRAP (HypreParMatrix *A, PetscParMatrix *P)
 Returns the matrix P^t * A * P. More...
 
PetscParMatrixParMult (const PetscParMatrix *A, const PetscParMatrix *B)
 Returns the matrix A * B. More...
 
void EliminateBC (PetscParMatrix &A, PetscParMatrix &Ae, const Array< int > &ess_dof_list, const Vector &X, Vector &B)
 Eliminate essential BC specified by ess_dof_list from the solution X to the r.h.s. B. More...
 
void MFEMInitializeSlepc ()
 
void MFEMInitializeSlepc (int *argc, char ***argv)
 
void MFEMInitializeSlepc (int *argc, char ***argv, const char rc_file[], const char help[])
 
void MFEMFinalizeSlepc ()
 
void SLI (const Operator &A, const Vector &b, Vector &x, int print_iter=0, int max_num_iter=1000, double RTOLERANCE=1e-12, double ATOLERANCE=1e-24)
 Stationary linear iteration. (tolerances are squared) More...
 
void SLI (const Operator &A, Solver &B, const Vector &b, Vector &x, int print_iter=0, int max_num_iter=1000, double RTOLERANCE=1e-12, double ATOLERANCE=1e-24)
 Preconditioned stationary linear iteration. (tolerances are squared) More...
 
void CG (const Operator &A, const Vector &b, Vector &x, int print_iter=0, int max_num_iter=1000, double RTOLERANCE=1e-12, double ATOLERANCE=1e-24)
 Conjugate gradient method. (tolerances are squared) More...
 
void PCG (const Operator &A, Solver &B, const Vector &b, Vector &x, int print_iter=0, int max_num_iter=1000, double RTOLERANCE=1e-12, double ATOLERANCE=1e-24)
 Preconditioned conjugate gradient method. (tolerances are squared) More...
 
void GeneratePlaneRotation (double &dx, double &dy, double &cs, double &sn)
 
void ApplyPlaneRotation (double &dx, double &dy, double &cs, double &sn)
 
void Update (Vector &x, int k, DenseMatrix &h, Vector &s, Array< Vector *> &v)
 
int GMRES (const Operator &A, Vector &x, const Vector &b, Solver &M, int &max_iter, int m, double &tol, double atol, int printit)
 GMRES method. (tolerances are squared) More...
 
void GMRES (const Operator &A, Solver &B, const Vector &b, Vector &x, int print_iter=0, int max_num_iter=1000, int m=50, double rtol=1e-12, double atol=1e-24)
 GMRES method. (tolerances are squared) More...
 
int BiCGSTAB (const Operator &A, Vector &x, const Vector &b, Solver &M, int &max_iter, double &tol, double atol, int printit)
 BiCGSTAB method. (tolerances are squared) More...
 
void BiCGSTAB (const Operator &A, Solver &B, const Vector &b, Vector &x, int print_iter=0, int max_num_iter=1000, double rtol=1e-12, double atol=1e-24)
 BiCGSTAB method. (tolerances are squared) More...
 
void MINRES (const Operator &A, const Vector &b, Vector &x, int print_it=0, int max_it=1000, double rtol=1e-12, double atol=1e-24)
 MINRES method without preconditioner. (tolerances are squared) More...
 
void MINRES (const Operator &A, Solver &B, const Vector &b, Vector &x, int print_it=0, int max_it=1000, double rtol=1e-12, double atol=1e-24)
 MINRES method with preconditioner. (tolerances are squared) More...
 
int aGMRES (const Operator &A, Vector &x, const Vector &b, const Operator &M, int &max_iter, int m_max, int m_min, int m_step, double cf, double &tol, double &atol, int printit)
 
void MinimumDiscardedFillOrdering (SparseMatrix &C, Array< int > &p)
 
void dormqr_ (char *, char *, int *, int *, int *, double *, int *, double *, double *, int *, double *, int *, int *)
 
void dgeqrf_ (int *, int *, double *, int *, double *, double *, int *, int *)
 
void dgemv_ (char *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *)
 
void dtrsm_ (char *side, char *uplo, char *transa, char *diag, int *m, int *n, double *alpha, double *a, int *lda, double *b, int *ldb)
 
void SparseMatrixFunction (SparseMatrix &S, double(*f)(double))
 Applies f() to each element of the matrix (after it is finalized). More...
 
SparseMatrixTranspose (const SparseMatrix &A)
 Transpose of a sparse matrix. A must be finalized. More...
 
SparseMatrixTransposeAbstractSparseMatrix (const AbstractSparseMatrix &A, int useActualWidth)
 Transpose of a sparse matrix. A does not need to be a CSR matrix. More...
 
SparseMatrixMult (const SparseMatrix &A, const SparseMatrix &B, SparseMatrix *OAB=NULL)
 Matrix product A.B. More...
 
SparseMatrixTransposeMult (const SparseMatrix &A, const SparseMatrix &B)
 C = A^T B. More...
 
SparseMatrixMultAbstractSparseMatrix (const AbstractSparseMatrix &A, const AbstractSparseMatrix &B)
 Matrix product of sparse matrices. A and B do not need to be CSR matrices. More...
 
DenseMatrixMult (const SparseMatrix &A, DenseMatrix &B)
 Matrix product A.B. More...
 
DenseMatrixRAP (const SparseMatrix &A, DenseMatrix &P)
 RAP matrix product (with R=P^T) More...
 
DenseMatrixRAP (DenseMatrix &A, const SparseMatrix &P)
 RAP matrix product (with R=P^T) More...
 
SparseMatrixRAP (const SparseMatrix &A, const SparseMatrix &R, SparseMatrix *ORAP)
 
SparseMatrixRAP (const SparseMatrix &Rt, const SparseMatrix &A, const SparseMatrix &P)
 General RAP with given R^T, A and P. More...
 
SparseMatrixMult_AtDA (const SparseMatrix &A, const Vector &D, SparseMatrix *OAtDA=NULL)
 Matrix multiplication A^t D A. All matrices must be finalized. More...
 
SparseMatrixAdd (double a, const SparseMatrix &A, double b, const SparseMatrix &B)
 Matrix addition result = a*A + b*B. More...
 
SparseMatrixAdd (const SparseMatrix &A, const SparseMatrix &B)
 Matrix addition result = A + B. More...
 
SparseMatrixAdd (Array< SparseMatrix * > &Ai)
 Matrix addition result = sum_i A_i. More...
 
void Add (const SparseMatrix &A, double alpha, DenseMatrix &B)
 B += alpha * A. More...
 
DenseMatrixOuterProduct (const DenseMatrix &A, const DenseMatrix &B)
 Produces a block matrix with blocks A_{ij}*B. More...
 
SparseMatrixOuterProduct (const DenseMatrix &A, const SparseMatrix &B)
 Produces a block matrix with blocks A_{ij}*B. More...
 
SparseMatrixOuterProduct (const SparseMatrix &A, const DenseMatrix &B)
 Produces a block matrix with blocks A_{ij}*B. More...
 
SparseMatrixOuterProduct (const SparseMatrix &A, const SparseMatrix &B)
 Produces a block matrix with blocks A_{ij}*B. More...
 
class if defined (__alignas_is_defined) alignas(double) RowNode
 
std::ostream & operator<< (std::ostream &os, SparseMatrix const &mat)
 
template<>
void Swap< SparseMatrix > (SparseMatrix &a, SparseMatrix &b)
 Specialization of the template function Swap<> for class SparseMatrix. More...
 
template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void sMult_AB (const A_layout_t &A_layout, const A_data_t &A_data, const B_layout_t &B_layout, const B_data_t &B_data, const C_layout_t &C_layout, C_data_t &C_data)
 
template<int bA1, int bA2, int bB2, bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void bMult_AB (const A_layout_t &A_layout, const A_data_t &A_data, const B_layout_t &B_layout, const B_data_t &B_data, const C_layout_t &C_layout, C_data_t &C_data)
 
template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void Mult_AB (const A_layout_t &A_layout, const A_data_t &A_data, const B_layout_t &B_layout, const B_data_t &B_data, const C_layout_t &C_layout, C_data_t &C_data)
 
template<typename scalar_t , typename layout_t , typename data_t >
scalar_t TDet (const layout_t &a, const data_t &A)
 
template<typename scalar_t , typename layout_t , typename data_t >
MFEM_HOST_DEVICE scalar_t TDetHD (const layout_t &a, const data_t &A)
 
template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename D_data_t >
void TDet (const A_layout_t &a, const A_data_t &A, D_data_t &D)
 
template<typename scalar_t , typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
void TAdjugate (const A_layout_t &a, const A_data_t &A, const B_layout_t &b, B_data_t &B)
 
template<typename scalar_t , typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
MFEM_HOST_DEVICE void TAdjugateHD (const A_layout_t &a, const A_data_t &A, const B_layout_t &b, B_data_t &B)
 
template<typename scalar_t , typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
scalar_t TAdjDet (const A_layout_t &a, const A_data_t &A, const B_layout_t &b, B_data_t &B)
 
template<typename scalar_t , typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
MFEM_HOST_DEVICE scalar_t TAdjDetHD (const A_layout_t &a, const A_data_t &A, const B_layout_t &b, B_data_t &B)
 
template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename scalar_t >
void TAssign (const A_layout_t &A_layout, A_data_t &A_data, const scalar_t value)
 
template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename scalar_t >
MFEM_HOST_DEVICE void TAssignHD (const A_layout_t &A_layout, A_data_t &A_data, const scalar_t value)
 
template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
void TAssign (const A_layout_t &A_layout, A_data_t &A_data, const B_layout_t &B_layout, const B_data_t &B_data)
 
template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void Mult_1_2 (const A_layout_t &A_layout, const A_data_t &A_data, const B_layout_t &B_layout, const B_data_t &B_data, const C_layout_t &C_layout, C_data_t &C_data)
 
template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void Mult_2_1 (const A_layout_t &A_layout, const A_data_t &A_data, const B_layout_t &B_layout, const B_data_t &B_data, const C_layout_t &C_layout, C_data_t &C_data)
 
template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void TensorAssemble (const A_layout_t &A_layout, const A_data_t &A_data, const B_layout_t &B_layout, const B_data_t &B_data, const C_layout_t &C_layout, C_data_t &C_data)
 
template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t , typename D_layout_t , typename D_data_t >
MFEM_ALWAYS_INLINE void TensorAssemble (const A_layout_t &A_layout, const A_data_t &A_data, const B_layout_t &B_layout, const B_data_t &B_data, const C_layout_t &C_layout, const C_data_t &C_data, const D_layout_t &D_layout, D_data_t &D_data)
 
template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void TensorProduct (const A_layout_t &a, const A_data_t &A, const B_layout_t &b, const B_data_t &B, const C_layout_t &c, C_data_t &C)
 
void add (const Vector &v1, const Vector &v2, Vector &v)
 
void add (const Vector &v1, double alpha, const Vector &v2, Vector &v)
 
void add (const double a, const Vector &x, const Vector &y, Vector &z)
 
void add (const double a, const Vector &x, const double b, const Vector &y, Vector &z)
 
void subtract (const Vector &x, const Vector &y, Vector &z)
 
void subtract (const double a, const Vector &x, const Vector &y, Vector &z)
 
int CheckFinite (const double *v, const int n)
 
double infinity ()
 Define a shortcut for std::numeric_limits<double>::infinity() More...
 
template<typename T >
ZeroSubnormal (T val)
 
bool IsFinite (const double &val)
 
template<>
void Swap< Vector > (Vector &a, Vector &b)
 Specialization of the template function Swap<> for class Vector. More...
 
double DistanceSquared (const double *x, const double *y, const int n)
 
double Distance (const double *x, const double *y, const int n)
 
double Distance (const Vector &x, const Vector &y)
 
double InnerProduct (const Vector &x, const Vector &y)
 Returns the inner product of x and y. More...
 
double InnerProduct (MPI_Comm comm, const Vector &x, const Vector &y)
 Returns the inner product of x and y in parallel. More...
 
template<typename scalar_t , int S, int A>
MFEM_ALWAYS_INLINE AutoSIMD< scalar_t, S, A > operator+ (const scalar_t &e, const AutoSIMD< scalar_t, S, A > &v)
 
template<typename scalar_t , int S, int A>
MFEM_ALWAYS_INLINE AutoSIMD< scalar_t, S, A > operator- (const scalar_t &e, const AutoSIMD< scalar_t, S, A > &v)
 
template<typename scalar_t , int S, int A>
MFEM_ALWAYS_INLINE AutoSIMD< scalar_t, S, A > operator* (const scalar_t &e, const AutoSIMD< scalar_t, S, A > &v)
 
template<typename scalar_t , int S, int A>
MFEM_ALWAYS_INLINE AutoSIMD< scalar_t, S, A > operator/ (const scalar_t &e, const AutoSIMD< scalar_t, S, A > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 2, 16 > operator+ (const double &e, const AutoSIMD< double, 2, 16 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 2, 16 > operator- (const double &e, const AutoSIMD< double, 2, 16 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 2, 16 > operator* (const double &e, const AutoSIMD< double, 2, 16 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 2, 16 > operator/ (const double &e, const AutoSIMD< double, 2, 16 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 4, 32 > operator+ (const double &e, const AutoSIMD< double, 4, 32 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 4, 32 > operator- (const double &e, const AutoSIMD< double, 4, 32 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 4, 32 > operator* (const double &e, const AutoSIMD< double, 4, 32 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 4, 32 > operator/ (const double &e, const AutoSIMD< double, 4, 32 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 8, 64 > operator+ (const double &e, const AutoSIMD< double, 8, 64 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 8, 64 > operator- (const double &e, const AutoSIMD< double, 8, 64 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 8, 64 > operator* (const double &e, const AutoSIMD< double, 8, 64 > &v)
 
MFEM_ALWAYS_INLINE AutoSIMD< double, 8, 64 > operator/ (const double &e, const AutoSIMD< double, 8, 64 > &v)
 
int BarycentricToGmshTet (int *b, int ref)
 
int CartesianToGmshQuad (int idx_in[], int ref)
 
int CartesianToGmshHex (int idx_in[], int ref)
 
int WedgeToGmshPri (int idx_in[], int ref)
 
int CartesianToGmshPyramid (int idx_in[], int ref)
 
std::ostream & operator<< (std::ostream &os, const Mesh::FaceInformation &info)
 Print function for Mesh::FaceInformation. More...
 
void XYZ_VectorFunction (const Vector &p, Vector &v)
 
void FindPartitioningComponents (Table &elem_elem, const Array< int > &partitioning, Array< int > &component, Array< int > &num_comp)
 
void DetOfLinComb (const DenseMatrix &A, const DenseMatrix &B, Vector &c)
 
int FindRoots (const Vector &z, Vector &x)
 
void FindTMax (Vector &c, Vector &x, double &tmax, const double factor, const int Dim)
 
std::ostream & operator<< (std::ostream &os, const Mesh &mesh)
 
MeshExtrude1D (Mesh *mesh, const int ny, const double sy, const bool closed=false)
 Extrude a 1D mesh. More...
 
MeshExtrude2D (Mesh *mesh, const int nz, const double sz)
 Extrude a 2D mesh. More...
 
void ShiftRight (int &a, int &b, int &c)
 
bool CubeFaceLeft (int node, int *n)
 
bool CubeFaceRight (int node, int *n)
 
bool CubeFaceFront (int node, int *n)
 
bool CubeFaceBack (int node, int *n)
 
bool CubeFaceBottom (int node, int *n)
 
bool CubeFaceTop (int node, int *n)
 
bool PrismFaceBottom (int node, int *n)
 
bool PrismFaceTop (int node, int *n)
 
void Swap (CoarseFineTransformations &a, CoarseFineTransformations &b)
 
NURBSPatchInterpolate (NURBSPatch &p1, NURBSPatch &p2)
 
NURBSPatchRevolve3D (NURBSPatch &patch, double n[], double ang, int times)
 
bool operator< (const ParNCMesh::CommGroup &lhs, const ParNCMesh::CommGroup &rhs)
 
bool operator< (const NCMesh::MeshId &a, const NCMesh::MeshId &b)
 
bool operator== (const NCMesh::MeshId &a, const NCMesh::MeshId &b)
 
int BarycentricToVTKTriangle (int *b, int ref)
 Return the VTK node index of the barycentric point b in a triangle with refinement level ref. More...
 
int BarycentricToVTKTetra (int *b, int ref)
 
int VTKTriangleDOFOffset (int ref, int i, int j)
 
int CartesianToVTKPrism (int i, int j, int k, int ref)
 
int CartesianToVTKTensor (int idx_in, int ref, Geometry::Type geom)
 
void CreateVTKElementConnectivity (Array< int > &con, Geometry::Type geom, int ref)
 Create the VTK element connectivity array for a given element geometry and refinement level. More...
 
void WriteVTKEncodedCompressed (std::ostream &os, const void *bytes, uint32_t nbytes, int compression_level)
 Outputs encoded binary data in the base 64 format needed by VTK. More...
 
bool IsBigEndian ()
 
const char * VTKByteOrder ()
 Determine the byte order and return either "BigEndian" or "LittleEndian". More...
 
template<>
void WriteBinaryOrASCII< uint8_t > (std::ostream &os, std::vector< char > &buf, const uint8_t &val, const char *suffix, VTKFormat format)
 Specialization of WriteBinaryOrASCII for uint8_t to ensure ASCII output is numeric (rather than interpreting val as a character.) More...
 
template<>
void WriteBinaryOrASCII< double > (std::ostream &os, std::vector< char > &buf, const double &val, const char *suffix, VTKFormat format)
 Specialization of WriteBinaryOrASCII for double. More...
 
template<>
void WriteBinaryOrASCII< float > (std::ostream &os, std::vector< char > &buf, const float &val, const char *suffix, VTKFormat format)
 Specialization of WriteBinaryOrASCII<T> for float. More...
 
void WriteBase64WithSizeAndClear (std::ostream &os, std::vector< char > &buf, int compression_level)
 Encode in base 64 (and potentially compress) the given data, write it to the output stream (with a header) and clear the buffer. More...
 
template<typename T >
void WriteBinaryOrASCII (std::ostream &os, std::vector< char > &buf, const T &val, const char *suffix, VTKFormat format)
 Write either ASCII data to the stream or binary data to the buffer depending on the given format. More...
 
ElementTransformationRefinedToCoarse (Mesh &coarse_mesh, const ElementTransformation &T, const IntegrationPoint &ip, IntegrationPoint &coarse_ip)
 
double LpNormLoop (double p, Coefficient &coeff, Mesh &mesh, const IntegrationRule *irs[])
 
double LpNormLoop (double p, VectorCoefficient &coeff, Mesh &mesh, const IntegrationRule *irs[])
 
double ComputeLpNorm (double p, Coefficient &coeff, Mesh &mesh, const IntegrationRule *irs[])
 Compute the Lp norm of a function f. \( \| f \|_{Lp} = ( \int_\Omega | f |^p d\Omega)^{1/p} \). More...
 
double ComputeLpNorm (double p, VectorCoefficient &coeff, Mesh &mesh, const IntegrationRule *irs[])
 Compute the Lp norm of a vector function f = {f_i}_i=1...N. \( \| f \|_{Lp} = ( \sum_i \| f_i \|_{Lp}^p )^{1/p} \). More...
 
double ComputeGlobalLpNorm (double p, Coefficient &coeff, ParMesh &pmesh, const IntegrationRule *irs[])
 Compute the global Lp norm of a function f. \( \| f \|_{Lp} = ( \int_\Omega | f |^p d\Omega)^{1/p} \). More...
 
double ComputeGlobalLpNorm (double p, VectorCoefficient &coeff, ParMesh &pmesh, const IntegrationRule *irs[])
 Compute the global Lp norm of a vector function f = {f_i}_i=1...N. \( \| f \|_{Lp} = ( \sum_i \| f_i \|_{Lp}^p )^{1/p} \). More...
 
CoefficientStorage operator| (CoefficientStorage a, CoefficientStorage b)
 
int operator & (CoefficientStorage a, CoefficientStorage b)
 
void TransformPrimal (const DofTransformation *ran_dof_trans, const DofTransformation *dom_dof_trans, DenseMatrix &elmat)
 
void TransformDual (const DofTransformation *ran_dof_trans, const DofTransformation *dom_dof_trans, DenseMatrix &elmat)
 
template<>
void Ordering::DofsToVDofs< Ordering::byNODES > (int ndofs, int vdim, Array< int > &dofs)
 
template<>
void Ordering::DofsToVDofs< Ordering::byVDIM > (int ndofs, int vdim, Array< int > &dofs)
 
template<>
int Ordering::Map< Ordering::byNODES > (int ndofs, int vdim, int dof, int vd)
 
template<>
int Ordering::Map< Ordering::byVDIM > (int ndofs, int vdim, int dof, int vd)
 
bool UsesTensorBasis (const FiniteElementSpace &fes)
 Return true if the mesh contains only one topology and the elements are tensor elements. More...
 
template<typename DataType >
int FmsFieldToGridFunction (FmsMesh fms_mesh, FmsField f, Mesh *mesh, GridFunction &func, bool setFE)
 This function converts an FmsField to an MFEM GridFunction. More...
 
int FmsMeshToMesh (FmsMesh fms_mesh, Mesh **mfem_mesh)
 
bool BasisTypeToFmsBasisType (int bt, FmsBasisType &btype)
 
int GridFunctionToFmsField (FmsDataCollection dc, FmsComponent comp, const std::string &fd_name, const std::string &field_name, const Mesh *mesh, const GridFunction *gf, FmsField *outfield)
 
bool MfemMetaDataToFmsMetaData (DataCollection *mdc, FmsDataCollection fdc)
 
bool FmsMetaDataGetInteger (FmsMetaData mdata, const std::string &key, std::vector< int > &values)
 
bool FmsMetaDataGetScalar (FmsMetaData mdata, const std::string &key, std::vector< double > &values)
 
bool FmsMetaDataGetString (FmsMetaData mdata, const std::string &key, std::string &value)
 
int FmsDataCollectionToDataCollection (FmsDataCollection dc, DataCollection **mfem_dc)
 
int MeshToFmsMesh (const Mesh *mmesh, FmsMesh *fmesh, FmsComponent *volume)
 
int DataCollectionToFmsDataCollection (DataCollection *mfem_dc, FmsDataCollection *dc)
 
void be_to_bfe (Geometry::Type geom, int o, const IntegrationPoint &ip, IntegrationPoint &fip)
 
std::ostream & operator<< (std::ostream &os, const GridFunction &sol)
 
double ZZErrorEstimator (BilinearFormIntegrator &blfi, GridFunction &u, GridFunction &flux, Vector &error_estimates, Array< int > *aniso_flags, int with_subdomains, bool with_coeff)
 
void TensorProductLegendre (int dim, int order, const Vector &x_in, const Vector &xmax, const Vector &xmin, Vector &poly, double angle=0.0, const Vector *midpoint=NULL)
 Defines the global tensor product polynomial space used by NewZZErorrEstimator. More...
 
void BoundingBox (const Array< int > &face_patch, FiniteElementSpace *ufes, int order, Vector &xmin, Vector &xmax, double &angle, Vector &midpoint, int iface=-1)
 Defines the bounding box for the face patches used by NewZZErorrEstimator. More...
 
double LSZZErrorEstimator (BilinearFormIntegrator &blfi, GridFunction &u, Vector &error_estimates, bool subdomain_reconstruction=true, bool with_coeff=false, double tichonov_coeff=0.0)
 A ‘‘true’’ ZZ error estimator that uses face-based patches for flux reconstruction. More...
 
double ComputeElementLpDistance (double p, int i, GridFunction &gf1, GridFunction &gf2)
 Compute the Lp distance between two grid functions on the given element. More...
 
GridFunctionExtrude1DGridFunction (Mesh *mesh, Mesh *mesh2d, GridFunction *sol, const int ny)
 Extrude a scalar 1D GridFunction, after extruding the mesh with Extrude1D. More...
 
std::ostream & operator<< (std::ostream &out, const QuadratureFunction &qf)
 Overload operator<< for std::ostream and QuadratureFunction. More...
 
double GlobalLpNorm (const double p, double loc_norm, MPI_Comm comm)
 Compute a global Lp norm from the local Lp norms computed by each processor. More...
 
double L2ZZErrorEstimator (BilinearFormIntegrator &flux_integrator, const ParGridFunction &x, ParFiniteElementSpace &smooth_flux_fes, ParFiniteElementSpace &flux_fes, Vector &errors, int norm_p, double solver_tol, int solver_max_it)
 
int PermuteFaceL2 (const int dim, const int face_id1, const int face_id2, const int orientation, const int size1d, const int index)
 Compute the dof face index of elem2 corresponding to the given dof face index. More...
 
int ToLexOrdering (const int dim, const int face_id, const int size1d, const int index)
 Convert a dof face index from Native ordering to lexicographic ordering for quads and hexes. More...
 
template<typename real_t >
void CalcShapeMatrix (const FiniteElement &fe, const IntegrationRule &ir, real_t *B, const Array< int > *dof_map=NULL)
 Store mass-like matrix B for each integration point on the reference element. For tensor product evaluation, this is only called on the 1D reference element, and higher dimensions are put together from that. The element mass matrix can be written \( M_E = B^T D_E B \) where the B built here is the B, and is unchanging across the mesh. The diagonal matrix \( D_E \) then contains all the element-specific geometry and physics data. More...
 
template<typename real_t >
void CalcGradTensor (const FiniteElement &fe, const IntegrationRule &ir, real_t *G, const Array< int > *dof_map=NULL)
 store gradient matrix G for each integration point on the reference element. For tensor product evaluation, this is only called on the 1D reference element, and higher dimensions are put together from that. The element stiffness matrix can be written

\[ S_E = \sum_{k=1}^{nq} G_{k,i}^T (D_E^G)_{k,k} G_{k,j} \]

where \( nq \) is the number of quadrature points, \( D_E^G \) contains all the information about the element geometry and coefficients (Jacobians etc.), and \( G \) is the matrix built in this routine, which is the same for all elements in a mesh. More...

 
template<typename real_t >
void CalcShapes (const FiniteElement &fe, const IntegrationRule &ir, real_t *B, real_t *G, const Array< int > *dof_map)
 
void InterpolateTMOP_QualityMetric (TMOP_QualityMetric &metric, const TargetConstructor &tc, const Mesh &mesh, GridFunction &metric_gf)
 Interpolates the metric's values at the nodes of metric_gf. More...
 
void vis_tmop_metric_p (int order, TMOP_QualityMetric &qm, const TargetConstructor &tc, ParMesh &pmesh, char *title, int position)
 
void vis_tmop_metric_s (int order, TMOP_QualityMetric &qm, const TargetConstructor &tc, Mesh &mesh, char *title, int position)
 
bool DeviceCanUseCeed ()
 Function that determines if a CEED kernel should be used, based on the current mfem::Device configuration. More...
 
void InvertLinearTrans (ElementTransformation &trans, const IntegrationPoint &pt, Vector &x)
 
template<typename FEC >
void CheckScalarBasisType (const FiniteElementSpace &fes)
 
template<typename FEC >
void CheckVectorBasisType (const FiniteElementSpace &fes)
 
void CheckBasisType (const FiniteElementSpace &fes)
 
template<typename T >
T * StealPointer (T *&ptr)
 
template<typename T1 , typename T2 >
bool HasIntegrators (BilinearForm &a)
 
IntegrationRule GetCollocatedIntRule (FiniteElementSpace &fes)
 
template<typename T >
void EnsureCapacity (Memory< T > &mem, int capacity)
 Ensure that mem has at least capacity capacity. More...
 
template<typename INTEGRATOR >
void ProjectLORCoefficient (BilinearForm &a, CoefficientVector &coeff_vector)
 
template<int ORDER>
MFEM_HOST_DEVICE void LORVertexCoordinates2D (const double *X, int iel_ho, int kx, int ky, double vx[4], double vy[4])
 
template<int ORDER>
MFEM_HOST_DEVICE void LORVertexCoordinates3D (const double *X, int iel_ho, int kx, int ky, int kz, double vx[8], double vy[8], double vz[8])
 
MFEM_HOST_DEVICE void Jacobian2D (const double x, const double y, const double vx[4], const double vy[4], DeviceMatrix &J)
 
MFEM_HOST_DEVICE void Jacobian3D (const double x, const double y, const double z, const double vx[8], const double vy[8], const double vz[8], DeviceMatrix &J)
 
MFEM_HOST_DEVICE void Adjugate3D (const DeviceMatrix &J, DeviceMatrix &A)
 
MFEM_HOST_DEVICE double Det2D (DeviceMatrix &J)
 
MFEM_HOST_DEVICE double Det3D (DeviceMatrix &J)
 
void TransformToReference (ElementTransformation &Trans, int type, const Vector &physical_p, const double &w, IntegrationPoint &ref_p)
 
std::shared_ptr< CutNewCut (const int dim)
 
template<int Dim>
void BuildBoxes (const Mesh &mesh, std::vector<::moonolith::AABB< Dim, double >> &element_boxes)
 
bool HashGridDetectIntersections (const Mesh &src, const Mesh &dest, std::vector< moonolith::Integer > &pairs)
 
int order_multiplier (const Geometry::Type type, const int dim)
 
std::shared_ptr< HypreParMatrixconvert_to_hypre_matrix (const std::vector< moonolith::Integer > &destination_ranges, HYPRE_BigInt *s_offsets, HYPRE_BigInt *m_offsets, moonolith::SparseMatrix< double > &mat_buffer)
 
void InitTransfer (int argc, char *argv[])
 Initializes the par_moonolith library. It also calls MPI_Init. More...
 
int FinalizeTransfer ()
 Finalize the par_moonolith library. More...
 
void InitTransfer (int argc, char *argv[], MPI_Comm comm)
 Initializes the transfer library. It does not call MPI_Init, but uses the communicator defined by the user. This method can be called only after MPI_Init. More...
 
 MFEM_REGISTER_TMOP_KERNELS (void, DatcSize, const int NE, const int ncomp, const int sizeidx, const double input_min_size, const DenseMatrix &w_, const Array< double > &b_, const Vector &x_, const Vector &nc_reduce, DenseTensor &j_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AssembleDiagonalPA_Kernel_2D, const int NE, const Array< double > &b, const Array< double > &g, const DenseTensor &j, const Vector &h, Vector &diagonal, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AssembleDiagonalPA_Kernel_C0_2D, const int NE, const Array< double > &b, const Vector &h0, Vector &diagonal, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AddMultGradPA_Kernel_2D, const int NE, const Array< double > &b_, const Array< double > &g_, const DenseTensor &j_, const Vector &h_, const Vector &x_, Vector &y_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AddMultGradPA_Kernel_C0_2D, const int NE, const Array< double > &b_, const Vector &h0_, const Vector &r_, Vector &c_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, SetupGradPA_2D, const Vector &x_, const double metric_normal, const Array< double > &metric_param, const int mid, const int NE, const Array< double > &w_, const Array< double > &b_, const Array< double > &g_, const DenseTensor &j_, Vector &h_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, SetupGradPA_C0_2D, const double lim_normal, const Vector &lim_dist, const Vector &c0_, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &bld_, const Vector &x0_, const Vector &x1_, Vector &h0_, const bool exp_lim, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AssembleDiagonalPA_Kernel_3D, const int NE, const Array< double > &b, const Array< double > &g, const DenseTensor &j, const Vector &h, Vector &diagonal, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AssembleDiagonalPA_Kernel_C0_3D, const int NE, const Array< double > &b, const Vector &h0, Vector &diagonal, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AddMultGradPA_Kernel_3D, const int NE, const Array< double > &b_, const Array< double > &g_, const DenseTensor &j_, const Vector &h_, const Vector &x_, Vector &y_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AddMultGradPA_Kernel_C0_3D, const int NE, const Array< double > &b_, const Vector &h0_, const Vector &r_, Vector &c_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, SetupGradPA_3D, const double metric_normal, const Array< double > &metric_param, const int mid, const Vector &x_, const int NE, const Array< double > &w_, const Array< double > &b_, const Array< double > &g_, const DenseTensor &j_, Vector &h_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, SetupGradPA_Kernel_C0_3D, const double lim_normal, const Vector &lim_dist, const Vector &c0_, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &bld_, const Vector &x0_, const Vector &x1_, Vector &h0_, const bool exp_lim, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (double, MinDetJpr_Kernel_2D, const int NE, const Array< double > &b_, const Array< double > &g_, const Vector &x_, Vector &DetJ, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (double, MinDetJpr_Kernel_3D, const int NE, const Array< double > &b_, const Array< double > &g_, const Vector &x_, Vector &DetJ, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AddMultPA_Kernel_2D, const double metric_normal, const Array< double > &metric_param, const int mid, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &g_, const Vector &x_, Vector &y_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AddMultPA_Kernel_C0_2D, const double lim_normal, const Vector &lim_dist, const Vector &c0_, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &bld_, const Vector &x0_, const Vector &x1_, Vector &y_, const bool exp_lim, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AddMultPA_Kernel_3D, const double metric_normal, const Array< double > &metric_param, const int mid, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &g_, const Vector &x_, Vector &y_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (void, AddMultPA_Kernel_C0_3D, const double lim_normal, const Vector &lim_dist, const Vector &c0_, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &bld_, const Vector &x0_, const Vector &x1_, Vector &y_, const bool exp_lim, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (bool, TC_IDEAL_SHAPE_UNIT_SIZE_2D_KERNEL, const int NE, const DenseMatrix &w_, DenseTensor &j_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (bool, TC_IDEAL_SHAPE_GIVEN_SIZE_2D_KERNEL, const int NE, const Array< double > &b_, const Array< double > &g_, const DenseMatrix &w_, const Vector &x_, DenseTensor &j_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (bool, TC_IDEAL_SHAPE_UNIT_SIZE_3D_KERNEL, const int NE, const DenseMatrix &w_, DenseTensor &j_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (bool, TC_IDEAL_SHAPE_GIVEN_SIZE_3D_KERNEL, const int NE, const Array< double > &b_, const Array< double > &g_, const DenseMatrix &w_, const Vector &x_, DenseTensor &j_, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (double, EnergyPA_2D, const double metric_normal, const Array< double > &metric_param, const int mid, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &g_, const Vector &x_, const Vector &ones, Vector &energy, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (double, EnergyPA_C0_2D, const double lim_normal, const Vector &lim_dist, const Vector &c0_, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &bld_, const Vector &x0_, const Vector &x1_, const Vector &ones, Vector &energy, const bool exp_lim, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (double, EnergyPA_3D, const double metric_normal, const Array< double > &metric_param, const int mid, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &g_, const Vector &ones, const Vector &x_, Vector &energy, const int d1d, const int q1d)
 
 MFEM_REGISTER_TMOP_KERNELS (double, EnergyPA_C0_3D, const double lim_normal, const Vector &lim_dist, const Vector &c0_, const int NE, const DenseTensor &j_, const Array< double > &w_, const Array< double > &b_, const Array< double > &bld_, const Vector &x0_, const Vector &x1_, const Vector &ones, Vector &energy, const bool exp_lim, const int d1d, const int q1d)
 
double inv_sigmoid (double x)
 Inverse sigmoid function. More...
 
double sigmoid (double x)
 Sigmoid function. More...
 
double der_sigmoid (double x)
 Derivative of sigmoid function. More...
 
template<typename dtype >
void CalcAdjugate (const TAutoDiffDenseMatrix< dtype > &a, TAutoDiffDenseMatrix< dtype > &adja)
 
void ComputeInverse (const Array< double > &A, Array< double > &Ainv)
 Compute the inverse of the matrix A and store the result in Ainv. More...
 
void SubcellIntegrals (int n, const Poly_1D::Basis &basis, Array< double > &B)
 
void Transpose (const Array< double > &B, Array< double > &Bt)
 
void EliminateColumns (HypreParMatrix &D, const Array< int > &ess_dofs)
 Eliminates columns in the given HypreParMatrix. More...
 
void FormElementToFace2D (int order, Array< int > &element2face)
 
void FormElementToFace3D (int order, Array< int > &element2face)
 
HypreParMatrixFormDiscreteDivergenceMatrix (ParFiniteElementSpace &fes_rt, ParFiniteElementSpace &fes_l2, const Array< int > &ess_dofs)
 
void Reciprocal (Vector &x)
 Replace x[i] with 1.0/x[i] for all i. More...
 
HypreParMatrixMakeDiagonalMatrix (Vector &diag, const ParFiniteElementSpace &fes)
 Return a new HypreParMatrix with given diagonal entries. More...
 
const IntegrationRuleGetMassIntRule (FiniteElementSpace &fes_l2)
 
double u (const Vector &xvec)
 
std::function< double(const Vector &)> f (double mass_coeff)
 
void u_vec (const Vector &xvec, Vector &u)
 
std::function< void(const Vector &, Vector &)> f_vec (bool grad_div_problem)
 
void FillWithRandomNumbers (std::vector< double > &x, double a=0.0, double b=1.0)
 Fills the vector x with random numbers between a and b. More...
 
void FillWithRandomRotations (std::vector< double > &x)
 
double detJ_r_function (const Vector &x, CartesianPML *pml)
 PML stretching functions: See https://doi.org/10.1006/jcph.1994.1159. More...
 
double detJ_i_function (const Vector &x, CartesianPML *pml)
 
double abs_detJ_2_function (const Vector &x, CartesianPML *pml)
 
void Jt_J_detJinv_r_function (const Vector &x, CartesianPML *pml, DenseMatrix &M)
 
void Jt_J_detJinv_i_function (const Vector &x, CartesianPML *pml, DenseMatrix &M)
 
void abs_Jt_J_detJinv_2_function (const Vector &x, CartesianPML *pml, DenseMatrix &M)
 
void detJ_Jt_J_inv_r_function (const Vector &x, CartesianPML *pml, DenseMatrix &M)
 
void detJ_Jt_J_inv_i_function (const Vector &x, CartesianPML *pml, DenseMatrix &M)
 
void abs_detJ_Jt_J_inv_2_function (const Vector &x, CartesianPML *pml, DenseMatrix &M)
 
MFEM "global" communicator functions.

Functions for getting and setting the MPI communicator used by the library as the "global" communicator.

This "global" communicator is used for example in the function mfem_error(), which is invoked when an error is detected - the "global" communicator is used as a parameter to MPI_Abort() to terminate all "global" tasks.

MPI_Comm GetGlobalMPI_Comm ()
 Get MFEM's "global" MPI communicator. More...
 
void SetGlobalMPI_Comm (MPI_Comm comm)
 Set MFEM's "global" MPI communicator. More...
 
Gmsh High-Order Vertex Mappings

These functions generate the mappings needed to translate the order of Gmsh's high-order vertices into MFEM's L2 degree of freedom ordering. The mapping is defined so that MFEM_DoF[i] = Gmsh_Vert[map[i]]. The map array must already be allocated with the proper number of entries for the element type at the given element order.

void GmshHOSegmentMapping (int order, int *map)
 Generate Gmsh vertex mapping for a Segment. More...
 
void GmshHOTriangleMapping (int order, int *map)
 Generate Gmsh vertex mapping for a Triangle. More...
 
void GmshHOQuadrilateralMapping (int order, int *map)
 Generate Gmsh vertex mapping for a Quadrilateral. More...
 
void GmshHOTetrahedronMapping (int order, int *map)
 Generate Gmsh vertex mapping for a Tetrahedron. More...
 
void GmshHOHexahedronMapping (int order, int *map)
 Generate Gmsh vertex mapping for a Hexahedron. More...
 
void GmshHOWedgeMapping (int order, int *map)
 Generate Gmsh vertex mapping for a Wedge. More...
 
void GmshHOPyramidMapping (int order, int *map)
 Generate Gmsh vertex mapping for a Pyramid. More...
 

Variables

OutStream out (std::cout)
 Global stream used by the library for standard output. Initially it uses the same std::streambuf as std::cout, however that can be changed. More...
 
OutStream err (std::cerr)
 Global stream used by the library for standard error output. Initially it uses the same std::streambuf as std::cerr, however that can be changed. More...
 
MPI_Comm MFEM_COMM_WORLD = MPI_COMM_WORLD
 
constexpr gnutls_digest_algorithm_t HASH_ALGORITHM = GNUTLS_DIG_SHA256
 
MemoryManager mm
 The (single) global memory manager object. More...
 
const char * MemoryTypeName [MemoryTypeSize]
 Memory type names, used during Device:: configuration. More...
 
constexpr int MemoryTypeSize = static_cast<int>(MemoryType::SIZE)
 Static casts to 'int' and sizes of some useful memory types. More...
 
constexpr int HostMemoryType = static_cast<int>(MemoryType::HOST)
 
constexpr int HostMemoryTypeSize = static_cast<int>(MemoryType::DEVICE)
 
constexpr int DeviceMemoryType = static_cast<int>(MemoryType::MANAGED)
 
constexpr int DeviceMemoryTypeSize = MemoryTypeSize - DeviceMemoryType
 
StopWatch tic_toc
 
TriLinear3DFiniteElement HexahedronFE
 
PointFiniteElement PointFE
 
class LinearPyramidFiniteElement PyramidFE
 
BiLinear2DFiniteElement QuadrilateralFE
 
Linear1DFiniteElement SegmentFE
 
MFEM_EXPORT class Linear3DFiniteElement TetrahedronFE
 
MFEM_EXPORT Linear2DFiniteElement TriangleFE
 
MFEM_EXPORT class LinearWedgeFiniteElement WedgeFE
 
Poly_1D poly1d
 
Geometry Geometries
 
GeometryRefiner GlobGeometryRefiner
 
IntegrationRules IntRules (0, Quadrature1D::GaussLegendre)
 A global object with all integration rules (defined in intrules.cpp) More...
 
IntegrationRules RefinedIntRules (1, Quadrature1D::GaussLegendre)
 A global object with all refined integration rules. More...
 
const char vishost [] = "localhost"
 
const int visport = 19916
 
int wsize = 350
 

Typedef Documentation

◆ Args

Definition at line 21 of file tmop_pa_h2s.cpp.

◆ ConservativeDGTraceIntegrator

Definition at line 3126 of file bilininteg.hpp.

◆ ConstDeviceArray

typedef DeviceTensor<1,const int> mfem::ConstDeviceArray

Definition at line 138 of file dtensor.hpp.

◆ ConstDeviceCube

typedef DeviceTensor<3,const double> mfem::ConstDeviceCube

Definition at line 147 of file dtensor.hpp.

◆ ConstDeviceMatrix

typedef DeviceTensor<2,const double> mfem::ConstDeviceMatrix

Definition at line 144 of file dtensor.hpp.

◆ ConstDeviceVector

typedef DeviceTensor<1,const double> mfem::ConstDeviceVector

Definition at line 141 of file dtensor.hpp.

◆ cuda_launch_policy

using mfem::cuda_launch_policy = typedef RAJA::LaunchPolicy<RAJA::cuda_launch_t<true> >

RAJA Cuda and Hip backends.

Definition at line 225 of file forall.hpp.

◆ cuda_teams_x

using mfem::cuda_teams_x = typedef RAJA::LoopPolicy<RAJA::cuda_block_x_direct>

Definition at line 227 of file forall.hpp.

◆ cuda_threads_z

using mfem::cuda_threads_z = typedef RAJA::LoopPolicy<RAJA::cuda_thread_z_direct>

Definition at line 229 of file forall.hpp.

◆ CylindricalZCoefficient

Scalar coefficient which returns the height or altitude of the evaluation point in the cylindrical coordinate system

Definition at line 332 of file coefficient.hpp.

◆ DeviceArray

Definition at line 137 of file dtensor.hpp.

◆ DeviceCube

typedef DeviceTensor<3,double> mfem::DeviceCube

Definition at line 146 of file dtensor.hpp.

◆ DeviceMatrix

typedef DeviceTensor<2,double> mfem::DeviceMatrix

Definition at line 143 of file dtensor.hpp.

◆ DeviceVector

typedef DeviceTensor<1,double> mfem::DeviceVector

Definition at line 140 of file dtensor.hpp.

◆ DG_FECollection

Declare an alternative name for L2_FECollection = DG_FECollection.

Definition at line 377 of file fe_coll.hpp.

◆ DiagonalMatrixCoefficient

Definition at line 1037 of file coefficient.hpp.

◆ DofQuadLimits

typedef internal::DofQuadLimits_CPU mfem::DofQuadLimits

Maximum number of 1D DOFs or quadrature points for the architecture currently being compiled for (used in fallback kernels).

DofQuadLimits provides access to the limits as static constexpr member variables for use in mfem::forall kernels or MFEM_HOST_DEVICE functions.

See also
For accessing the limits according to the runtime configuration of the Device, see DeviceDofQuadLimits.

Definition at line 94 of file forall.hpp.

◆ H1FaceRestriction

Alias for ConformingFaceRestriction, for backwards compatibility and as base class for ParNCH1FaceRestriction.

Definition at line 359 of file restriction.hpp.

◆ hip_launch_policy

using mfem::hip_launch_policy = typedef RAJA::LaunchPolicy<RAJA::hip_launch_t<true> >

Definition at line 234 of file forall.hpp.

◆ hip_teams_x

using mfem::hip_teams_x = typedef RAJA::LoopPolicy<RAJA::hip_block_x_direct>

Definition at line 236 of file forall.hpp.

◆ hip_threads_z

using mfem::hip_threads_z = typedef RAJA::LoopPolicy<RAJA::hip_thread_z_direct>

Definition at line 238 of file forall.hpp.

◆ KDTree1D

typedef KDTree<int,double,1> mfem::KDTree1D

Defines KDTree in 1D.

Definition at line 626 of file kdtree.hpp.

◆ KDTree2D

typedef KDTree<int,double,2> mfem::KDTree2D

Defines KDTree in 2D.

Definition at line 623 of file kdtree.hpp.

◆ KDTree3D

typedef KDTree<int,double,3> mfem::KDTree3D

Defines KDTree in 3D.

Definition at line 620 of file kdtree.hpp.

◆ MatVecCoefficient

Convenient alias for the MatrixVectorProductCoefficient.

Definition at line 1984 of file coefficient.hpp.

◆ NonconservativeConvectionIntegrator

Definition at line 2395 of file bilininteg.hpp.

◆ occa_id_t

typedef std::pair<int,int> mfem::occa_id_t

Definition at line 78 of file occa.hpp.

◆ occa_kernel_t

typedef std::map<occa_id_t, occa::kernel> mfem::occa_kernel_t

Definition at line 79 of file occa.hpp.

◆ OperatorPtr

Add an alternative name for OperatorHandle – OperatorPtr.

Definition at line 212 of file handle.hpp.

Enumeration Type Documentation

◆ AssemblyLevel

enum mfem::AssemblyLevel
strong

Enumeration defining the assembly level for bilinear and nonlinear form classes derived from Operator. For more details, see https://mfem.org/howto/assembly_levels.

Enumerator
LEGACY 

In the case of a BilinearForm LEGACY corresponds to a fully assembled form, i.e. a global sparse matrix in MFEM, Hypre or PETSC format. In the case of a NonlinearForm LEGACY corresponds to an operator that is fully evaluated on the fly. This assembly level is ALWAYS performed on the host.

LEGACYFULL 
Deprecated:
Use LEGACY instead.
FULL 

Fully assembled form, i.e. a global sparse matrix in MFEM format. This assembly is compatible with device execution.

ELEMENT 

Form assembled at element level, which computes and stores dense element matrices.

PARTIAL 

Partially-assembled form, which computes and stores data only at quadrature points.

NONE 

"Matrix-free" form that computes all of its action on-the-fly without any substantial storage.

Definition at line 31 of file bilinearform.hpp.

◆ BlockInverseScaleJob

Enumerator
MATRIX_ONLY 
RHS_ONLY 
MATRIX_AND_RHS 

Definition at line 915 of file hypre.hpp.

◆ CoefficientStorage

enum mfem::CoefficientStorage : int
strong

Flags that determine what storage optimizations to use in CoefficientVector.

Enumerator
FULL 

Store the coefficient as a full QuadratureFunction.

CONSTANTS 

Store constants using only vdim entries.

SYMMETRIC 

Store the triangular part of symmetric matrices.

COMPRESSED 

Enable all above compressions.

Definition at line 2288 of file coefficient.hpp.

◆ ElementDofOrdering

Constants describing the possible orderings of the DOFs in one element.

Enumerator
NATIVE 

Native ordering as defined by the FiniteElement.

This ordering can be used by tensor-product elements when the interpolation from the DOFs to quadrature points does not use the tensor-product structure.

LEXICOGRAPHIC 

Lexicographic ordering for tensor-product FiniteElements.

This ordering can be used only with tensor-product elements.

Definition at line 74 of file fespace.hpp.

◆ ErrorAction

Action to take when MFEM encounters an error.

Enumerator
MFEM_ERROR_ABORT 

Abort execution using abort() or MPI_Abort(). This is the default error action when the build option MFEM_USE_EXCEPTIONS is set to NO.

MFEM_ERROR_THROW 

Throw an ErrorException. Requires the build option MFEM_USE_EXCEPTIONS=YES in which case it is also the default error action.

Definition at line 26 of file error.hpp.

◆ FaceType

enum mfem::FaceType : bool
strong

An enum type to specify if interior or boundary faces are desired.

Enumerator
Interior 
Boundary 

Definition at line 45 of file mesh.hpp.

◆ L2FaceValues

enum mfem::L2FaceValues : bool
strong

An enum type to specify if only e1 value is requested (SingleValued) or both e1 and e2 (DoubleValued).

Enumerator
SingleValued 
DoubleValued 

Definition at line 136 of file restriction.hpp.

◆ MemoryClass

enum mfem::MemoryClass
strong

Memory classes identify sets of memory types.

This type is used by kernels that can work with multiple MemoryTypes. For example, kernels that can use DEVICE or MANAGED memory types should use MemoryClass::DEVICE for their inputs.

Enumerator
HOST 

Memory types: { HOST, HOST_32, HOST_64, HOST_DEBUG, HOST_UMPIRE, HOST_PINNED, MANAGED }

HOST_32 

Memory types: { HOST_32, HOST_64, HOST_DEBUG }.

HOST_64 

Memory types: { HOST_64, HOST_DEBUG }.

DEVICE 

Memory types: { DEVICE, DEVICE_DEBUG, DEVICE_UMPIRE, DEVICE_UMPIRE_2, MANAGED }

MANAGED 

Memory types: { MANAGED }.

Definition at line 73 of file mem_manager.hpp.

◆ MemoryType

enum mfem::MemoryType
strong

Memory types supported by MFEM.

Enumerator
HOST 

Host memory; using new[] and delete[].

HOST_32 

Host memory; aligned at 32 bytes.

HOST_64 

Host memory; aligned at 64 bytes.

HOST_DEBUG 

Host memory; allocated from a "host-debug" pool.

HOST_UMPIRE 

Host memory; using an Umpire allocator which can be set with MemoryManager::SetUmpireHostAllocatorName

HOST_PINNED 

Host memory: pinned (page-locked)

MANAGED 

Managed memory; using CUDA or HIP *MallocManaged and *Free

DEVICE 

Device memory; using CUDA or HIP *Malloc and *Free.

DEVICE_DEBUG 

Pseudo-device memory; allocated on host from a "device-debug" pool

DEVICE_UMPIRE 

Device memory; using an Umpire allocator which can be set with MemoryManager::SetUmpireDeviceAllocatorName

DEVICE_UMPIRE_2 

Device memory; using a second Umpire allocator settable with MemoryManager::SetUmpireDevice2AllocatorName

SIZE 

Number of host and device memory types.

PRESERVE 

Pseudo-MemoryType used as default value for MemoryType parameters to request preservation of existing MemoryType, e.g. in copy constructors.

DEFAULT 

Pseudo-MemoryType used as default value for MemoryType parameters to request the use of the default host or device MemoryType.

Definition at line 31 of file mem_manager.hpp.

◆ QVectorLayout

enum mfem::QVectorLayout
strong

Type describing possible layouts for Q-vectors.

See also
QuadratureInterpolator and FaceQuadratureInterpolator.
Enumerator
byNODES 

NQPT x VDIM x NE (values) / NQPT x VDIM x DIM x NE (grads)

byVDIM 

VDIM x NQPT x NE (values) / VDIM x DIM x NQPT x NE (grads)

Definition at line 52 of file fespace.hpp.

◆ TransferCategory

TransferCategory describes the type of transfer.

Usually used with a TransferMap.

Enumerator
ParentToSubMesh 
SubMeshToParent 
SubMeshToSubMesh 

Definition at line 23 of file transfer_category.hpp.

◆ VTKFormat

enum mfem::VTKFormat
strong

Data array format for VTK and VTU files.

Enumerator
ASCII 

Data arrays will be written in ASCII format.

BINARY 

Data arrays will be written in binary format. Floating point numbers will be output with 64 bits of precision.

BINARY32 

Data arrays will be written in binary format. Floating point numbers will be output with 32 bits of precision.

Definition at line 98 of file vtk.hpp.

Function Documentation

◆ abs_detJ_2_function()

double mfem::abs_detJ_2_function ( const Vector x,
CartesianPML pml 
)

Definition at line 176 of file pml.cpp.

◆ abs_detJ_Jt_J_inv_2_function()

void mfem::abs_detJ_Jt_J_inv_2_function ( const Vector x,
CartesianPML pml,
DenseMatrix M 
)

Definition at line 272 of file pml.cpp.

◆ abs_Jt_J_detJinv_2_function()

void mfem::abs_Jt_J_detJinv_2_function ( const Vector x,
CartesianPML pml,
DenseMatrix M 
)

Definition at line 219 of file pml.cpp.

◆ add() [1/4]

void mfem::add ( const Vector v1,
const Vector v2,
Vector v 
)

Definition at line 317 of file vector.cpp.

◆ add() [2/4]

void mfem::add ( const Vector v1,
double  alpha,
const Vector v2,
Vector v 
)

Definition at line 339 of file vector.cpp.

◆ add() [3/4]

void mfem::add ( const double  a,
const Vector x,
const Vector y,
Vector z 
)

Definition at line 378 of file vector.cpp.

◆ add() [4/4]

void mfem::add ( const double  a,
const Vector x,
const double  b,
const Vector y,
Vector z 
)

Definition at line 418 of file vector.cpp.

◆ Add() [1/8]

void mfem::Add ( const DenseMatrix A,
const DenseMatrix B,
double  alpha,
DenseMatrix C 
)

C = A + alpha*B.

Definition at line 2320 of file densemat.cpp.

◆ Add() [2/8]

void mfem::Add ( double  alpha,
const double *  A,
double  beta,
const double *  B,
DenseMatrix C 
)

C = alpha*A + beta*B.

Definition at line 2326 of file densemat.cpp.

◆ Add() [3/8]

void mfem::Add ( double  alpha,
const DenseMatrix A,
double  beta,
const DenseMatrix B,
DenseMatrix C 
)

C = alpha*A + beta*B.

Definition at line 2332 of file densemat.cpp.

◆ Add() [4/8]

HypreParMatrix * mfem::Add ( double  alpha,
const HypreParMatrix A,
double  beta,
const HypreParMatrix B 
)

Return a new matrix C = alpha*A + beta*B, assuming that both A and B use the same row and column partitions and the same col_map_offd arrays.

Definition at line 2796 of file hypre.cpp.

◆ Add() [5/8]

SparseMatrix * mfem::Add ( double  a,
const SparseMatrix A,
double  b,
const SparseMatrix B 
)

Matrix addition result = a*A + b*B.

Definition at line 3949 of file sparsemat.cpp.

◆ Add() [6/8]

SparseMatrix * mfem::Add ( const SparseMatrix A,
const SparseMatrix B 
)

Matrix addition result = A + B.

Definition at line 4032 of file sparsemat.cpp.

◆ Add() [7/8]

SparseMatrix * mfem::Add ( Array< SparseMatrix *> &  Ai)

Matrix addition result = sum_i A_i.

Definition at line 4037 of file sparsemat.cpp.

◆ Add() [8/8]

void mfem::Add ( const SparseMatrix A,
double  alpha,
DenseMatrix B 
)

B += alpha * A.

Definition at line 4059 of file sparsemat.cpp.

◆ AddMult()

void mfem::AddMult ( const DenseMatrix b,
const DenseMatrix c,
DenseMatrix a 
)

Matrix matrix multiplication. A += B * C.

Definition at line 2446 of file densemat.cpp.

◆ AddMult_a()

void mfem::AddMult_a ( double  alpha,
const DenseMatrix b,
const DenseMatrix c,
DenseMatrix a 
)

Matrix matrix multiplication. A += alpha * B * C.

Definition at line 2413 of file densemat.cpp.

◆ AddMult_a_AAt()

void mfem::AddMult_a_AAt ( double  a,
const DenseMatrix A,
DenseMatrix AAt 
)

AAt += a * A * A^t.

Definition at line 3075 of file densemat.cpp.

◆ AddMult_a_ABt()

void mfem::AddMult_a_ABt ( double  a,
const DenseMatrix A,
const DenseMatrix B,
DenseMatrix ABt 
)

ABt += a * A * B^t.

Definition at line 2959 of file densemat.cpp.

◆ AddMult_a_VVt()

void mfem::AddMult_a_VVt ( const double  a,
const Vector v,
DenseMatrix VVt 
)

VVt += a * v v^t.

Definition at line 3213 of file densemat.cpp.

◆ AddMult_a_VWt()

void mfem::AddMult_a_VWt ( const double  a,
const Vector v,
const Vector w,
DenseMatrix VWt 
)

VWt += a * v w^t.

Definition at line 3191 of file densemat.cpp.

◆ AddMultABt()

void mfem::AddMultABt ( const DenseMatrix A,
const DenseMatrix B,
DenseMatrix ABt 
)

ABt += A * B^t.

Definition at line 2866 of file densemat.cpp.

◆ AddMultADAt()

void mfem::AddMultADAt ( const DenseMatrix A,
const Vector D,
DenseMatrix ADAt 
)

ADAt += A D A^t, where D is diagonal.

Definition at line 2717 of file densemat.cpp.

◆ AddMultADBt()

void mfem::AddMultADBt ( const DenseMatrix A,
const Vector D,
const DenseMatrix B,
DenseMatrix ADBt 
)

ADBt = A D B^t, where D is diagonal.

Definition at line 2923 of file densemat.cpp.

◆ AddMultVVt()

void mfem::AddMultVVt ( const Vector v,
DenseMatrix VVt 
)

VVt += v v^t.

Definition at line 3167 of file densemat.cpp.

◆ AddMultVWt()

void mfem::AddMultVWt ( const Vector v,
const Vector w,
DenseMatrix VWt 
)

VWt += v w^t.

Definition at line 3146 of file densemat.cpp.

◆ Adjugate3D()

MFEM_HOST_DEVICE void mfem::Adjugate3D ( const DeviceMatrix J,
DeviceMatrix A 
)
inline

Definition at line 170 of file lor_util.hpp.

◆ aGMRES()

int mfem::aGMRES ( const Operator A,
Vector x,
const Vector b,
const Operator M,
int &  max_iter,
int  m_max,
int  m_min,
int  m_step,
double  cf,
double &  tol,
double &  atol,
int  printit 
)

Adaptive restarted GMRES. m_max and m_min(=1) are the maximal and minimal restart parameters. m_step(=1) is the step to use for going from m_max and m_min. cf(=0.4) is a desired convergence factor.

Definition at line 2149 of file solvers.cpp.

◆ ApplyPlaneRotation()

void mfem::ApplyPlaneRotation ( double &  dx,
double &  dy,
double &  cs,
double &  sn 
)
inline

Definition at line 952 of file solvers.cpp.

◆ AsConst()

template<typename T >
const T& mfem::AsConst ( const T &  a)

Utility function similar to std::as_const in c++17.

Definition at line 350 of file array.hpp.

◆ Assign()

template<AssignOp::Type Op, typename lvalue_t , typename rvalue_t >
lvalue_t& mfem::Assign ( lvalue_t &  a,
const rvalue_t &  b 
)
inline

Definition at line 137 of file tassign.hpp.

◆ AssignHD()

template<AssignOp::Type Op, typename lvalue_t , typename rvalue_t >
MFEM_HOST_DEVICE lvalue_t& mfem::AssignHD ( lvalue_t &  a,
const rvalue_t &  b 
)
inline

Definition at line 144 of file tassign.hpp.

◆ BarycentricToGmshTet()

int mfem::BarycentricToGmshTet ( int *  b,
int  ref 
)

Definition at line 18 of file gmsh.cpp.

◆ BarycentricToVTKTetra()

int mfem::BarycentricToVTKTetra ( int *  b,
int  ref 
)

Definition at line 198 of file vtk.cpp.

◆ BarycentricToVTKTriangle()

int mfem::BarycentricToVTKTriangle ( int *  b,
int  ref 
)

Return the VTK node index of the barycentric point b in a triangle with refinement level ref.

The barycentric index b has three components, satisfying b[0] + b[1] + b[2] == ref.

Definition at line 161 of file vtk.cpp.

◆ BasisTypeToFmsBasisType()

bool mfem::BasisTypeToFmsBasisType ( int  bt,
FmsBasisType &  btype 
)

Definition at line 892 of file fmsconvert.cpp.

◆ BatchLUFactor()

void mfem::BatchLUFactor ( DenseTensor Mlu,
Array< int > &  P,
const double  TOL = 0.0 
)

Compute the LU factorization of a batch of matrices.

Factorize n matrices of size (m x m) stored in a dense tensor overwriting it with the LU factors. The factorization is such that L.U = Piv.A, where A is the original matrix and Piv is a permutation matrix represented by P.

Parameters
[in,out]Mlubatch of square matrices - dimension m x m x n.
[out]Parray storing pivot information - dimension m x n.
[in]TOLoptional fuzzy comparison tolerance. Defaults to 0.0.

Definition at line 4311 of file densemat.cpp.

◆ BatchLUSolve()

void mfem::BatchLUSolve ( const DenseTensor Mlu,
const Array< int > &  P,
Vector X 
)

Solve batch linear systems.

Assuming L.U = P.A for n factored matrices (m x m), compute x <- A x, for n companion vectors.

Parameters
[in]Mlubatch of LU factors for matrix M - dimension m x m x n.
[in]Parray storing pivot information - dimension m x n.
[in,out]Xvector storing right-hand side and then solution - dimension m x n.

Definition at line 4378 of file densemat.cpp.

◆ be_to_bfe()

void mfem::be_to_bfe ( Geometry::Type  geom,
int  o,
const IntegrationPoint ip,
IntegrationPoint fip 
)

Definition at line 723 of file gridfunc.cpp.

◆ BiCGSTAB() [1/2]

int mfem::BiCGSTAB ( const Operator A,
Vector x,
const Vector b,
Solver M,
int &  max_iter,
double &  tol,
double  atol,
int  printit 
)

BiCGSTAB method. (tolerances are squared)

Definition at line 1570 of file solvers.cpp.

◆ BiCGSTAB() [2/2]

void mfem::BiCGSTAB ( const Operator A,
Solver B,
const Vector b,
Vector x,
int  print_iter,
int  max_num_iter,
double  rtol,
double  atol 
)

BiCGSTAB method. (tolerances are squared)

Definition at line 1586 of file solvers.cpp.

◆ BlockInverseScale()

void mfem::BlockInverseScale ( const HypreParMatrix A,
HypreParMatrix C,
const Vector b,
HypreParVector d,
int  blocksize,
BlockInverseScaleJob  job 
)

Constructs and applies block diagonal inverse of HypreParMatrix. The enum job specifies whether the matrix or the RHS should be scaled (or both).

Definition at line 2766 of file hypre.cpp.

◆ bMult_AB()

template<int bA1, int bA2, int bB2, bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void mfem::bMult_AB ( const A_layout_t &  A_layout,
const A_data_t &  A_data,
const B_layout_t &  B_layout,
const B_data_t &  B_data,
const C_layout_t &  C_layout,
C_data_t &  C_data 
)
inline

Definition at line 89 of file tmatrix.hpp.

◆ BoundingBox()

void mfem::BoundingBox ( const Array< int > &  face_patch,
FiniteElementSpace ufes,
int  order,
Vector xmin,
Vector xmax,
double &  angle,
Vector midpoint,
int  iface = -1 
)

Defines the bounding box for the face patches used by NewZZErorrEstimator.

By default, BoundingBox(...) computes the parameters of a minimal bounding box for the given face_patch that is aligned with the physical (i.e. global) Cartesian axes. This means that the size of the bounding box will depend on the orientation of the patch. It is better to construct an orientation-independent box. This is implemented for 2D patches. The parameters angle and midpoint encode the necessary additional geometric information.

@a iface     : Index of the face that the patch corresponds to.
               This is used to compute @a angle and @a midpoint.

@a angle     : The angle the patch face makes with the x-axis.
@a midpoint  : The midpoint of the face.

Definition at line 4188 of file gridfunc.cpp.

◆ BuildBoxes()

template<int Dim>
void mfem::BuildBoxes ( const Mesh mesh,
std::vector<::moonolith::AABB< Dim, double >> &  element_boxes 
)

Definition at line 95 of file mortarassembler.cpp.

◆ BuildNormalConstraints()

SparseMatrix * mfem::BuildNormalConstraints ( FiniteElementSpace fespace,
Array< int > &  constrained_att,
Array< int > &  constraint_rowstarts,
bool  parallel = false 
)

Build a matrix constraining normal components to zero.

Given a vector space fespace, and the array constrained_att that includes the boundary attributes that are constrained to have normal component zero, this returns a SparseMatrix representing the constraints that need to be imposed.

Each row of the returned matrix corresponds to a node that is constrained. The rows are arranged in (contiguous) blocks corresponding to a physical constraint; in 3D, a one-row constraint means the node is free to move along a plane, a two-row constraint means it is free to move along a line (e.g. the intersection of two normal-constrained planes), and a three-row constraint is fully constrained (equivalent to MFEM's usual essential boundary conditions).

The constraint_rowstarts array is filled in to describe the structure of these constraints, so that (block) constraint k is encoded in rows constraint_rowstarts[k] to constraint_rowstarts[k + 1] - 1, inclusive, of the returned matrix.

Constraints are imposed on "true" degrees of freedom, which are different in serial and parallel, so we need different numbering systems for the serial and parallel versions of this function.

When two attributes intersect, this version will combine constraints, so in 2D the point at the intersection is fully constrained (ie, fixed in both directions). This is the wrong thing to do if the two boundaries are (close to) parallel at that point.

Parameters
[in]fespaceA vector finite element space
[in]constrained_attBoundary attributes to constrain
[out]constraint_rowstartsThe rowstarts for separately eliminated constraints, possible input to EliminationCGSolver
[in]parallelIndicate that fespace is actually a ParFiniteElementSpace and the numbering in the returned matrix should be based on truedofs.
Returns
a constraint matrix

Definition at line 783 of file constraints.cpp.

◆ CalcAdjugate() [1/2]

template<typename dtype >
void mfem::CalcAdjugate ( const TAutoDiffDenseMatrix< dtype > &  a,
TAutoDiffDenseMatrix< dtype > &  adja 
)

Definition at line 439 of file taddensemat.hpp.

◆ CalcAdjugate() [2/2]

void mfem::CalcAdjugate ( const DenseMatrix a,
DenseMatrix adja 
)

Calculate the adjugate of a matrix (for NxN matrices, N=1,2,3) or the matrix adj(A^t.A).A^t for rectangular matrices (2x1, 3x1, or 3x2). This operation is well defined even when the matrix is not full rank.

Definition at line 2478 of file densemat.cpp.

◆ CalcAdjugateTranspose()

void mfem::CalcAdjugateTranspose ( const DenseMatrix a,
DenseMatrix adjat 
)

Calculate the transposed adjugate of a matrix (for NxN matrices, N=1,2,3)

Definition at line 2550 of file densemat.cpp.

◆ CalcGradTensor()

template<typename real_t >
void mfem::CalcGradTensor ( const FiniteElement fe,
const IntegrationRule ir,
real_t *  G,
const Array< int > *  dof_map = NULL 
)

store gradient matrix G for each integration point on the reference element. For tensor product evaluation, this is only called on the 1D reference element, and higher dimensions are put together from that. The element stiffness matrix can be written

\[ S_E = \sum_{k=1}^{nq} G_{k,i}^T (D_E^G)_{k,k} G_{k,j} \]

where \( nq \) is the number of quadrature points, \( D_E^G \) contains all the information about the element geometry and coefficients (Jacobians etc.), and \( G \) is the matrix built in this routine, which is the same for all elements in a mesh.

Parameters
fethe element we are calculating on
irthe integration rule to calculate the gradients on
[out]Gmust be (nip x dim x dof) with column major storage
[in]dof_mapthe inverse of dof_map is applied to reorder local dofs.

Definition at line 74 of file tfe.hpp.

◆ CalcInverse()

void mfem::CalcInverse ( const DenseMatrix a,
DenseMatrix inva 
)

Calculate the inverse of a matrix (for NxN matrices, N=1,2,3) or the left inverse (A^t.A)^{-1}.A^t (for 2x1, 3x1, or 3x2 matrices)

Definition at line 2586 of file densemat.cpp.

◆ CalcInverseTranspose()

void mfem::CalcInverseTranspose ( const DenseMatrix a,
DenseMatrix inva 
)

Calculate the inverse transpose of a matrix (for NxN matrices, N=1,2,3)

Definition at line 2634 of file densemat.cpp.

◆ CalcOrtho()

void mfem::CalcOrtho ( const DenseMatrix J,
Vector n 
)

For a given Nx(N-1) (N=2,3) matrix J, compute a vector n such that n_k = (-1)^{k+1} det(J_k), k=1,..,N, where J_k is the matrix J with the k-th row removed. Note: J^t.n = 0, det([n|J])=|n|^2=det(J^t.J).

Definition at line 2673 of file densemat.cpp.

◆ CalcShapeMatrix()

template<typename real_t >
void mfem::CalcShapeMatrix ( const FiniteElement fe,
const IntegrationRule ir,
real_t *  B,
const Array< int > *  dof_map = NULL 
)

Store mass-like matrix B for each integration point on the reference element. For tensor product evaluation, this is only called on the 1D reference element, and higher dimensions are put together from that. The element mass matrix can be written \( M_E = B^T D_E B \) where the B built here is the B, and is unchanging across the mesh. The diagonal matrix \( D_E \) then contains all the element-specific geometry and physics data.

Parameters
fethe element we are calculating on
irthe integration rule to calculate the shape matrix on
Bmust be (nip x dof) with column major storage
dof_mapthe inverse of dof_map is applied to reorder local dofs.

Definition at line 36 of file tfe.hpp.

◆ CalcShapes()

template<typename real_t >
void mfem::CalcShapes ( const FiniteElement fe,
const IntegrationRule ir,
real_t *  B,
real_t *  G,
const Array< int > *  dof_map 
)

Definition at line 99 of file tfe.hpp.

◆ CanonicalNodeNumber()

int mfem::CanonicalNodeNumber ( FiniteElementSpace fespace,
int  node,
bool  parallel,
int  d = 0 
)

Definition at line 757 of file constraints.cpp.

◆ CanShallowCopy()

template<typename T >
bool mfem::CanShallowCopy ( const Memory< T > &  src,
MemoryClass  mc 
)

Return true if the src Memory can be used with the MemoryClass mc.

If this function returns true then src.{Read,Write,ReadWrite} can be called safely with the MemoryClass mc.

Definition at line 108 of file hypre.cpp.

◆ CartesianToGmshHex()

int mfem::CartesianToGmshHex ( int  idx_in[],
int  ref 
)

Definition at line 150 of file gmsh.cpp.

◆ CartesianToGmshPyramid()

int mfem::CartesianToGmshPyramid ( int  idx_in[],
int  ref 
)

Definition at line 311 of file gmsh.cpp.

◆ CartesianToGmshQuad()

int mfem::CartesianToGmshQuad ( int  idx_in[],
int  ref 
)

Definition at line 120 of file gmsh.cpp.

◆ CartesianToVTKPrism()

int mfem::CartesianToVTKPrism ( int  i,
int  j,
int  k,
int  ref 
)

Definition at line 286 of file vtk.cpp.

◆ CartesianToVTKTensor()

int mfem::CartesianToVTKTensor ( int  idx_in,
int  ref,
Geometry::Type  geom 
)

Definition at line 381 of file vtk.cpp.

◆ CG()

void mfem::CG ( const Operator A,
const Vector b,
Vector x,
int  print_iter,
int  max_num_iter,
double  RTOLERANCE,
double  ATOLERANCE 
)

Conjugate gradient method. (tolerances are squared)

Definition at line 898 of file solvers.cpp.

◆ CheckBasisType()

void mfem::CheckBasisType ( const FiniteElementSpace fes)

Definition at line 329 of file lor.cpp.

◆ CheckFinite()

int mfem::CheckFinite ( const double *  v,
const int  n 
)
inline

Count the number of entries in an array of doubles for which isfinite is false, i.e. the entry is a NaN or +/-Inf.

Definition at line 497 of file vector.hpp.

◆ CheckScalarBasisType()

template<typename FEC >
void mfem::CheckScalarBasisType ( const FiniteElementSpace fes)

Definition at line 291 of file lor.cpp.

◆ CheckVectorBasisType()

template<typename FEC >
void mfem::CheckVectorBasisType ( const FiniteElementSpace fes)

Definition at line 309 of file lor.cpp.

◆ ComputeElementLpDistance()

double mfem::ComputeElementLpDistance ( double  p,
int  i,
GridFunction gf1,
GridFunction gf2 
)

Compute the Lp distance between two grid functions on the given element.

Definition at line 4462 of file gridfunc.cpp.

◆ ComputeGlobalLpNorm() [1/2]

double mfem::ComputeGlobalLpNorm ( double  p,
Coefficient coeff,
ParMesh pmesh,
const IntegrationRule irs[] 
)

Compute the global Lp norm of a function f. \( \| f \|_{Lp} = ( \int_\Omega | f |^p d\Omega)^{1/p} \).

Definition at line 1509 of file coefficient.cpp.

◆ ComputeGlobalLpNorm() [2/2]

double mfem::ComputeGlobalLpNorm ( double  p,
VectorCoefficient coeff,
ParMesh pmesh,
const IntegrationRule irs[] 
)

Compute the global Lp norm of a vector function f = {f_i}_i=1...N. \( \| f \|_{Lp} = ( \sum_i \| f_i \|_{Lp}^p )^{1/p} \).

Definition at line 1539 of file coefficient.cpp.

◆ ComputeInverse()

void mfem::ComputeInverse ( const Array< double > &  A,
Array< double > &  Ainv 
)

Compute the inverse of the matrix A and store the result in Ainv.

The input A is an array of size n*n, interpreted as a matrix with column major ordering.

Definition at line 24 of file change_basis.cpp.

◆ ComputeLpNorm() [1/2]

double mfem::ComputeLpNorm ( double  p,
Coefficient coeff,
Mesh mesh,
const IntegrationRule irs[] 
)

Compute the Lp norm of a function f. \( \| f \|_{Lp} = ( \int_\Omega | f |^p d\Omega)^{1/p} \).

Definition at line 1466 of file coefficient.cpp.

◆ ComputeLpNorm() [2/2]

double mfem::ComputeLpNorm ( double  p,
VectorCoefficient coeff,
Mesh mesh,
const IntegrationRule irs[] 
)

Compute the Lp norm of a vector function f = {f_i}_i=1...N. \( \| f \|_{Lp} = ( \sum_i \| f_i \|_{Lp}^p )^{1/p} \).

Definition at line 1487 of file coefficient.cpp.

◆ convert_to_hypre_matrix()

std::shared_ptr<HypreParMatrix> mfem::convert_to_hypre_matrix ( const std::vector< moonolith::Integer > &  destination_ranges,
HYPRE_BigInt s_offsets,
HYPRE_BigInt m_offsets,
moonolith::SparseMatrix< double > &  mat_buffer 
)

Definition at line 863 of file pmortarassembler.cpp.

◆ CopyConvertMemory()

template<typename SrcT , typename DstT >
void mfem::CopyConvertMemory ( Memory< SrcT > &  src,
MemoryClass  dst_mc,
Memory< DstT > &  dst 
)

Deep copy and convert src to dst with the goal to make the array src accessible through dst with the MemoryClass dst_mc and convert it from type SrcT to type DstT.

When dst is no longer needed, dst.Delete() must be called to ensure all associated memory allocations are freed.

The input contents of dst, if any, is not used and it is overwritten by this function. In particular, dst should be empty or deleted before calling this function.

Definition at line 510 of file hypre.cpp.

◆ CopyMemory()

template<typename T >
void mfem::CopyMemory ( Memory< T > &  src,
Memory< T > &  dst,
MemoryClass  dst_mc,
bool  dst_owner 
)

Shallow or deep copy src to dst with the goal to make the array src accessible through dst with the MemoryClass dst_mc. If one of the host/device MemoryTypes of src is contained in dst_mc, then a shallow copy will be used and dst will simply be an alias of src. Otherwise, dst will be properly allocated and src will be deep copied to dst.

If dst_owner is set to true and shallow copy is being used, then dst will not be an alias of src; instead, src is copied to dst and all ownership flags of src are reset.

In both cases (deep or shallow copy), when dst is no longer needed, dst.Delete() must be called to ensure all associated memory allocations are freed.

The input contents of dst, if any, is not used and it is overwritten by this function. In particular, dst should be empty or deleted before calling this function.

Definition at line 475 of file hypre.cpp.

◆ CreateVTKElementConnectivity()

void mfem::CreateVTKElementConnectivity ( Array< int > &  con,
Geometry::Type  geom,
int  ref 
)

Create the VTK element connectivity array for a given element geometry and refinement level.

The output array con will be such that, for the ith VTK node index, con[i] will contain the index of the corresponding node in MFEM ordering.

Definition at line 497 of file vtk.cpp.

◆ CubeFaceBack()

bool mfem::CubeFaceBack ( int  node,
int *  n 
)
inline

Definition at line 666 of file ncmesh.cpp.

◆ CubeFaceBottom()

bool mfem::CubeFaceBottom ( int  node,
int *  n 
)
inline

Definition at line 669 of file ncmesh.cpp.

◆ CubeFaceFront()

bool mfem::CubeFaceFront ( int  node,
int *  n 
)
inline

Definition at line 663 of file ncmesh.cpp.

◆ CubeFaceLeft()

bool mfem::CubeFaceLeft ( int  node,
int *  n 
)
inline

Definition at line 657 of file ncmesh.cpp.

◆ CubeFaceRight()

bool mfem::CubeFaceRight ( int  node,
int *  n 
)
inline

Definition at line 660 of file ncmesh.cpp.

◆ CubeFaceTop()

bool mfem::CubeFaceTop ( int  node,
int *  n 
)
inline

Definition at line 672 of file ncmesh.cpp.

◆ CuCheckLastError()

void mfem::CuCheckLastError ( )

Check the error code returned by cudaGetLastError(), aborting on error.

Definition at line 178 of file cuda.cpp.

◆ CuGetDeviceCount()

int mfem::CuGetDeviceCount ( )

Get the number of CUDA devices.

Definition at line 185 of file cuda.cpp.

◆ CuMallocManaged()

void * mfem::CuMallocManaged ( void **  dptr,
size_t  bytes 
)

Allocates managed device memory.

Definition at line 49 of file cuda.cpp.

◆ CuMemAlloc()

void * mfem::CuMemAlloc ( void **  dptr,
size_t  bytes 
)

Allocates device memory and returns destination ptr.

Definition at line 34 of file cuda.cpp.

◆ CuMemAllocHostPinned()

void * mfem::CuMemAllocHostPinned ( void **  ptr,
size_t  bytes 
)

Allocates page-locked (pinned) host memory.

Definition at line 64 of file cuda.cpp.

◆ CuMemcpyDtoD()

void * mfem::CuMemcpyDtoD ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Device to Device.

Definition at line 132 of file cuda.cpp.

◆ CuMemcpyDtoDAsync()

void * mfem::CuMemcpyDtoDAsync ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Device to Device.

Definition at line 147 of file cuda.cpp.

◆ CuMemcpyDtoH()

void * mfem::CuMemcpyDtoH ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Device to Host.

Definition at line 155 of file cuda.cpp.

◆ CuMemcpyDtoHAsync()

void * mfem::CuMemcpyDtoHAsync ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Device to Host.

Definition at line 170 of file cuda.cpp.

◆ CuMemcpyHtoD()

void * mfem::CuMemcpyHtoD ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Host to Device and returns destination ptr.

Definition at line 109 of file cuda.cpp.

◆ CuMemcpyHtoDAsync()

void * mfem::CuMemcpyHtoDAsync ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Host to Device and returns destination ptr.

Definition at line 124 of file cuda.cpp.

◆ CuMemFree()

void * mfem::CuMemFree ( void *  dptr)

Frees device memory and returns destination ptr.

Definition at line 79 of file cuda.cpp.

◆ CuMemFreeHostPinned()

void * mfem::CuMemFreeHostPinned ( void *  ptr)

Frees page-locked (pinned) host memory and returns destination ptr.

Definition at line 94 of file cuda.cpp.

◆ CuWrap1D()

template<const int BLCK = MFEM_CUDA_BLOCKS, typename DBODY >
void mfem::CuWrap1D ( const int  N,
DBODY &&  d_body 
)

Definition at line 497 of file forall.hpp.

◆ CuWrap2D()

template<typename DBODY >
void mfem::CuWrap2D ( const int  N,
DBODY &&  d_body,
const int  X,
const int  Y,
const int  BZ 
)

Definition at line 506 of file forall.hpp.

◆ CuWrap3D()

template<typename DBODY >
void mfem::CuWrap3D ( const int  N,
DBODY &&  d_body,
const int  X,
const int  Y,
const int  Z,
const int  G 
)

Definition at line 518 of file forall.hpp.

◆ DataCollectionToFmsDataCollection()

int mfem::DataCollectionToFmsDataCollection ( DataCollection mfem_dc,
FmsDataCollection *  dc 
)

In-memory conversion of MFEM data collection to an FMS data collection.

Parameters
mfem_dcThe MFEM data collection to convert.
[out]dcA pointer to a new FmsDataCollection containing the MFEM data.
Returns
0 on success; non-zero on failure.

Definition at line 1868 of file fmsconvert.cpp.

◆ defined()

class if mfem::defined ( __alignas_is_defined  )

Definition at line 38 of file sparsemat.hpp.

◆ delete_hypre_ParCSRMatrixColMapOffd()

void mfem::delete_hypre_ParCSRMatrixColMapOffd ( hypre_ParCSRMatrix *  A)
inline

Definition at line 2677 of file hypre.cpp.

◆ der_sigmoid()

double mfem::der_sigmoid ( double  x)

Derivative of sigmoid function.

Definition at line 33 of file ex37.hpp.

◆ Det2D()

MFEM_HOST_DEVICE double mfem::Det2D ( DeviceMatrix J)
inline

Definition at line 183 of file lor_util.hpp.

◆ Det3D()

MFEM_HOST_DEVICE double mfem::Det3D ( DeviceMatrix J)
inline

Definition at line 188 of file lor_util.hpp.

◆ detJ_i_function()

double mfem::detJ_i_function ( const Vector x,
CartesianPML pml 
)

Definition at line 166 of file pml.cpp.

◆ detJ_Jt_J_inv_i_function()

void mfem::detJ_Jt_J_inv_i_function ( const Vector x,
CartesianPML pml,
DenseMatrix M 
)

Definition at line 255 of file pml.cpp.

◆ detJ_Jt_J_inv_r_function()

void mfem::detJ_Jt_J_inv_r_function ( const Vector x,
CartesianPML pml,
DenseMatrix M 
)

Definition at line 238 of file pml.cpp.

◆ detJ_r_function()

double mfem::detJ_r_function ( const Vector x,
CartesianPML pml 
)

PML stretching functions: See https://doi.org/10.1006/jcph.1994.1159.

Definition at line 156 of file pml.cpp.

◆ DetOfLinComb()

void mfem::DetOfLinComb ( const DenseMatrix A,
const DenseMatrix B,
Vector c 
)

Definition at line 7884 of file mesh.cpp.

◆ DeviceCanUseCeed()

bool mfem::DeviceCanUseCeed ( )

Function that determines if a CEED kernel should be used, based on the current mfem::Device configuration.

Definition at line 33 of file util.cpp.

◆ DeviceCanUseOcca()

bool mfem::DeviceCanUseOcca ( )
inline

Function that determines if an OCCA kernel should be used, based on the current mfem::Device configuration.

Definition at line 69 of file occa.hpp.

◆ dgemv_()

void mfem::dgemv_ ( char *  ,
int *  ,
int *  ,
double *  ,
double *  ,
int *  ,
double *  ,
int *  ,
double *  ,
double *  ,
int *   
)

◆ dgeqrf_()

void mfem::dgeqrf_ ( int *  ,
int *  ,
double *  ,
int *  ,
double *  ,
double *  ,
int *  ,
int *   
)

◆ DiscreteCurl()

HypreParMatrix* mfem::DiscreteCurl ( ParFiniteElementSpace face_fespace,
ParFiniteElementSpace edge_fespace 
)

Compute the discrete curl matrix between the ND1 and RT0 spaces.

◆ DiscreteGrad()

HypreParMatrix* mfem::DiscreteGrad ( ParFiniteElementSpace edge_fespace,
ParFiniteElementSpace vert_fespace 
)

Compute the discrete gradient matrix between the nodal linear and ND1 spaces.

◆ Distance() [1/2]

double mfem::Distance ( const double *  x,
const double *  y,
const int  n 
)
inline

Definition at line 648 of file vector.hpp.

◆ Distance() [2/2]

double mfem::Distance ( const Vector x,
const Vector y 
)
inline

Definition at line 653 of file vector.hpp.

◆ DistanceSquared()

double mfem::DistanceSquared ( const double *  x,
const double *  y,
const int  n 
)
inline

Definition at line 636 of file vector.hpp.

◆ dormqr_()

void mfem::dormqr_ ( char *  ,
char *  ,
int *  ,
int *  ,
int *  ,
double *  ,
int *  ,
double *  ,
double *  ,
int *  ,
double *  ,
int *  ,
int *   
)

◆ dsyev_Eigensystem()

void mfem::dsyev_Eigensystem ( DenseMatrix a,
Vector ev,
DenseMatrix evect 
)

Definition at line 1058 of file densemat.cpp.

◆ dsyevr_Eigensystem()

void mfem::dsyevr_Eigensystem ( DenseMatrix a,
Vector ev,
DenseMatrix evect 
)

Definition at line 895 of file densemat.cpp.

◆ dsygv_Eigensystem()

void mfem::dsygv_Eigensystem ( DenseMatrix a,
DenseMatrix b,
Vector ev,
DenseMatrix evect 
)

Definition at line 1132 of file densemat.cpp.

◆ dtrsm_()

void mfem::dtrsm_ ( char *  side,
char *  uplo,
char *  transa,
char *  diag,
int *  m,
int *  n,
double *  alpha,
double *  a,
int *  lda,
double *  b,
int *  ldb 
)

◆ EliminateBC() [1/2]

void mfem::EliminateBC ( PetscParMatrix A,
PetscParMatrix Ae,
const Array< int > &  ess_dof_list,
const Vector X,
Vector B 
)

Eliminate essential BC specified by ess_dof_list from the solution X to the r.h.s. B.

Here, A is a matrix with eliminated BC, while Ae is such that (A + Ae) is the original (Neumann) matrix before elimination.

Definition at line 2328 of file petsc.cpp.

◆ EliminateBC() [2/2]

void mfem::EliminateBC ( const HypreParMatrix A,
const HypreParMatrix Ae,
const Array< int > &  ess_dof_list,
const Vector X,
Vector B 
)

Eliminate essential BC specified by ess_dof_list from the solution X to the r.h.s. B.

Here A is a matrix with eliminated BC, while Ae is such that (A+Ae) is the original (Neumann) matrix before elimination.

Definition at line 3258 of file hypre.cpp.

◆ EliminateColumns()

void mfem::EliminateColumns ( HypreParMatrix D,
const Array< int > &  ess_dofs 
)

Eliminates columns in the given HypreParMatrix.

This is similar to HypreParMatrix::EliminateBC, except that only the columns are eliminated.

Definition at line 23 of file discrete_divergence.cpp.

◆ EnsureCapacity()

template<typename T >
void mfem::EnsureCapacity ( Memory< T > &  mem,
int  capacity 
)

Ensure that mem has at least capacity capacity.

If the capacity of mem is not large enough, delete it and allocate new memory with size capacity.

Definition at line 120 of file lor_batched.hpp.

◆ Extrude1D()

Mesh * mfem::Extrude1D ( Mesh mesh,
const int  ny,
const double  sy,
const bool  closed 
)

Extrude a 1D mesh.

Definition at line 12710 of file mesh.cpp.

◆ Extrude1DGridFunction()

GridFunction * mfem::Extrude1DGridFunction ( Mesh mesh,
Mesh mesh2d,
GridFunction sol,
const int  ny 
)

Extrude a scalar 1D GridFunction, after extruding the mesh with Extrude1D.

Definition at line 4529 of file gridfunc.cpp.

◆ Extrude2D()

Mesh * mfem::Extrude2D ( Mesh mesh,
const int  nz,
const double  sz 
)

Extrude a 2D mesh.

Definition at line 12870 of file mesh.cpp.

◆ f()

std::function<double(const Vector &)> mfem::f ( double  mass_coeff)

Definition at line 30 of file lor_mms.hpp.

◆ f_vec()

std::function<void(const Vector &, Vector &)> mfem::f_vec ( bool  grad_div_problem)

Definition at line 68 of file lor_mms.hpp.

◆ FillWithRandomNumbers()

void mfem::FillWithRandomNumbers ( std::vector< double > &  x,
double  a,
double  b 
)

Fills the vector x with random numbers between a and b.

Definition at line 18 of file util.cpp.

◆ FillWithRandomRotations()

void mfem::FillWithRandomRotations ( std::vector< double > &  x)

This function creates random rotation matrices (3 x 3) and stores them in the vector. That means, x[0-8] is the first rotation matrix, x[9-17] is the second and so forth. Size of the vector determines the number of rotation that fit into the vector and should be a multiple of 9.

Definition at line 26 of file util.cpp.

◆ filter_dos()

void mfem::filter_dos ( std::string &  line)
inline

Check for, and remove, a trailing '\r' from and std::string.

Definition at line 45 of file text.hpp.

◆ FinalizeTransfer()

int mfem::FinalizeTransfer ( )

Finalize the par_moonolith library.

Returns
Zero if everything has succeeded.

Definition at line 23 of file transfer.cpp.

◆ FindPartitioningComponents()

void mfem::FindPartitioningComponents ( Table elem_elem,
const Array< int > &  partitioning,
Array< int > &  component,
Array< int > &  num_comp 
)

Definition at line 7756 of file mesh.cpp.

◆ FindRoots()

int mfem::FindRoots ( const Vector z,
Vector x 
)

Definition at line 7964 of file mesh.cpp.

◆ FindTMax()

void mfem::FindTMax ( Vector c,
Vector x,
double &  tmax,
const double  factor,
const int  Dim 
)

Definition at line 8111 of file mesh.cpp.

◆ FmsDataCollectionToDataCollection()

int mfem::FmsDataCollectionToDataCollection ( FmsDataCollection  dc,
DataCollection **  mfem_dc 
)

In-memory conversion of FMS data collection to an MFEM data collection.

Parameters
dcThe FMS data collection to convert.
[out]mfem_dcA pointer to a new MFEM DataCollection containing the FMS data.
Returns
0 on success; non-zero on failure.

Definition at line 1386 of file fmsconvert.cpp.

◆ FmsFieldToGridFunction()

template<typename DataType >
int mfem::FmsFieldToGridFunction ( FmsMesh  fms_mesh,
FmsField  f,
Mesh mesh,
GridFunction func,
bool  setFE 
)

This function converts an FmsField to an MFEM GridFunction.

Note
I took some of the Pumi example code from the mesh conversion function that converted coordinates and am trying to make it more general. Coordinates are just another field so it seems like a good starting point. We still have to support a bunch of other function types, etc.

Definition at line 107 of file fmsconvert.cpp.

◆ FmsMeshToMesh()

int mfem::FmsMeshToMesh ( FmsMesh  fms_mesh,
Mesh **  mfem_mesh 
)

Definition at line 452 of file fmsconvert.cpp.

◆ FmsMetaDataGetInteger()

bool mfem::FmsMetaDataGetInteger ( FmsMetaData  mdata,
const std::string &  key,
std::vector< int > &  values 
)

Definition at line 1172 of file fmsconvert.cpp.

◆ FmsMetaDataGetScalar()

bool mfem::FmsMetaDataGetScalar ( FmsMetaData  mdata,
const std::string &  key,
std::vector< double > &  values 
)

Definition at line 1273 of file fmsconvert.cpp.

◆ FmsMetaDataGetString()

bool mfem::FmsMetaDataGetString ( FmsMetaData  mdata,
const std::string &  key,
std::string &  value 
)

Definition at line 1338 of file fmsconvert.cpp.

◆ forall()

template<typename lambda >
void mfem::forall ( int  N,
lambda &&  body 
)
inline

Definition at line 742 of file forall.hpp.

◆ forall_2D()

template<typename lambda >
void mfem::forall_2D ( int  N,
int  X,
int  Y,
lambda &&  body 
)
inline

Definition at line 751 of file forall.hpp.

◆ forall_2D_batch()

template<typename lambda >
void mfem::forall_2D_batch ( int  N,
int  X,
int  Y,
int  BZ,
lambda &&  body 
)
inline

Definition at line 757 of file forall.hpp.

◆ forall_3D()

template<typename lambda >
void mfem::forall_3D ( int  N,
int  X,
int  Y,
int  Z,
lambda &&  body 
)
inline

Definition at line 763 of file forall.hpp.

◆ forall_3D_grid()

template<typename lambda >
void mfem::forall_3D_grid ( int  N,
int  X,
int  Y,
int  Z,
int  G,
lambda &&  body 
)
inline

Definition at line 769 of file forall.hpp.

◆ forall_switch()

template<typename lambda >
void mfem::forall_switch ( bool  use_dev,
int  N,
lambda &&  body 
)
inline

Definition at line 745 of file forall.hpp.

◆ ForallWrap() [1/2]

template<const int DIM, typename d_lambda , typename h_lambda >
void mfem::ForallWrap ( const bool  use_dev,
const int  N,
d_lambda &&  d_body,
h_lambda &&  h_body,
const int  X = 0,
const int  Y = 0,
const int  Z = 0,
const int  G = 0 
)
inline

The forall kernel body wrapper.

Definition at line 664 of file forall.hpp.

◆ ForallWrap() [2/2]

template<const int DIM, typename lambda >
void mfem::ForallWrap ( const bool  use_dev,
const int  N,
lambda &&  body,
const int  X = 0,
const int  Y = 0,
const int  Z = 0,
const int  G = 0 
)
inline

Definition at line 734 of file forall.hpp.

◆ FormDiscreteDivergenceMatrix()

HypreParMatrix * mfem::FormDiscreteDivergenceMatrix ( ParFiniteElementSpace fes_rt,
ParFiniteElementSpace fes_l2,
const Array< int > &  ess_dofs 
)

Definition at line 169 of file discrete_divergence.cpp.

◆ FormElementToFace2D()

void mfem::FormElementToFace2D ( int  order,
Array< int > &  element2face 
)

Definition at line 126 of file discrete_divergence.cpp.

◆ FormElementToFace3D()

void mfem::FormElementToFace3D ( int  order,
Array< int > &  element2face 
)

Definition at line 144 of file discrete_divergence.cpp.

◆ GatherBlockOffsetData()

void mfem::GatherBlockOffsetData ( MPI_Comm  comm,
const int  rank,
const int  nprocs,
const int  num_loc,
const Array< int > &  offsets,
std::vector< int > &  all_num_loc,
const int  numBlocks,
std::vector< std::vector< HYPRE_BigInt >> &  blockProcOffsets,
std::vector< HYPRE_BigInt > &  procOffsets,
std::vector< std::vector< int >> &  procBlockOffsets,
HYPRE_BigInt firstLocal,
HYPRE_BigInt globalNum 
)

Definition at line 2965 of file hypre.cpp.

◆ GeneratePlaneRotation()

void mfem::GeneratePlaneRotation ( double &  dx,
double &  dy,
double &  cs,
double &  sn 
)
inline

Definition at line 930 of file solvers.cpp.

◆ get_error_action()

ErrorAction mfem::get_error_action ( )

Get the action MFEM takes when an error is encountered.

Definition at line 72 of file error.cpp.

◆ GetCollocatedIntRule()

IntegrationRule mfem::GetCollocatedIntRule ( FiniteElementSpace fes)

Definition at line 494 of file lor_batched.cpp.

◆ GetConfigStr()

const char * mfem::GetConfigStr ( )

Return the MFEM configuration as a string.

Definition at line 66 of file version.cpp.

◆ GetGitStr()

const char * mfem::GetGitStr ( )

Return the MFEM Git hash as a string.

Definition at line 59 of file version.cpp.

◆ GetGlobalMPI_Comm()

MPI_Comm mfem::GetGlobalMPI_Comm ( )

Get MFEM's "global" MPI communicator.

Definition at line 62 of file globals.cpp.

◆ GetHypreMemoryClass()

constexpr MemoryClass mfem::GetHypreMemoryClass ( )
inline

The MemoryClass used by Hypre objects.

Definition at line 137 of file hypre.hpp.

◆ GetHypreMemoryType()

MemoryType mfem::GetHypreMemoryType ( )
inline

The MemoryType used by MFEM when allocating arrays for Hypre objects.

Definition at line 149 of file hypre.hpp.

◆ GetMassIntRule()

const IntegrationRule& mfem::GetMassIntRule ( FiniteElementSpace fes_l2)

Definition at line 58 of file hdiv_linear_solver.cpp.

◆ GetMemoryClass()

template<typename T >
MemoryClass mfem::GetMemoryClass ( const Memory< T > &  mem,
bool  on_dev 
)

Return the memory class to be used by the functions Read(), Write(), and ReadWrite(), while setting the device use flag in mem, if on_dev is true.

Definition at line 301 of file device.hpp.

◆ GetMemoryType()

MemoryType mfem::GetMemoryType ( MemoryClass  mc)

Return a suitable MemoryType for a given MemoryClass.

Definition at line 60 of file mem_manager.cpp.

◆ GetVersion()

int mfem::GetVersion ( )

Return the MFEM version number as a single integer.

Definition at line 22 of file version.cpp.

◆ GetVersionMajor()

int mfem::GetVersionMajor ( )

Return the MFEM major version number as an integer.

Definition at line 28 of file version.cpp.

◆ GetVersionMinor()

int mfem::GetVersionMinor ( )

Return the MFEM minor version number as an integer.

Definition at line 34 of file version.cpp.

◆ GetVersionPatch()

int mfem::GetVersionPatch ( )

Return the MFEM version patch number as an integer.

Definition at line 40 of file version.cpp.

◆ GetVersionStr()

const char * mfem::GetVersionStr ( )

Return the MFEM version number as a string.

Definition at line 46 of file version.cpp.

◆ GlobalLpNorm()

double mfem::GlobalLpNorm ( const double  p,
double  loc_norm,
MPI_Comm  comm 
)

Compute a global Lp norm from the local Lp norms computed by each processor.

Definition at line 1198 of file pgridfunc.cpp.

◆ GMRES() [1/2]

int mfem::GMRES ( const Operator A,
Vector x,
const Vector b,
Solver M,
int &  max_iter,
int  m,
double &  tol,
double  atol,
int  printit 
)

GMRES method. (tolerances are squared)

Definition at line 1340 of file solvers.cpp.

◆ GMRES() [2/2]

void mfem::GMRES ( const Operator A,
Solver B,
const Vector b,
Vector x,
int  print_iter,
int  max_num_iter,
int  m,
double  rtol,
double  atol 
)

GMRES method. (tolerances are squared)

Definition at line 1359 of file solvers.cpp.

◆ GmshHOHexahedronMapping()

void mfem::GmshHOHexahedronMapping ( int  order,
int *  map 
)

Generate Gmsh vertex mapping for a Hexahedron.

Definition at line 436 of file gmsh.cpp.

◆ GmshHOPyramidMapping()

void mfem::GmshHOPyramidMapping ( int  order,
int *  map 
)

Generate Gmsh vertex mapping for a Pyramid.

Definition at line 470 of file gmsh.cpp.

◆ GmshHOQuadrilateralMapping()

void mfem::GmshHOQuadrilateralMapping ( int  order,
int *  map 
)

Generate Gmsh vertex mapping for a Quadrilateral.

Definition at line 403 of file gmsh.cpp.

◆ GmshHOSegmentMapping()

void mfem::GmshHOSegmentMapping ( int  order,
int *  map 
)

Generate Gmsh vertex mapping for a Segment.

Definition at line 378 of file gmsh.cpp.

◆ GmshHOTetrahedronMapping()

void mfem::GmshHOTetrahedronMapping ( int  order,
int *  map 
)

Generate Gmsh vertex mapping for a Tetrahedron.

Definition at line 417 of file gmsh.cpp.

◆ GmshHOTriangleMapping()

void mfem::GmshHOTriangleMapping ( int  order,
int *  map 
)

Generate Gmsh vertex mapping for a Triangle.

Definition at line 388 of file gmsh.cpp.

◆ GmshHOWedgeMapping()

void mfem::GmshHOWedgeMapping ( int  order,
int *  map 
)

Generate Gmsh vertex mapping for a Wedge.

Definition at line 453 of file gmsh.cpp.

◆ GridFunctionToFmsField()

int mfem::GridFunctionToFmsField ( FmsDataCollection  dc,
FmsComponent  comp,
const std::string &  fd_name,
const std::string &  field_name,
const Mesh mesh,
const GridFunction gf,
FmsField *  outfield 
)
Note
We add the FMS field descriptor and field in here so we can only do it after successfully validating the inputs (handling certain grid function types, etc.)

Definition at line 948 of file fmsconvert.cpp.

◆ HashGridDetectIntersections()

bool mfem::HashGridDetectIntersections ( const Mesh src,
const Mesh dest,
std::vector< moonolith::Integer > &  pairs 
)

Definition at line 113 of file mortarassembler.cpp.

◆ HasIntegrators()

template<typename T1 , typename T2 >
bool mfem::HasIntegrators ( BilinearForm a)

Definition at line 27 of file lor_batched.cpp.

◆ HipCheckLastError()

void mfem::HipCheckLastError ( )

Check the error code returned by hipGetLastError(), aborting on error.

Definition at line 178 of file hip.cpp.

◆ HipGetDeviceCount()

int mfem::HipGetDeviceCount ( )

Get the number of HIP devices.

Definition at line 185 of file hip.cpp.

◆ HipMallocManaged()

void * mfem::HipMallocManaged ( void **  dptr,
size_t  bytes 
)

Allocates managed device memory.

Definition at line 49 of file hip.cpp.

◆ HipMemAlloc()

void * mfem::HipMemAlloc ( void **  dptr,
size_t  bytes 
)

Allocates device memory.

Definition at line 34 of file hip.cpp.

◆ HipMemAllocHostPinned()

void * mfem::HipMemAllocHostPinned ( void **  ptr,
size_t  bytes 
)

Allocates page-locked (pinned) host memory.

Definition at line 64 of file hip.cpp.

◆ HipMemcpyDtoD()

void * mfem::HipMemcpyDtoD ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Device to Device.

Definition at line 132 of file hip.cpp.

◆ HipMemcpyDtoDAsync()

void * mfem::HipMemcpyDtoDAsync ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Device to Device.

Definition at line 147 of file hip.cpp.

◆ HipMemcpyDtoH()

void * mfem::HipMemcpyDtoH ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Device to Host.

Definition at line 155 of file hip.cpp.

◆ HipMemcpyDtoHAsync()

void * mfem::HipMemcpyDtoHAsync ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Device to Host.

Definition at line 170 of file hip.cpp.

◆ HipMemcpyHtoD()

void * mfem::HipMemcpyHtoD ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Host to Device.

Definition at line 109 of file hip.cpp.

◆ HipMemcpyHtoDAsync()

void * mfem::HipMemcpyHtoDAsync ( void *  dst,
const void *  src,
size_t  bytes 
)

Copies memory from Host to Device.

Definition at line 124 of file hip.cpp.

◆ HipMemFree()

void * mfem::HipMemFree ( void *  dptr)

Frees device memory.

Definition at line 79 of file hip.cpp.

◆ HipMemFreeHostPinned()

void * mfem::HipMemFreeHostPinned ( void *  ptr)

Frees page-locked (pinned) host memory and returns destination ptr.

Definition at line 94 of file hip.cpp.

◆ HipWrap1D()

template<const int BLCK = MFEM_HIP_BLOCKS, typename DBODY >
void mfem::HipWrap1D ( const int  N,
DBODY &&  d_body 
)

Definition at line 593 of file forall.hpp.

◆ HipWrap2D()

template<typename DBODY >
void mfem::HipWrap2D ( const int  N,
DBODY &&  d_body,
const int  X,
const int  Y,
const int  BZ 
)

Definition at line 602 of file forall.hpp.

◆ HipWrap3D()

template<typename DBODY >
void mfem::HipWrap3D ( const int  N,
DBODY &&  d_body,
const int  X,
const int  Y,
const int  Z,
const int  G 
)

Definition at line 613 of file forall.hpp.

◆ HostRead()

template<typename T >
const T* mfem::HostRead ( const Memory< T > &  mem,
int  size 
)
inline

Shortcut to Read(const Memory<T> &mem, int size, false)

Definition at line 326 of file device.hpp.

◆ HostReadWrite()

template<typename T >
T* mfem::HostReadWrite ( Memory< T > &  mem,
int  size 
)
inline

Shortcut to ReadWrite(Memory<T> &mem, int size, false)

Definition at line 360 of file device.hpp.

◆ HostWrite()

template<typename T >
T* mfem::HostWrite ( Memory< T > &  mem,
int  size 
)
inline

Shortcut to Write(const Memory<T> &mem, int size, false)

Definition at line 343 of file device.hpp.

◆ HypreParMatrixFromBlocks()

HypreParMatrix * mfem::HypreParMatrixFromBlocks ( Array2D< HypreParMatrix * > &  blocks,
Array2D< double > *  blockCoeff = NULL 
)

Returns a merged hypre matrix constructed from hypre matrix blocks.

It is assumed that all block matrices use the same communicator, and the block sizes are consistent in rows and columns. Rows and columns are renumbered but not redistributed in parallel, e.g. the block rows owned by each process remain on that process in the resulting matrix. Some blocks can be NULL. Each block and the entire system can be rectangular. Scalability to extremely large processor counts is limited by global MPI communication, see GatherBlockOffsetData() in hypre.cpp.

Definition at line 3020 of file hypre.cpp.

◆ HypreStealOwnership()

void mfem::HypreStealOwnership ( HypreParMatrix A_hyp,
SparseMatrix A_diag 
)

Make A_hyp steal ownership of its diagonal part A_diag.

If A_hyp does not own I and J, then they are aliases pointing to the I and J arrays in A_diag. In that case, this function swaps the memory objects. Similarly for the data array.

After this function is called, A_hyp will own all of the arrays of its diagonal part.

Note
I and J can only be aliases when HYPRE_BIGINT is disabled.

Definition at line 2744 of file hypre.cpp.

◆ infinity()

double mfem::infinity ( )
inline

Define a shortcut for std::numeric_limits<double>::infinity()

Definition at line 44 of file vector.hpp.

◆ InitTransfer() [1/2]

void mfem::InitTransfer ( int  argc,
char *  argv[] 
)

Initializes the par_moonolith library. It also calls MPI_Init.

Parameters
argcStandard argument passed to the main function.
argvStandard argument passed to the main function.

Definition at line 19 of file transfer.cpp.

◆ InitTransfer() [2/2]

void mfem::InitTransfer ( int  argc,
char *  argv[],
MPI_Comm  comm 
)

Initializes the transfer library. It does not call MPI_Init, but uses the communicator defined by the user. This method can be called only after MPI_Init.

Parameters
argcStandard argument passed to the main function.
argvStandard argument passed to the main function.
commThe user defined communicator.

Definition at line 26 of file transfer.cpp.

◆ InnerProduct() [1/4]

double mfem::InnerProduct ( HypreParVector x,
HypreParVector y 
)

Definition at line 414 of file hypre.cpp.

◆ InnerProduct() [2/4]

double mfem::InnerProduct ( HypreParVector x,
HypreParVector y 
)

Returns the inner product of x and y.

Definition at line 419 of file hypre.cpp.

◆ InnerProduct() [3/4]

double mfem::InnerProduct ( const Vector x,
const Vector y 
)
inline

Returns the inner product of x and y.

In parallel this computes the inner product of the local vectors, producing different results on each MPI rank.

Definition at line 684 of file vector.hpp.

◆ InnerProduct() [4/4]

double mfem::InnerProduct ( MPI_Comm  comm,
const Vector x,
const Vector y 
)
inline

Returns the inner product of x and y in parallel.

In parallel this computes the inner product of the global vectors, producing identical results on each MPI rank.

Definition at line 694 of file vector.hpp.

◆ Interpolate()

NURBSPatch* mfem::Interpolate ( NURBSPatch p1,
NURBSPatch p2 
)
Note
The returned object should be deleted by the caller.

Definition at line 1398 of file nurbs.cpp.

◆ InterpolateTMOP_QualityMetric()

void mfem::InterpolateTMOP_QualityMetric ( TMOP_QualityMetric metric,
const TargetConstructor tc,
const Mesh mesh,
GridFunction metric_gf 
)

Interpolates the metric's values at the nodes of metric_gf.

Assumes that metric_gf's FiniteElementSpace is initialized.

Definition at line 4867 of file tmop.cpp.

◆ inv_sigmoid()

double mfem::inv_sigmoid ( double  x)

Inverse sigmoid function.

Definition at line 12 of file ex37.hpp.

◆ InvertLinearTrans()

void mfem::InvertLinearTrans ( ElementTransformation trans,
const IntegrationPoint pt,
Vector x 
)

Definition at line 662 of file fe_base.cpp.

◆ IsBigEndian()

bool mfem::IsBigEndian ( )

Definition at line 595 of file vtk.cpp.

◆ IsDeviceMemory()

bool mfem::IsDeviceMemory ( MemoryType  mt)
inline

Return true if the given memory type is in MemoryClass::DEVICE.

Definition at line 88 of file mem_manager.hpp.

◆ IsFinite()

bool mfem::IsFinite ( const double &  val)
inline

Definition at line 486 of file vector.hpp.

◆ IsHostMemory()

bool mfem::IsHostMemory ( MemoryType  mt)
inline

Return true if the given memory type is in MemoryClass::HOST.

Definition at line 85 of file mem_manager.hpp.

◆ IsIdentityProlongation()

bool mfem::IsIdentityProlongation ( const Operator P)
inline

Returns true if P is the identity prolongation, i.e. if it is either NULL or an IdentityOperator.

Definition at line 720 of file operator.hpp.

◆ isValidAsDouble()

int mfem::isValidAsDouble ( char *  s)

Definition at line 51 of file optparser.cpp.

◆ isValidAsInt()

int mfem::isValidAsInt ( char *  s)

Definition at line 22 of file optparser.cpp.

◆ Jacobian2D()

MFEM_HOST_DEVICE void mfem::Jacobian2D ( const double  x,
const double  y,
const double  vx[4],
const double  vy[4],
DeviceMatrix J 
)
inline

Definition at line 115 of file lor_util.hpp.

◆ Jacobian3D()

MFEM_HOST_DEVICE void mfem::Jacobian3D ( const double  x,
const double  y,
const double  z,
const double  vx[8],
const double  vy[8],
const double  vz[8],
DeviceMatrix J 
)
inline

Definition at line 126 of file lor_util.hpp.

◆ Jt_J_detJinv_i_function()

void mfem::Jt_J_detJinv_i_function ( const Vector x,
CartesianPML pml,
DenseMatrix M 
)

Definition at line 203 of file pml.cpp.

◆ Jt_J_detJinv_r_function()

void mfem::Jt_J_detJinv_r_function ( const Vector x,
CartesianPML pml,
DenseMatrix M 
)

Definition at line 187 of file pml.cpp.

◆ KdTreeSort()

void mfem::KdTreeSort ( int **  coords,
int  d,
int  dim,
int  size 
)

Definition at line 1339 of file communication.cpp.

◆ L2ZZErrorEstimator()

double mfem::L2ZZErrorEstimator ( BilinearFormIntegrator flux_integrator,
const ParGridFunction x,
ParFiniteElementSpace smooth_flux_fes,
ParFiniteElementSpace flux_fes,
Vector errors,
int  norm_p = 2,
double  solver_tol = 1e-12,
int  solver_max_it = 200 
)

Performs a global L2 projection (through a HypreBoomerAMG solve) of flux from supplied discontinuous space into supplied smooth (continuous, or at least conforming) space, and computes the Lp norms of the differences between them on each element. This is one approach to handling conforming and non-conforming elements in parallel. Returns the total error estimate.

Definition at line 1270 of file pgridfunc.cpp.

◆ LinearSolve()

bool mfem::LinearSolve ( DenseMatrix A,
double *  X,
double  TOL = 1.e-9 
)

Solves the dense linear system, A * X = B for X

Parameters
[in,out]Athe square matrix for the linear system
[in,out]Xthe rhs vector, B, on input, the solution, X, on output.
[in]TOLoptional fuzzy comparison tolerance. Defaults to 1e-9.
Returns
status set to true if successful, otherwise, false.
Note
This routine may replace the contents of the input Matrix, A, with the corresponding LU factorization of the matrix. Matrices of size 1x1 and 2x2 are handled explicitly.
Precondition
A.IsSquare() == true
X != nullptr

Definition at line 2342 of file densemat.cpp.

◆ LORVertexCoordinates2D()

template<int ORDER>
MFEM_HOST_DEVICE void mfem::LORVertexCoordinates2D ( const double *  X,
int  iel_ho,
int  kx,
int  ky,
double  vx[4],
double  vy[4] 
)
inline

Definition at line 24 of file lor_util.hpp.

◆ LORVertexCoordinates3D()

template<int ORDER>
MFEM_HOST_DEVICE void mfem::LORVertexCoordinates3D ( const double *  X,
int  iel_ho,
int  kx,
int  ky,
int  kz,
double  vx[8],
double  vy[8],
double  vz[8] 
)
inline

Definition at line 56 of file lor_util.hpp.

◆ LpNormLoop() [1/2]

double mfem::LpNormLoop ( double  p,
Coefficient coeff,
Mesh mesh,
const IntegrationRule irs[] 
)

Definition at line 1393 of file coefficient.cpp.

◆ LpNormLoop() [2/2]

double mfem::LpNormLoop ( double  p,
VectorCoefficient coeff,
Mesh mesh,
const IntegrationRule irs[] 
)

Definition at line 1424 of file coefficient.cpp.

◆ LSZZErrorEstimator()

double mfem::LSZZErrorEstimator ( BilinearFormIntegrator blfi,
GridFunction u,
Vector error_estimates,
bool  subdomain_reconstruction = true,
bool  with_coeff = false,
double  tichonov_coeff = 0.0 
)

A ‘‘true’’ ZZ error estimator that uses face-based patches for flux reconstruction.

Only two-element face patches are ever used:

  • For conforming faces, the face patch consists of its two neighboring elements.
  • In the non-conforming setting, only the face patches associated to fine-scale element faces are used. These face patches always consist of two elements delivered by mesh::GetFaceElements(Face, *Elem1, *Elem2).

Definition at line 4255 of file gridfunc.cpp.

◆ MakeDiagonalMatrix()

HypreParMatrix* mfem::MakeDiagonalMatrix ( Vector diag,
const ParFiniteElementSpace fes 
)

Return a new HypreParMatrix with given diagonal entries.

Definition at line 28 of file hdiv_linear_solver.cpp.

◆ MakeParFilename()

std::string mfem::MakeParFilename ( const std::string &  prefix,
const int  myid,
const std::string  suffix = "",
const int  width = 6 
)

Construct a string of the form "<prefix><myid><suffix>" where the integer myid is padded with leading zeros to be at least width digits long.

This is a convenience function, e.g. to redirect mfem::out to individual files for each rank, one can use:

std::ofstream out_file(MakeParFilename("app_out.", myid).c_str());
mfem::out.SetStream(out_file);

Definition at line 43 of file globals.cpp.

◆ MemoryClassContainsType()

bool mfem::MemoryClassContainsType ( MemoryClass  mc,
MemoryType  mt 
)

Return true iff the MemoryType mt is contained in the MemoryClass mc.

Definition at line 75 of file mem_manager.cpp.

◆ MemoryPrintFlags()

void mfem::MemoryPrintFlags ( unsigned  flags)

Print the state of a Memory object based on its internal flags. Useful in a debugger. See also Memory<T>::PrintFlags().

Definition at line 1676 of file mem_manager.cpp.

◆ MeshToFmsMesh()

int mfem::MeshToFmsMesh ( const Mesh mmesh,
FmsMesh *  fmesh,
FmsComponent *  volume 
)

Definition at line 1531 of file fmsconvert.cpp.

◆ mfem_backtrace()

void mfem::mfem_backtrace ( int  mode,
int  depth 
)

Definition at line 83 of file error.cpp.

◆ mfem_cuda_error()

void mfem::mfem_cuda_error ( cudaError_t  err,
const char *  expr,
const char *  func,
const char *  file,
int  line 
)

Definition at line 23 of file cuda.cpp.

◆ mfem_error()

void mfem::mfem_error ( const char *  msg)

Function called when an error is encountered. Used by the macros MFEM_ABORT, MFEM_ASSERT, MFEM_VERIFY.

Definition at line 154 of file error.cpp.

◆ mfem_hip_error()

void mfem::mfem_hip_error ( hipError_t  err,
const char *  expr,
const char *  func,
const char *  file,
int  line 
)

Definition at line 23 of file hip.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [1/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AssembleDiagonalPA_Kernel_3D  ,
const int  NE,
const Array< double > &  b,
const Array< double > &  g,
const DenseTensor j,
const Vector h,
Vector diagonal,
const int  d1d,
const int  q1d 
)

Definition at line 20 of file tmop_pa_h3d.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [2/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
DatcSize  ,
const int  NE,
const int  ncomp,
const int  sizeidx,
const double  input_min_size,
const DenseMatrix w_,
const Array< double > &  b_,
const Vector x_,
const Vector nc_reduce,
DenseTensor j_,
const int  d1d,
const int  q1d 
)

Definition at line 20 of file tmop_pa_da3.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [3/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AssembleDiagonalPA_Kernel_C0_2D  ,
const int  NE,
const Array< double > &  b,
const Vector h0,
Vector diagonal,
const int  d1d,
const int  q1d 
)

Definition at line 20 of file tmop_pa_h2d_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [4/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AddMultGradPA_Kernel_2D  ,
const int  NE,
const Array< double > &  b_,
const Array< double > &  g_,
const DenseTensor j_,
const Vector h_,
const Vector x_,
Vector y_,
const int  d1d,
const int  q1d 
)

Definition at line 20 of file tmop_pa_h2m.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [5/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AssembleDiagonalPA_Kernel_C0_3D  ,
const int  NE,
const Array< double > &  b,
const Vector h0,
Vector diagonal,
const int  d1d,
const int  q1d 
)

Definition at line 20 of file tmop_pa_h3d_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [6/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AddMultGradPA_Kernel_3D  ,
const int  NE,
const Array< double > &  b_,
const Array< double > &  g_,
const DenseTensor j_,
const Vector h_,
const Vector x_,
Vector y_,
const int  d1d,
const int  q1d 
)

Definition at line 20 of file tmop_pa_h3m.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [7/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
SetupGradPA_C0_2D  ,
const double  lim_normal,
const Vector lim_dist,
const Vector c0_,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  bld_,
const Vector x0_,
const Vector x1_,
Vector h0_,
const bool  exp_lim,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_h2s_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [8/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
SetupGradPA_Kernel_C0_3D  ,
const double  lim_normal,
const Vector lim_dist,
const Vector c0_,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  bld_,
const Vector x0_,
const Vector x1_,
Vector h0_,
const bool  exp_lim,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_h3s_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [9/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AddMultPA_Kernel_C0_3D  ,
const double  lim_normal,
const Vector lim_dist,
const Vector c0_,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  bld_,
const Vector x0_,
const Vector x1_,
Vector y_,
const bool  exp_lim,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_p3_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [10/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( double  ,
EnergyPA_C0_2D  ,
const double  lim_normal,
const Vector lim_dist,
const Vector c0_,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  bld_,
const Vector x0_,
const Vector x1_,
const Vector ones,
Vector energy,
const bool  exp_lim,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_w2_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [11/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AddMultPA_Kernel_C0_2D  ,
const double  lim_normal,
const Vector lim_dist,
const Vector c0_,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  bld_,
const Vector x0_,
const Vector x1_,
Vector y_,
const bool  exp_lim,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_p2_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [12/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( double  ,
MinDetJpr_Kernel_3D  ,
const int  NE,
const Array< double > &  b_,
const Array< double > &  g_,
const Vector x_,
Vector DetJ,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_jp3.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [13/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AddMultGradPA_Kernel_C0_2D  ,
const int  NE,
const Array< double > &  b_,
const Vector h0_,
const Vector r_,
Vector c_,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_h2m_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [14/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( double  ,
MinDetJpr_Kernel_2D  ,
const int  NE,
const Array< double > &  b_,
const Array< double > &  g_,
const Vector x_,
Vector DetJ,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_jp2.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [15/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AddMultGradPA_Kernel_C0_3D  ,
const int  NE,
const Array< double > &  b_,
const Vector h0_,
const Vector r_,
Vector c_,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_h3m_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [16/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( double  ,
EnergyPA_C0_3D  ,
const double  lim_normal,
const Vector lim_dist,
const Vector c0_,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  bld_,
const Vector x0_,
const Vector x1_,
const Vector ones,
Vector energy,
const bool  exp_lim,
const int  d1d,
const int  q1d 
)

Definition at line 21 of file tmop_pa_w3_c0.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [17/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( bool  ,
TC_IDEAL_SHAPE_UNIT_SIZE_3D_KERNEL  ,
const int  NE,
const DenseMatrix w_,
DenseTensor j_,
const int  d1d,
const int  q1d 
)

Definition at line 23 of file tmop_pa_tc3.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [18/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( bool  ,
TC_IDEAL_SHAPE_UNIT_SIZE_2D_KERNEL  ,
const int  NE,
const DenseMatrix w_,
DenseTensor j_,
const int  d1d,
const int  q1d 
)

Definition at line 24 of file tmop_pa_tc2.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [19/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AssembleDiagonalPA_Kernel_2D  ,
const int  NE,
const Array< double > &  b,
const Array< double > &  g,
const DenseTensor j,
const Vector h,
Vector diagonal,
const int  d1d,
const int  q1d 
)

Definition at line 51 of file tmop_pa_h2d.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [20/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( bool  ,
TC_IDEAL_SHAPE_GIVEN_SIZE_2D_KERNEL  ,
const int  NE,
const Array< double > &  b_,
const Array< double > &  g_,
const DenseMatrix w_,
const Vector x_,
DenseTensor j_,
const int  d1d,
const int  q1d 
)

Definition at line 53 of file tmop_pa_tc2.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [21/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( bool  ,
TC_IDEAL_SHAPE_GIVEN_SIZE_3D_KERNEL  ,
const int  NE,
const Array< double > &  b_,
const Array< double > &  g_,
const DenseMatrix w_,
const Vector x_,
DenseTensor j_,
const int  d1d,
const int  q1d 
)

Definition at line 54 of file tmop_pa_tc3.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [22/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( double  ,
EnergyPA_2D  ,
const double  metric_normal,
const Array< double > &  metric_param,
const int  mid,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  g_,
const Vector x_,
const Vector ones,
Vector energy,
const int  d1d,
const int  q1d 
)

Definition at line 74 of file tmop_pa_w2.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [23/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( double  ,
EnergyPA_3D  ,
const double  metric_normal,
const Array< double > &  metric_param,
const int  mid,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  g_,
const Vector ones,
const Vector x_,
Vector energy,
const int  d1d,
const int  q1d 
)

Definition at line 83 of file tmop_pa_w3.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [24/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AddMultPA_Kernel_2D  ,
const double  metric_normal,
const Array< double > &  metric_param,
const int  mid,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  g_,
const Vector x_,
Vector y_,
const int  d1d,
const int  q1d 
)

Definition at line 99 of file tmop_pa_p2.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [25/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
AddMultPA_Kernel_3D  ,
const double  metric_normal,
const Array< double > &  metric_param,
const int  mid,
const int  NE,
const DenseTensor j_,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  g_,
const Vector x_,
Vector y_,
const int  d1d,
const int  q1d 
)

Definition at line 132 of file tmop_pa_p3.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [26/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
SetupGradPA_2D  ,
const Vector x_,
const double  metric_normal,
const Array< double > &  metric_param,
const int  mid,
const int  NE,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  g_,
const DenseTensor j_,
Vector h_,
const int  d1d,
const int  q1d 
)

Definition at line 258 of file tmop_pa_h2s.cpp.

◆ MFEM_REGISTER_TMOP_KERNELS() [27/27]

mfem::MFEM_REGISTER_TMOP_KERNELS ( void  ,
SetupGradPA_3D  ,
const double  metric_normal,
const Array< double > &  metric_param,
const int  mid,
const Vector x_,
const int  NE,
const Array< double > &  w_,
const Array< double > &  b_,
const Array< double > &  g_,
const DenseTensor j_,
Vector h_,
const int  d1d,
const int  q1d 
)

Definition at line 313 of file tmop_pa_h3s.cpp.

◆ mfem_warning()

void mfem::mfem_warning ( const char *  msg)

Function called by the macro MFEM_WARNING.

Definition at line 187 of file error.cpp.

◆ MFEMFinalizePetsc()

void mfem::MFEMFinalizePetsc ( )

Definition at line 241 of file petsc.cpp.

◆ MFEMFinalizeSlepc()

void mfem::MFEMFinalizeSlepc ( )

Definition at line 53 of file slepc.cpp.

◆ MFEMInitializePetsc() [1/3]

void mfem::MFEMInitializePetsc ( )

Convenience functions to initialize/finalize PETSc.

Definition at line 201 of file petsc.cpp.

◆ MFEMInitializePetsc() [2/3]

void mfem::MFEMInitializePetsc ( int *  argc,
char ***  argv 
)

Definition at line 206 of file petsc.cpp.

◆ MFEMInitializePetsc() [3/3]

void mfem::MFEMInitializePetsc ( int *  argc,
char ***  argv,
const char  rc_file[],
const char  help[] 
)

Definition at line 211 of file petsc.cpp.

◆ MFEMInitializeSlepc() [1/3]

void mfem::MFEMInitializeSlepc ( )

Definition at line 29 of file slepc.cpp.

◆ MFEMInitializeSlepc() [2/3]

void mfem::MFEMInitializeSlepc ( int *  argc,
char ***  argv 
)

Definition at line 34 of file slepc.cpp.

◆ MFEMInitializeSlepc() [3/3]

void mfem::MFEMInitializeSlepc ( int *  argc,
char ***  argv,
const char  rc_file[],
const char  help[] 
)

Definition at line 39 of file slepc.cpp.

◆ MfemMetaDataToFmsMetaData()

bool mfem::MfemMetaDataToFmsMetaData ( DataCollection mdc,
FmsDataCollection  fdc 
)

Definition at line 1100 of file fmsconvert.cpp.

◆ MinimumDiscardedFillOrdering()

void mfem::MinimumDiscardedFillOrdering ( SparseMatrix C,
Array< int > &  p 
)

Definition at line 2640 of file solvers.cpp.

◆ MINRES() [1/2]

void mfem::MINRES ( const Operator A,
const Vector b,
Vector x,
int  print_it,
int  max_it,
double  rtol,
double  atol 
)

MINRES method without preconditioner. (tolerances are squared)

Definition at line 1780 of file solvers.cpp.

◆ MINRES() [2/2]

void mfem::MINRES ( const Operator A,
Solver B,
const Vector b,
Vector x,
int  print_it,
int  max_it,
double  rtol,
double  atol 
)

MINRES method with preconditioner. (tolerances are squared)

Definition at line 1794 of file solvers.cpp.

◆ Mult() [1/7]

ComplexDenseMatrix * mfem::Mult ( const ComplexDenseMatrix A,
const ComplexDenseMatrix B 
)

Matrix matrix multiplication. A = B * C.

Definition at line 265 of file complex_densemat.cpp.

◆ Mult() [2/7]

void mfem::Mult ( const Table A,
const Table B,
Table C 
)

C = A * B (as boolean matrices)

Definition at line 475 of file table.cpp.

◆ Mult() [3/7]

Table * mfem::Mult ( const Table A,
const Table B 
)

Definition at line 546 of file table.cpp.

◆ Mult() [4/7]

BlockMatrix * mfem::Mult ( const BlockMatrix A,
const BlockMatrix B 
)

Multiply BlockMatrix matrices: result = A*B.

Definition at line 685 of file blockmatrix.cpp.

◆ Mult() [5/7]

void mfem::Mult ( const DenseMatrix b,
const DenseMatrix c,
DenseMatrix a 
)

Matrix matrix multiplication. A = B * C.

Definition at line 2390 of file densemat.cpp.

◆ Mult() [6/7]

SparseMatrix * mfem::Mult ( const SparseMatrix A,
const SparseMatrix B,
SparseMatrix OAB = NULL 
)

Matrix product A.B.

If OAB is not NULL, we assume it has the structure of A.B and store the result in OAB. If OAB is NULL, we create a new SparseMatrix to store the result and return a pointer to it.

All matrices must be finalized.

Definition at line 3639 of file sparsemat.cpp.

◆ Mult() [7/7]

DenseMatrix * mfem::Mult ( const SparseMatrix A,
DenseMatrix B 
)

Matrix product A.B.

Definition at line 3872 of file sparsemat.cpp.

◆ Mult_1_2()

template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void mfem::Mult_1_2 ( const A_layout_t &  A_layout,
const A_data_t &  A_data,
const B_layout_t &  B_layout,
const B_data_t &  B_data,
const C_layout_t &  C_layout,
C_data_t &  C_data 
)
inline

Definition at line 437 of file ttensor.hpp.

◆ Mult_2_1()

template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void mfem::Mult_2_1 ( const A_layout_t &  A_layout,
const A_data_t &  A_data,
const B_layout_t &  B_layout,
const B_data_t &  B_data,
const C_layout_t &  C_layout,
C_data_t &  C_data 
)
inline

Definition at line 460 of file ttensor.hpp.

◆ Mult_a_AAt()

void mfem::Mult_a_AAt ( double  a,
const DenseMatrix A,
DenseMatrix AAt 
)

AAt = a * A * A^t.

Definition at line 3100 of file densemat.cpp.

◆ Mult_AB()

template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void mfem::Mult_AB ( const A_layout_t &  A_layout,
const A_data_t &  A_data,
const B_layout_t &  B_layout,
const B_data_t &  B_data,
const C_layout_t &  C_layout,
C_data_t &  C_data 
)
inline

Definition at line 230 of file tmatrix.hpp.

◆ Mult_AtDA()

SparseMatrix * mfem::Mult_AtDA ( const SparseMatrix A,
const Vector D,
SparseMatrix OAtDA 
)

Matrix multiplication A^t D A. All matrices must be finalized.

Definition at line 3930 of file sparsemat.cpp.

◆ MultAAt()

void mfem::MultAAt ( const DenseMatrix a,
DenseMatrix aat 
)

Calculate the matrix A.At.

Definition at line 2699 of file densemat.cpp.

◆ MultAbstractSparseMatrix()

SparseMatrix * mfem::MultAbstractSparseMatrix ( const AbstractSparseMatrix A,
const AbstractSparseMatrix B 
)

Matrix product of sparse matrices. A and B do not need to be CSR matrices.

Definition at line 3775 of file sparsemat.cpp.

◆ MultABt()

void mfem::MultABt ( const DenseMatrix A,
const DenseMatrix B,
DenseMatrix ABt 
)

Multiply a matrix A with the transpose of a matrix B: A*Bt.

Definition at line 2761 of file densemat.cpp.

◆ MultADAt()

void mfem::MultADAt ( const DenseMatrix A,
const Vector D,
DenseMatrix ADAt 
)

ADAt = A D A^t, where D is diagonal.

Definition at line 2745 of file densemat.cpp.

◆ MultADBt()

void mfem::MultADBt ( const DenseMatrix A,
const Vector D,
const DenseMatrix B,
DenseMatrix ADBt 
)

ADBt = A D B^t, where D is diagonal.

Definition at line 2826 of file densemat.cpp.

◆ MultAtB() [1/2]

ComplexDenseMatrix * mfem::MultAtB ( const ComplexDenseMatrix A,
const ComplexDenseMatrix B 
)

Multiply the complex conjugate transpose of a matrix A with a matrix B. A^H*B.

Definition at line 328 of file complex_densemat.cpp.

◆ MultAtB() [2/2]

void mfem::MultAtB ( const DenseMatrix A,
const DenseMatrix B,
DenseMatrix AtB 
)

Multiply the transpose of a matrix A with a matrix B: At*B.

Definition at line 3018 of file densemat.cpp.

◆ MultVVt()

void mfem::MultVVt ( const Vector v,
DenseMatrix vvt 
)

Make a matrix from a vector V.Vt.

Definition at line 3116 of file densemat.cpp.

◆ MultVWt()

void mfem::MultVWt ( const Vector v,
const Vector w,
DenseMatrix VWt 
)

Definition at line 3127 of file densemat.cpp.

◆ NewCut()

std::shared_ptr< Cut > mfem::NewCut ( const int  dim)

Create a new cut object based on the spatial dimension

Parameters
dimthe spatial dimension

Definition at line 436 of file cut.cpp.

◆ OccaDev()

occa::device & mfem::OccaDev ( )

Return the default occa::device used by MFEM.

Definition at line 27 of file occa.cpp.

◆ OccaMemoryRead()

template<typename T >
const occa::memory mfem::OccaMemoryRead ( const Memory< T > &  mem,
size_t  size 
)

Wrap a Memory object as occa::memory for read only access with the mfem::Device MemoryClass. The returned occa::memory is associated with the default occa::device used by MFEM.

Definition at line 37 of file occa.hpp.

◆ OccaMemoryReadWrite()

template<typename T >
occa::memory mfem::OccaMemoryReadWrite ( Memory< T > &  mem,
size_t  size 
)

Wrap a Memory object as occa::memory for read-write access with the mfem::Device MemoryClass. The returned occa::memory is associated with the default occa::device used by MFEM.

Definition at line 59 of file occa.hpp.

◆ OccaMemoryWrap()

occa::memory mfem::OccaMemoryWrap ( void *  ptr,
std::size_t  bytes 
)

Wrap a pointer as occa::memory with the default occa::device used by MFEM.

It is assumed that ptr is suitable for use with the current mfem::Device configuration.

Definition at line 29 of file occa.cpp.

◆ OccaMemoryWrite()

template<typename T >
occa::memory mfem::OccaMemoryWrite ( Memory< T > &  mem,
size_t  size 
)

Wrap a Memory object as occa::memory for write only access with the mfem::Device MemoryClass. The returned occa::memory is associated with the default occa::device used by MFEM.

Definition at line 48 of file occa.hpp.

◆ OmpWrap()

template<typename HBODY >
void mfem::OmpWrap ( const int  N,
HBODY &&  h_body 
)

OpenMP backend.

Definition at line 206 of file forall.hpp.

◆ operator &()

int mfem::operator& ( CoefficientStorage  a,
CoefficientStorage  b 
)
inline

Definition at line 2301 of file coefficient.hpp.

◆ operator!=()

template<class T >
bool mfem::operator!= ( const Array< T > &  LHS,
const Array< T > &  RHS 
)
inline

Definition at line 343 of file array.hpp.

◆ operator*() [1/5]

MemoryClass mfem::operator* ( MemoryClass  mc1,
MemoryClass  mc2 
)

Return a suitable MemoryClass from a pair of MemoryClasses.

Note: this operation is commutative, i.e. a*b = b*a, associative, i.e. (a*b)*c = a*(b*c), and has an identity element: MemoryClass::HOST.

Currently, the operation is defined as a*b := max(a,b) where the max operation is based on the enumeration ordering:

HOST < HOST_32 < HOST_64 < DEVICE < MANAGED.

Definition at line 130 of file mem_manager.cpp.

◆ operator*() [2/5]

MFEM_ALWAYS_INLINE AutoSIMD< double, 2, 16 > mfem::operator* ( const double &  e,
const AutoSIMD< double, 2, 16 > &  v 
)
inline

Definition at line 241 of file m128.hpp.

◆ operator*() [3/5]

MFEM_ALWAYS_INLINE AutoSIMD< double, 8, 64 > mfem::operator* ( const double &  e,
const AutoSIMD< double, 8, 64 > &  v 
)
inline

Definition at line 244 of file m512.hpp.

◆ operator*() [4/5]

__ATTRS_ai AutoSIMD< double, 4, 32 > mfem::operator* ( const double &  e,
const AutoSIMD< double, 4, 32 > &  v 
)
inline

Definition at line 251 of file m256.hpp.

◆ operator*() [5/5]

template<typename scalar_t , int S, int A>
MFEM_ALWAYS_INLINE AutoSIMD<scalar_t,S,A> mfem::operator* ( const scalar_t &  e,
const AutoSIMD< scalar_t, S, A > &  v 
)
inline

Definition at line 260 of file auto.hpp.

◆ operator+() [1/4]

MFEM_ALWAYS_INLINE AutoSIMD< double, 2, 16 > mfem::operator+ ( const double &  e,
const AutoSIMD< double, 2, 16 > &  v 
)
inline

Definition at line 223 of file m128.hpp.

◆ operator+() [2/4]

MFEM_ALWAYS_INLINE AutoSIMD< double, 8, 64 > mfem::operator+ ( const double &  e,
const AutoSIMD< double, 8, 64 > &  v 
)
inline

Definition at line 226 of file m512.hpp.

◆ operator+() [3/4]

__ATTRS_ai AutoSIMD< double, 4, 32 > mfem::operator+ ( const double &  e,
const AutoSIMD< double, 4, 32 > &  v 
)
inline

Definition at line 233 of file m256.hpp.

◆ operator+() [4/4]

template<typename scalar_t , int S, int A>
MFEM_ALWAYS_INLINE AutoSIMD<scalar_t,S,A> mfem::operator+ ( const scalar_t &  e,
const AutoSIMD< scalar_t, S, A > &  v 
)
inline

Definition at line 238 of file auto.hpp.

◆ operator-() [1/4]

MFEM_ALWAYS_INLINE AutoSIMD< double, 2, 16 > mfem::operator- ( const double &  e,
const AutoSIMD< double, 2, 16 > &  v 
)
inline

Definition at line 232 of file m128.hpp.

◆ operator-() [2/4]

MFEM_ALWAYS_INLINE AutoSIMD< double, 8, 64 > mfem::operator- ( const double &  e,
const AutoSIMD< double, 8, 64 > &  v 
)
inline

Definition at line 235 of file m512.hpp.

◆ operator-() [3/4]

__ATTRS_ai AutoSIMD< double, 4, 32 > mfem::operator- ( const double &  e,
const AutoSIMD< double, 4, 32 > &  v 
)
inline

Definition at line 242 of file m256.hpp.

◆ operator-() [4/4]

template<typename scalar_t , int S, int A>
MFEM_ALWAYS_INLINE AutoSIMD<scalar_t,S,A> mfem::operator- ( const scalar_t &  e,
const AutoSIMD< scalar_t, S, A > &  v 
)
inline

Definition at line 249 of file auto.hpp.

◆ operator/() [1/4]

MFEM_ALWAYS_INLINE AutoSIMD< double, 2, 16 > mfem::operator/ ( const double &  e,
const AutoSIMD< double, 2, 16 > &  v 
)
inline

Definition at line 250 of file m128.hpp.

◆ operator/() [2/4]

MFEM_ALWAYS_INLINE AutoSIMD< double, 8, 64 > mfem::operator/ ( const double &  e,
const AutoSIMD< double, 8, 64 > &  v 
)
inline

Definition at line 253 of file m512.hpp.

◆ operator/() [3/4]

__ATTRS_ai AutoSIMD< double, 4, 32 > mfem::operator/ ( const double &  e,
const AutoSIMD< double, 4, 32 > &  v 
)
inline

Definition at line 260 of file m256.hpp.

◆ operator/() [4/4]

template<typename scalar_t , int S, int A>
MFEM_ALWAYS_INLINE AutoSIMD<scalar_t,S,A> mfem::operator/ ( const scalar_t &  e,
const AutoSIMD< scalar_t, S, A > &  v 
)
inline

Definition at line 271 of file auto.hpp.

◆ operator<() [1/4]

template<class A , class B >
bool mfem::operator< ( const Pair< A, B > &  p,
const Pair< A, B > &  q 
)

Comparison operator for class Pair, based on the first element only.

Definition at line 36 of file sort_pairs.hpp.

◆ operator<() [2/4]

template<class A , class B , class C >
bool mfem::operator< ( const Triple< A, B, C > &  p,
const Triple< A, B, C > &  q 
)

Lexicographic comparison operator for class Triple.

Definition at line 72 of file sort_pairs.hpp.

◆ operator<() [3/4]

bool mfem::operator< ( const ParNCMesh::CommGroup lhs,
const ParNCMesh::CommGroup rhs 
)

Definition at line 368 of file pncmesh.cpp.

◆ operator<() [4/4]

bool mfem::operator< ( const NCMesh::MeshId a,
const NCMesh::MeshId b 
)
inline

Definition at line 551 of file pncmesh.hpp.

◆ operator<<() [1/5]

std::ostream& mfem::operator<< ( std::ostream &  os,
SparseMatrix const &  mat 
)
inline

Definition at line 711 of file sparsemat.hpp.

◆ operator<<() [2/5]

std::ostream & mfem::operator<< ( std::ostream &  out,
const QuadratureFunction qf 
)

Overload operator<< for std::ostream and QuadratureFunction.

Definition at line 111 of file qfunction.cpp.

◆ operator<<() [3/5]

std::ostream & mfem::operator<< ( std::ostream &  os,
const Mesh::FaceInformation info 
)

Print function for Mesh::FaceInformation.

Definition at line 1311 of file mesh.cpp.

◆ operator<<() [4/5]

std::ostream & mfem::operator<< ( std::ostream &  out,
const GridFunction sol 
)

Overload operator<< for std::ostream and GridFunction; valid also for the derived class ParGridFunction

Definition at line 3930 of file gridfunc.cpp.

◆ operator<<() [5/5]

std::ostream & mfem::operator<< ( std::ostream &  out,
const Mesh mesh 
)

Overload operator<< for std::ostream and Mesh; valid also for the derived class ParMesh

Definition at line 12310 of file mesh.cpp.

◆ operator==() [1/3]

template<class A , class B >
bool mfem::operator== ( const Pair< A, B > &  p,
const Pair< A, B > &  q 
)

Equality operator for class Pair, based on the first element only.

Definition at line 43 of file sort_pairs.hpp.

◆ operator==() [2/3]

template<class T >
bool mfem::operator== ( const Array< T > &  LHS,
const Array< T > &  RHS 
)
inline

Definition at line 332 of file array.hpp.

◆ operator==() [3/3]

bool mfem::operator== ( const NCMesh::MeshId a,
const NCMesh::MeshId b 
)
inline

Definition at line 557 of file pncmesh.hpp.

◆ operator|()

CoefficientStorage mfem::operator| ( CoefficientStorage  a,
CoefficientStorage  b 
)
inline

Definition at line 2296 of file coefficient.hpp.

◆ order_multiplier()

int mfem::order_multiplier ( const Geometry::Type  type,
const int  dim 
)

Definition at line 164 of file mortarassembler.cpp.

◆ Ordering::DofsToVDofs< Ordering::byNODES >()

template<>
void mfem::Ordering::DofsToVDofs< Ordering::byNODES > ( int  ndofs,
int  vdim,
Array< int > &  dofs 
)

Definition at line 29 of file fespace.cpp.

◆ Ordering::DofsToVDofs< Ordering::byVDIM >()

template<>
void mfem::Ordering::DofsToVDofs< Ordering::byVDIM > ( int  ndofs,
int  vdim,
Array< int > &  dofs 
)

Definition at line 44 of file fespace.cpp.

◆ Ordering::Map< Ordering::byNODES >()

template<>
int mfem::Ordering::Map< Ordering::byNODES > ( int  ndofs,
int  vdim,
int  dof,
int  vd 
)
inline

Definition at line 59 of file fespace.hpp.

◆ Ordering::Map< Ordering::byVDIM >()

template<>
int mfem::Ordering::Map< Ordering::byVDIM > ( int  ndofs,
int  vdim,
int  dof,
int  vd 
)
inline

Definition at line 66 of file fespace.hpp.

◆ OuterProduct() [1/4]

DenseMatrix * mfem::OuterProduct ( const DenseMatrix A,
const DenseMatrix B 
)

Produces a block matrix with blocks A_{ij}*B.

Definition at line 4074 of file sparsemat.cpp.

◆ OuterProduct() [2/4]

SparseMatrix * mfem::OuterProduct ( const DenseMatrix A,
const SparseMatrix B 
)

Produces a block matrix with blocks A_{ij}*B.

Definition at line 4092 of file sparsemat.cpp.

◆ OuterProduct() [3/4]

SparseMatrix * mfem::OuterProduct ( const SparseMatrix A,
const DenseMatrix B 
)

Produces a block matrix with blocks A_{ij}*B.

Definition at line 4121 of file sparsemat.cpp.

◆ OuterProduct() [4/4]

SparseMatrix * mfem::OuterProduct ( const SparseMatrix A,
const SparseMatrix B 
)

Produces a block matrix with blocks A_{ij}*B.

Definition at line 4150 of file sparsemat.cpp.

◆ ParAdd()

HypreParMatrix * mfem::ParAdd ( const HypreParMatrix A,
const HypreParMatrix B 
)

Returns the matrix A + B.

It is assumed that both matrices use the same row and column partitions and the same col_map_offd arrays.

Definition at line 2813 of file hypre.cpp.

◆ ParBuildNormalConstraints()

SparseMatrix * mfem::ParBuildNormalConstraints ( ParFiniteElementSpace fespace,
Array< int > &  constrained_att,
Array< int > &  constraint_rowstarts 
)

Parallel wrapper for BuildNormalConstraints.

Definition at line 947 of file constraints.cpp.

◆ ParCSRRelax_FIR()

int mfem::ParCSRRelax_FIR ( hypre_ParCSRMatrix *  A,
hypre_ParVector *  f,
double  max_eig,
int  poly_order,
double *  fir_coeffs,
hypre_ParVector *  u,
hypre_ParVector *  x0,
hypre_ParVector *  x1,
hypre_ParVector *  x2,
hypre_ParVector *  x3 
)

Definition at line 3305 of file hypre.cpp.

◆ ParCSRRelax_Taubin()

int mfem::ParCSRRelax_Taubin ( hypre_ParCSRMatrix *  A,
hypre_ParVector *  f,
double  lambda,
double  mu,
int  N,
double  max_eig,
hypre_ParVector *  u,
hypre_ParVector *  r 
)

Definition at line 3268 of file hypre.cpp.

◆ ParMult() [1/2]

PetscParMatrix * mfem::ParMult ( const PetscParMatrix A,
const PetscParMatrix B 
)

Returns the matrix A * B.

Definition at line 2219 of file petsc.cpp.

◆ ParMult() [2/2]

HypreParMatrix * mfem::ParMult ( const HypreParMatrix A,
const HypreParMatrix B,
bool  own_matrix = false 
)

Returns the matrix A * B. Returned matrix does not necessarily own row or column starts unless the bool own_matrix is set to true.

Definition at line 2853 of file hypre.cpp.

◆ ParNormlp()

double mfem::ParNormlp ( const Vector vec,
double  p,
MPI_Comm  comm 
)

Compute the l_p norm of the Vector which is split without overlap across the given communicator.

Definition at line 425 of file hypre.cpp.

◆ parseArray()

void mfem::parseArray ( char *  str,
Array< int > &  var 
)

Definition at line 117 of file optparser.cpp.

◆ parseVector()

void mfem::parseVector ( char *  str,
Vector var 
)

Definition at line 128 of file optparser.cpp.

◆ PCG()

void mfem::PCG ( const Operator A,
Solver B,
const Vector b,
Vector x,
int  print_iter,
int  max_num_iter,
double  RTOLERANCE,
double  ATOLERANCE 
)

Preconditioned conjugate gradient method. (tolerances are squared)

Definition at line 913 of file solvers.cpp.

◆ PermuteFaceL2()

int mfem::PermuteFaceL2 ( const int  dim,
const int  face_id1,
const int  face_id2,
const int  orientation,
const int  size1d,
const int  index 
)

Compute the dof face index of elem2 corresponding to the given dof face index.

Parameters
[in]dimThe dimension of the element, 2 for quad, 3 for hex
[in]face_id1The local face identifier of elem1
[in]face_id2The local face identifier of elem2
[in]orientationThe orientation of elem2 relative to elem1 on the face
[in]size1dThe 1D number of degrees of freedom for each dimension
[in]indexThe dof index on elem1
Returns
The dof index on elem2 facing the dof on elem1

Definition at line 1013 of file restriction.cpp.

◆ PrismFaceBottom()

bool mfem::PrismFaceBottom ( int  node,
int *  n 
)
inline

Definition at line 675 of file ncmesh.cpp.

◆ PrismFaceTop()

bool mfem::PrismFaceTop ( int  node,
int *  n 
)
inline

Definition at line 678 of file ncmesh.cpp.

◆ ProjectLORCoefficient()

template<typename INTEGRATOR >
void mfem::ProjectLORCoefficient ( BilinearForm a,
CoefficientVector coeff_vector 
)

Definition at line 150 of file lor_batched.hpp.

◆ RajaCuWrap1D()

template<const int BLOCKS = MFEM_CUDA_BLOCKS, typename DBODY >
void mfem::RajaCuWrap1D ( const int  N,
DBODY &&  d_body 
)

Definition at line 243 of file forall.hpp.

◆ RajaCuWrap2D()

template<typename DBODY >
void mfem::RajaCuWrap2D ( const int  N,
DBODY &&  d_body,
const int  X,
const int  Y,
const int  BZ 
)

Definition at line 250 of file forall.hpp.

◆ RajaCuWrap3D()

template<typename DBODY >
void mfem::RajaCuWrap3D ( const int  N,
DBODY &&  d_body,
const int  X,
const int  Y,
const int  Z,
const int  G 
)

Definition at line 285 of file forall.hpp.

◆ RajaHipWrap1D()

template<const int BLOCKS = MFEM_HIP_BLOCKS, typename DBODY >
void mfem::RajaHipWrap1D ( const int  N,
DBODY &&  d_body 
)

Definition at line 345 of file forall.hpp.

◆ RajaHipWrap2D()

template<typename DBODY >
void mfem::RajaHipWrap2D ( const int  N,
DBODY &&  d_body,
const int  X,
const int  Y,
const int  BZ 
)

Definition at line 352 of file forall.hpp.

◆ RajaHipWrap3D()

template<typename DBODY >
void mfem::RajaHipWrap3D ( const int  N,
DBODY &&  d_body,
const int  X,
const int  Y,
const int  Z,
const int  G 
)

Definition at line 387 of file forall.hpp.

◆ RajaOmpWrap()

template<typename HBODY >
void mfem::RajaOmpWrap ( const int  N,
HBODY &&  h_body 
)

RAJA OpenMP backend.

Definition at line 449 of file forall.hpp.

◆ RajaSeqWrap()

template<typename HBODY >
void mfem::RajaSeqWrap ( const int  N,
HBODY &&  h_body 
)

RAJA sequential loop backend.

Definition at line 459 of file forall.hpp.

◆ RAP() [1/11]

PetscParMatrix * mfem::RAP ( PetscParMatrix Rt,
PetscParMatrix A,
PetscParMatrix P 
)

Returns the matrix Rt^t * A * P.

Definition at line 2102 of file petsc.cpp.

◆ RAP() [2/11]

PetscParMatrix * mfem::RAP ( PetscParMatrix A,
PetscParMatrix P 
)

Returns the matrix P^t * A * P.

Definition at line 2199 of file petsc.cpp.

◆ RAP() [3/11]

PetscParMatrix * mfem::RAP ( HypreParMatrix hA,
PetscParMatrix P 
)

Returns the matrix P^t * A * P.

Definition at line 2205 of file petsc.cpp.

◆ RAP() [4/11]

HypreParMatrix * mfem::RAP ( const HypreParMatrix A,
const HypreParMatrix P 
)

Returns the matrix P^t * A * P.

Definition at line 2874 of file hypre.cpp.

◆ RAP() [5/11]

HypreParMatrix * mfem::RAP ( const HypreParMatrix Rt,
const HypreParMatrix A,
const HypreParMatrix P 
)

Returns the matrix Rt^t * A * P.

Definition at line 2920 of file hypre.cpp.

◆ RAP() [6/11]

void mfem::RAP ( const DenseMatrix A,
const DenseMatrix P,
DenseMatrix RAP 
)

Computes matrix P^t * A * P. Note: The RAP matrix will be resized to accommodate the data

Definition at line 3232 of file densemat.cpp.

◆ RAP() [7/11]

void mfem::RAP ( const DenseMatrix Rt,
const DenseMatrix A,
const DenseMatrix P,
DenseMatrix RAP 
)

Computes the matrix Rt^t * A * P. Note: The RAP matrix will be resized to accommodate the data

Definition at line 3240 of file densemat.cpp.

◆ RAP() [8/11]

DenseMatrix * mfem::RAP ( const SparseMatrix A,
DenseMatrix P 
)

RAP matrix product (with R=P^T)

Definition at line 3885 of file sparsemat.cpp.

◆ RAP() [9/11]

DenseMatrix * mfem::RAP ( DenseMatrix A,
const SparseMatrix P 
)

RAP matrix product (with R=P^T)

Definition at line 3895 of file sparsemat.cpp.

◆ RAP() [10/11]

SparseMatrix * mfem::RAP ( const SparseMatrix A,
const SparseMatrix R,
SparseMatrix ORAP = NULL 
)

RAP matrix product (with P=R^T). ORAP is like OAB above. All matrices must be finalized.

Definition at line 3908 of file sparsemat.cpp.

◆ RAP() [11/11]

SparseMatrix * mfem::RAP ( const SparseMatrix Rt,
const SparseMatrix A,
const SparseMatrix P 
)

General RAP with given R^T, A and P.

Definition at line 3919 of file sparsemat.cpp.

◆ Read()

template<typename T >
const T* mfem::Read ( const Memory< T > &  mem,
int  size,
bool  on_dev = true 
)
inline

Get a pointer for read access to mem with the mfem::Device's DeviceMemoryClass, if on_dev = true, or the mfem::Device's HostMemoryClass, otherwise.

Also, if on_dev = true, the device flag of mem will be set.

Definition at line 319 of file device.hpp.

◆ ReadWrite()

template<typename T >
T* mfem::ReadWrite ( Memory< T > &  mem,
int  size,
bool  on_dev = true 
)
inline

Get a pointer for read+write access to mem with the mfem::Device's DeviceMemoryClass, if on_dev = true, or the mfem::Device's HostMemoryClass, otherwise.

Also, if on_dev = true, the device flag of mem will be set.

Definition at line 353 of file device.hpp.

◆ Reciprocal()

void mfem::Reciprocal ( Vector x)

Replace x[i] with 1.0/x[i] for all i.

Definition at line 20 of file hdiv_linear_solver.cpp.

◆ RefinedToCoarse()

ElementTransformation* mfem::RefinedToCoarse ( Mesh coarse_mesh,
const ElementTransformation T,
const IntegrationPoint ip,
IntegrationPoint coarse_ip 
)

Definition at line 27 of file coefficient.cpp.

◆ ReorderRanksZCurve()

MPI_Comm mfem::ReorderRanksZCurve ( MPI_Comm  comm)

Reorder MPI ranks to follow the Z-curve within the physical machine topology (provided that functions to query physical node coordinates are available). Returns a new communicator with reordered ranks.

Definition at line 1370 of file communication.cpp.

◆ Reshape()

template<typename T , typename... Dims>
MFEM_HOST_DEVICE DeviceTensor<sizeof...(Dims),T> mfem::Reshape ( T *  ptr,
Dims...  dims 
)
inline

Wrap a pointer as a DeviceTensor with automatically deduced template parameters.

Definition at line 131 of file dtensor.hpp.

◆ Revolve3D()

NURBSPatch* mfem::Revolve3D ( NURBSPatch patch,
double  n[],
double  ang,
int  times 
)
Note
The returned object should be deleted by the caller.

Definition at line 1445 of file nurbs.cpp.

◆ set_error_action()

void mfem::set_error_action ( ErrorAction  action)

Set the action MFEM takes when an error is encountered.

Definition at line 49 of file error.cpp.

◆ SetGlobalMPI_Comm()

void mfem::SetGlobalMPI_Comm ( MPI_Comm  comm)

Set MFEM's "global" MPI communicator.

Definition at line 67 of file globals.cpp.

◆ ShiftRight()

void mfem::ShiftRight ( int &  a,
int &  b,
int &  c 
)
inline

Definition at line 2312 of file mesh.hpp.

◆ sigmoid()

double mfem::sigmoid ( double  x)

Sigmoid function.

Definition at line 20 of file ex37.hpp.

◆ skip_comment_lines()

void mfem::skip_comment_lines ( std::istream &  is,
const char  comment_char 
)
inline

Check if the stream starts with comment_char. If so skip it.

Definition at line 31 of file text.hpp.

◆ SLI() [1/2]

void mfem::SLI ( const Operator A,
const Vector b,
Vector x,
int  print_iter,
int  max_num_iter,
double  RTOLERANCE,
double  ATOLERANCE 
)

Stationary linear iteration. (tolerances are squared)

Definition at line 677 of file solvers.cpp.

◆ SLI() [2/2]

void mfem::SLI ( const Operator A,
Solver B,
const Vector b,
Vector x,
int  print_iter,
int  max_num_iter,
double  RTOLERANCE,
double  ATOLERANCE 
)

Preconditioned stationary linear iteration. (tolerances are squared)

Definition at line 692 of file solvers.cpp.

◆ sMult_AB()

template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void mfem::sMult_AB ( const A_layout_t &  A_layout,
const A_data_t &  A_data,
const B_layout_t &  B_layout,
const B_data_t &  B_data,
const C_layout_t &  C_layout,
C_data_t &  C_data 
)
inline

Definition at line 40 of file tmatrix.hpp.

◆ Sort3()

void mfem::Sort3 ( int &  r,
int &  c,
int &  f 
)
inline

Definition at line 34 of file stable3d.cpp.

◆ SortPairs()

template<class A , class B >
void mfem::SortPairs ( Pair< A, B > *  pairs,
int  size 
)

Sort an array of Pairs with respect to the first element.

Definition at line 50 of file sort_pairs.hpp.

◆ SortTriple()

template<class A , class B , class C >
void mfem::SortTriple ( Triple< A, B, C > *  triples,
int  size 
)

Lexicographic sort for arrays of class Triple.

Definition at line 81 of file sort_pairs.hpp.

◆ SparseMatrixFunction()

void mfem::SparseMatrixFunction ( SparseMatrix S,
double(*)(double)  f 
)

Applies f() to each element of the matrix (after it is finalized).

Definition at line 3495 of file sparsemat.cpp.

◆ StealPointer()

template<typename T >
T* mfem::StealPointer ( T *&  ptr)

Definition at line 95 of file lor_ams.hpp.

◆ SubcellIntegrals()

void mfem::SubcellIntegrals ( int  n,
const Poly_1D::Basis basis,
Array< double > &  B 
)

Definition at line 36 of file change_basis.cpp.

◆ subtract() [1/2]

void mfem::subtract ( const Vector x,
const Vector y,
Vector z 
)

Definition at line 473 of file vector.cpp.

◆ subtract() [2/2]

void mfem::subtract ( const double  a,
const Vector x,
const Vector y,
Vector z 
)

Definition at line 502 of file vector.cpp.

◆ Swap() [1/4]

template<class T >
void mfem::Swap ( Array< T > &  a,
Array< T > &  b 
)
inline

Definition at line 638 of file array.hpp.

◆ Swap() [2/4]

template<class T >
void mfem::Swap ( Array2D< T > &  a,
Array2D< T > &  b 
)
inline

Definition at line 953 of file array.hpp.

◆ Swap() [3/4]

template<class T >
void mfem::Swap ( T &  a,
T &  b 
)
inline

inlines ///

Definition at line 630 of file array.hpp.

◆ Swap() [4/4]

void mfem::Swap ( CoarseFineTransformations a,
CoarseFineTransformations b 
)

Definition at line 4728 of file ncmesh.cpp.

◆ Swap< SparseMatrix >()

template<>
void mfem::Swap< SparseMatrix > ( SparseMatrix a,
SparseMatrix b 
)
inline

Specialization of the template function Swap<> for class SparseMatrix.

Definition at line 931 of file sparsemat.hpp.

◆ Swap< Table >()

template<>
void mfem::Swap< Table > ( Table a,
Table b 
)
inline

Specialization of the template function Swap<> for class Table.

Definition at line 201 of file table.hpp.

◆ Swap< Vector >()

template<>
void mfem::Swap< Vector > ( Vector a,
Vector b 
)
inline

Specialization of the template function Swap<> for class Vector.

Definition at line 626 of file vector.hpp.

◆ TAdjDet()

template<typename scalar_t , typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
scalar_t mfem::TAdjDet ( const A_layout_t &  a,
const A_data_t &  A,
const B_layout_t &  b,
B_data_t &  B 
)
inline

Definition at line 649 of file tmatrix.hpp.

◆ TAdjDetHD()

template<typename scalar_t , typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
MFEM_HOST_DEVICE scalar_t mfem::TAdjDetHD ( const A_layout_t &  a,
const A_data_t &  A,
const B_layout_t &  b,
B_data_t &  B 
)
inline

Definition at line 664 of file tmatrix.hpp.

◆ TAdjugate()

template<typename scalar_t , typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
void mfem::TAdjugate ( const A_layout_t &  a,
const A_data_t &  A,
const B_layout_t &  b,
B_data_t &  B 
)
inline

Definition at line 620 of file tmatrix.hpp.

◆ TAdjugateHD()

template<typename scalar_t , typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
MFEM_HOST_DEVICE void mfem::TAdjugateHD ( const A_layout_t &  a,
const A_data_t &  A,
const B_layout_t &  b,
B_data_t &  B 
)
inline

Definition at line 635 of file tmatrix.hpp.

◆ TAssign() [1/2]

template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename scalar_t >
void mfem::TAssign ( const A_layout_t &  A_layout,
A_data_t &  A_data,
const scalar_t  value 
)
inline

Definition at line 252 of file ttensor.hpp.

◆ TAssign() [2/2]

template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t >
void mfem::TAssign ( const A_layout_t &  A_layout,
A_data_t &  A_data,
const B_layout_t &  B_layout,
const B_data_t &  B_data 
)
inline

Definition at line 277 of file ttensor.hpp.

◆ TAssignHD()

template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename scalar_t >
MFEM_HOST_DEVICE void mfem::TAssignHD ( const A_layout_t &  A_layout,
A_data_t &  A_data,
const scalar_t  value 
)
inline

Definition at line 264 of file ttensor.hpp.

◆ TDet() [1/2]

template<typename scalar_t , typename layout_t , typename data_t >
scalar_t mfem::TDet ( const layout_t &  a,
const data_t &  A 
)
inline

Definition at line 573 of file tmatrix.hpp.

◆ TDet() [2/2]

template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename D_data_t >
void mfem::TDet ( const A_layout_t &  a,
const A_data_t &  A,
D_data_t &  D 
)
inline

Definition at line 604 of file tmatrix.hpp.

◆ TDetHD()

template<typename scalar_t , typename layout_t , typename data_t >
MFEM_HOST_DEVICE scalar_t mfem::TDetHD ( const layout_t &  a,
const data_t &  A 
)
inline

Definition at line 588 of file tmatrix.hpp.

◆ TensorAssemble() [1/2]

template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void mfem::TensorAssemble ( const A_layout_t &  A_layout,
const A_data_t &  A_data,
const B_layout_t &  B_layout,
const B_data_t &  B_data,
const C_layout_t &  C_layout,
C_data_t &  C_data 
)
inline

Definition at line 477 of file ttensor.hpp.

◆ TensorAssemble() [2/2]

template<bool Add, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t , typename D_layout_t , typename D_data_t >
MFEM_ALWAYS_INLINE void mfem::TensorAssemble ( const A_layout_t &  A_layout,
const A_data_t &  A_data,
const B_layout_t &  B_layout,
const B_data_t &  B_data,
const C_layout_t &  C_layout,
const C_data_t &  C_data,
const D_layout_t &  D_layout,
D_data_t &  D_data 
)
inline

Definition at line 552 of file ttensor.hpp.

◆ TensorProduct()

template<AssignOp::Type Op, typename A_layout_t , typename A_data_t , typename B_layout_t , typename B_data_t , typename C_layout_t , typename C_data_t >
MFEM_ALWAYS_INLINE void mfem::TensorProduct ( const A_layout_t &  a,
const A_data_t &  A,
const B_layout_t &  b,
const B_data_t &  B,
const C_layout_t &  c,
C_data_t &  C 
)
inline

Definition at line 643 of file ttensor.hpp.

◆ TensorProductLegendre()

void mfem::TensorProductLegendre ( int  dim,
int  order,
const Vector x_in,
const Vector xmax,
const Vector xmin,
Vector poly,
double  angle = 0.0,
const Vector midpoint = NULL 
)

Defines the global tensor product polynomial space used by NewZZErorrEstimator.

See BoundingBox(...) for a description of angle and midpoint

Definition at line 4096 of file gridfunc.cpp.

◆ tic()

void mfem::tic ( )

Start the tic_toc timer.

Definition at line 449 of file tic_toc.cpp.

◆ to_hex()

constexpr char mfem::to_hex ( unsigned char  u)
inline

Definition at line 55 of file hash.cpp.

◆ to_int()

int mfem::to_int ( const std::string &  str)
inline

Convert a string to an int.

Definition at line 62 of file text.hpp.

◆ to_padded_string()

std::string mfem::to_padded_string ( int  i,
int  digits 
)
inline

Convert an integer to a 0-padded string with the given number of digits.

Definition at line 54 of file text.hpp.

◆ toc()

double mfem::toc ( )

End timing and return the time from tic() to toc() in seconds.

Definition at line 455 of file tic_toc.cpp.

◆ ToLexOrdering()

int mfem::ToLexOrdering ( const int  dim,
const int  face_id,
const int  size1d,
const int  index 
)

Convert a dof face index from Native ordering to lexicographic ordering for quads and hexes.

Parameters
[in]dimThe dimension of the element, 2 for quad, 3 for hex
[in]face_idThe local face identifier
[in]size1dThe 1D number of degrees of freedom for each dimension
[in]indexThe native index on the face
Returns
The lexicographic index on the face

Definition at line 2067 of file restriction.cpp.

◆ TransformDual()

void mfem::TransformDual ( const DofTransformation ran_dof_trans,
const DofTransformation dom_dof_trans,
DenseMatrix elmat 
)

Transform a matrix of dual DoFs entries from different finite element spaces as computed by a BilinearFormIntegrator before summing into a MixedBilinearForm object.

Definition at line 40 of file doftrans.cpp.

◆ TransformPrimal()

void mfem::TransformPrimal ( const DofTransformation ran_dof_trans,
const DofTransformation dom_dof_trans,
DenseMatrix elmat 
)

Transform a matrix of DoFs entries from different finite element spaces as computed by a DiscreteInterpolator before copying into a DiscreteLinearOperator.

Definition at line 17 of file doftrans.cpp.

◆ TransformToReference()

void mfem::TransformToReference ( ElementTransformation Trans,
int  type,
const Vector physical_p,
const double &  w,
IntegrationPoint ref_p 
)

Definition at line 167 of file cut.cpp.

◆ Transpose() [1/6]

void mfem::Transpose ( const Array< double > &  B,
Array< double > &  Bt 
)

Definition at line 62 of file change_basis.cpp.

◆ Transpose() [2/6]

void mfem::Transpose ( const Table A,
Table At,
int  ncols_A_ 
)

Transpose a Table.

Definition at line 413 of file table.cpp.

◆ Transpose() [3/6]

Table * mfem::Transpose ( const Table A)

Definition at line 453 of file table.cpp.

◆ Transpose() [4/6]

void mfem::Transpose ( const Array< int > &  A,
Table At,
int  ncols_A_ 
)

Transpose an Array<int>

Definition at line 460 of file table.cpp.

◆ Transpose() [5/6]

BlockMatrix * mfem::Transpose ( const BlockMatrix A)

Transpose a BlockMatrix: result = A'.

Definition at line 667 of file blockmatrix.cpp.

◆ Transpose() [6/6]

SparseMatrix * mfem::Transpose ( const SparseMatrix A)

Transpose of a sparse matrix. A must be finalized.

Definition at line 3506 of file sparsemat.cpp.

◆ TransposeAbstractSparseMatrix()

SparseMatrix * mfem::TransposeAbstractSparseMatrix ( const AbstractSparseMatrix A,
int  useActualWidth 
)

Transpose of a sparse matrix. A does not need to be a CSR matrix.

Definition at line 3562 of file sparsemat.cpp.

◆ TransposeMult()

SparseMatrix * mfem::TransposeMult ( const SparseMatrix A,
const SparseMatrix B 
)

C = A^T B.

Definition at line 3767 of file sparsemat.cpp.

◆ TripleMatrixProduct()

PetscParMatrix * mfem::TripleMatrixProduct ( PetscParMatrix R,
PetscParMatrix A,
PetscParMatrix P 
)

Returns the matrix R * A * P.

Definition at line 2087 of file petsc.cpp.

◆ u()

double mfem::u ( const Vector xvec)

Definition at line 22 of file lor_mms.hpp.

◆ u_vec()

void mfem::u_vec ( const Vector xvec,
Vector u 
)

Definition at line 50 of file lor_mms.hpp.

◆ Update()

void mfem::Update ( Vector x,
int  k,
DenseMatrix h,
Vector s,
Array< Vector *> &  v 
)
inline

Definition at line 959 of file solvers.cpp.

◆ UsesTensorBasis()

bool mfem::UsesTensorBasis ( const FiniteElementSpace fes)
inline

Return true if the mesh contains only one topology and the elements are tensor elements.

Definition at line 1306 of file fespace.hpp.

◆ vis_tmop_metric_p()

void mfem::vis_tmop_metric_p ( int  order,
TMOP_QualityMetric qm,
const TargetConstructor tc,
ParMesh pmesh,
char *  title,
int  position 
)

Definition at line 879 of file tmop_tools.cpp.

◆ vis_tmop_metric_s()

void mfem::vis_tmop_metric_s ( int  order,
TMOP_QualityMetric qm,
const TargetConstructor tc,
Mesh mesh,
char *  title,
int  position 
)

Definition at line 907 of file tmop_tools.cpp.

◆ VTKByteOrder()

const char * mfem::VTKByteOrder ( )

Determine the byte order and return either "BigEndian" or "LittleEndian".

Definition at line 602 of file vtk.cpp.

◆ VTKTriangleDOFOffset()

int mfem::VTKTriangleDOFOffset ( int  ref,
int  i,
int  j 
)

Definition at line 281 of file vtk.cpp.

◆ WedgeToGmshPri()

int mfem::WedgeToGmshPri ( int  idx_in[],
int  ref 
)

Definition at line 216 of file gmsh.cpp.

◆ Write()

template<typename T >
T* mfem::Write ( Memory< T > &  mem,
int  size,
bool  on_dev = true 
)
inline

Get a pointer for write access to mem with the mfem::Device's DeviceMemoryClass, if on_dev = true, or the mfem::Device's HostMemoryClass, otherwise.

Also, if on_dev = true, the device flag of mem will be set.

Definition at line 336 of file device.hpp.

◆ WriteBase64WithSizeAndClear()

void mfem::WriteBase64WithSizeAndClear ( std::ostream &  os,
std::vector< char > &  buf,
int  compression_level 
)

Encode in base 64 (and potentially compress) the given data, write it to the output stream (with a header) and clear the buffer.

See also
WriteVTKEncodedCompressed.

Definition at line 654 of file vtk.cpp.

◆ WriteBinaryOrASCII()

template<typename T >
void mfem::WriteBinaryOrASCII ( std::ostream &  os,
std::vector< char > &  buf,
const T &  val,
const char *  suffix,
VTKFormat  format 
)

Write either ASCII data to the stream or binary data to the buffer depending on the given format.

If format is VTK::ASCII, write the canonical ASCII representation of val to the output stream. Subnormal floating point numbers are rounded to zero. Otherwise, append its raw binary data to the byte buffer buf.

Note that there are specializations for uint8_t (to write as a numeric value rather than a character), and for float and double values to use the precision specified by format.

Definition at line 147 of file vtk.hpp.

◆ WriteBinaryOrASCII< double >()

template<>
void mfem::WriteBinaryOrASCII< double > ( std::ostream &  os,
std::vector< char > &  buf,
const double &  val,
const char *  suffix,
VTKFormat  format 
)

Specialization of WriteBinaryOrASCII for double.

If format is equal to VTKFormat::BINARY32, val is converted to a float and written as 32 bits. Subnormals are rounded to zero in ASCII output.

Definition at line 626 of file vtk.cpp.

◆ WriteBinaryOrASCII< float >()

template<>
void mfem::WriteBinaryOrASCII< float > ( std::ostream &  os,
std::vector< char > &  buf,
const float &  val,
const char *  suffix,
VTKFormat  format 
)

Specialization of WriteBinaryOrASCII<T> for float.

If format is equal to VTKFormat::BINARY, val is converted to a double and written as 64 bits. Subnormals are rounded to zero in ASCII output.

Definition at line 645 of file vtk.cpp.

◆ WriteBinaryOrASCII< uint8_t >()

template<>
void mfem::WriteBinaryOrASCII< uint8_t > ( std::ostream &  os,
std::vector< char > &  buf,
const uint8_t &  val,
const char *  suffix,
VTKFormat  format 
)

Specialization of WriteBinaryOrASCII for uint8_t to ensure ASCII output is numeric (rather than interpreting val as a character.)

Definition at line 617 of file vtk.cpp.

◆ WriteVTKEncodedCompressed()

void mfem::WriteVTKEncodedCompressed ( std::ostream &  os,
const void *  bytes,
uint32_t  nbytes,
int  compression_level 
)

Outputs encoded binary data in the base 64 format needed by VTK.

The binary data will be base 64 encoded, and compressed if compression_level is not zero. The proper header will be prepended to the data.

Definition at line 559 of file vtk.cpp.

◆ XYZ_VectorFunction()

void mfem::XYZ_VectorFunction ( const Vector p,
Vector v 
)

Definition at line 5540 of file mesh.cpp.

◆ ZeroSubnormal()

template<typename T >
T mfem::ZeroSubnormal ( val)
inline

Definition at line 481 of file vector.hpp.

◆ ZZErrorEstimator()

double mfem::ZZErrorEstimator ( BilinearFormIntegrator blfi,
GridFunction u,
GridFunction flux,
Vector error_estimates,
Array< int > *  aniso_flags,
int  with_subdomains,
bool  with_coeff 
)

Definition at line 3998 of file gridfunc.cpp.

Variable Documentation

◆ DeviceMemoryType

constexpr int mfem::DeviceMemoryType = static_cast<int>(MemoryType::MANAGED)

Definition at line 63 of file mem_manager.hpp.

◆ DeviceMemoryTypeSize

constexpr int mfem::DeviceMemoryTypeSize = MemoryTypeSize - DeviceMemoryType

Definition at line 64 of file mem_manager.hpp.

◆ err

MFEM_EXPORT OutStream mfem::err

Global stream used by the library for standard error output. Initially it uses the same std::streambuf as std::cerr, however that can be changed.

See also
OutStream.

Definition at line 71 of file globals.hpp.

◆ Geometries

MFEM_EXPORT Geometry mfem::Geometries

Definition at line 49 of file fe.cpp.

◆ GlobGeometryRefiner

MFEM_EXPORT GeometryRefiner mfem::GlobGeometryRefiner

Definition at line 1773 of file geom.cpp.

◆ HASH_ALGORITHM

constexpr gnutls_digest_algorithm_t mfem::HASH_ALGORITHM = GNUTLS_DIG_SHA256

Definition at line 26 of file hash.cpp.

◆ HexahedronFE

MFEM_EXPORT class TriLinear3DFiniteElement mfem::HexahedronFE

Definition at line 52 of file hexahedron.cpp.

◆ HostMemoryType

constexpr int mfem::HostMemoryType = static_cast<int>(MemoryType::HOST)

Definition at line 61 of file mem_manager.hpp.

◆ HostMemoryTypeSize

constexpr int mfem::HostMemoryTypeSize = static_cast<int>(MemoryType::DEVICE)

Definition at line 62 of file mem_manager.hpp.

◆ IntRules

MFEM_EXPORT IntegrationRules mfem::IntRules

A global object with all integration rules (defined in intrules.cpp)

Definition at line 480 of file intrules.hpp.

◆ MemoryTypeName

MFEM_EXPORT const char * mfem::MemoryTypeName
Initial value:
=
{
"host-std", "host-32", "host-64", "host-debug", "host-umpire", "host-pinned",
#if defined(MFEM_USE_CUDA)
"cuda-uvm",
"cuda",
#elif defined(MFEM_USE_HIP)
"hip-uvm",
"hip",
#else
"managed",
"device",
#endif
"device-debug",
#if defined(MFEM_USE_CUDA)
"cuda-umpire",
"cuda-umpire-2",
#elif defined(MFEM_USE_HIP)
"hip-umpire",
"hip-umpire-2",
#else
"device-umpire",
"device-umpire-2",
#endif
}

Memory type names, used during Device:: configuration.

Definition at line 1741 of file mem_manager.cpp.

◆ MemoryTypeSize

constexpr int mfem::MemoryTypeSize = static_cast<int>(MemoryType::SIZE)

Static casts to 'int' and sizes of some useful memory types.

Definition at line 60 of file mem_manager.hpp.

◆ MFEM_COMM_WORLD

MPI_Comm mfem::MFEM_COMM_WORLD = MPI_COMM_WORLD

Definition at line 60 of file globals.cpp.

◆ mm

MFEM_EXPORT MemoryManager mfem::mm

The (single) global memory manager object.

Definition at line 1711 of file mem_manager.cpp.

◆ out

MFEM_EXPORT OutStream mfem::out

Global stream used by the library for standard output. Initially it uses the same std::streambuf as std::cout, however that can be changed.

See also
OutStream.

Definition at line 66 of file globals.hpp.

◆ PointFE

MFEM_EXPORT PointFiniteElement mfem::PointFE

Definition at line 30 of file point.cpp.

◆ poly1d

MFEM_EXPORT Poly_1D mfem::poly1d

Definition at line 28 of file fe.cpp.

◆ PyramidFE

LinearPyramidFiniteElement mfem::PyramidFE

Definition at line 44 of file fe.cpp.

◆ QuadrilateralFE

MFEM_EXPORT class BiLinear2DFiniteElement mfem::QuadrilateralFE

Definition at line 55 of file quadrilateral.cpp.

◆ RefinedIntRules

MFEM_EXPORT IntegrationRules mfem::RefinedIntRules

A global object with all refined integration rules.

Definition at line 483 of file intrules.hpp.

◆ SegmentFE

MFEM_EXPORT Linear1DFiniteElement mfem::SegmentFE

Definition at line 49 of file segment.cpp.

◆ TetrahedronFE

Linear3DFiniteElement mfem::TetrahedronFE

Definition at line 36 of file fe.cpp.

◆ tic_toc

MFEM_EXPORT StopWatch mfem::tic_toc

Definition at line 447 of file tic_toc.cpp.

◆ TriangleFE

Linear2DFiniteElement mfem::TriangleFE

Definition at line 32 of file fe.cpp.

◆ vishost

const char mfem::vishost[] = "localhost"

Definition at line 21 of file extrapolator.cpp.

◆ visport

const int mfem::visport = 19916

Definition at line 22 of file extrapolator.cpp.

◆ WedgeFE

LinearWedgeFiniteElement mfem::WedgeFE

Definition at line 40 of file fe.cpp.

◆ wsize

int mfem::wsize = 350

Definition at line 23 of file extrapolator.cpp.