MFEM
v4.5.1
Finite element discretization library
|
Classes | |
class | Array |
class | adios2stream |
class | Array2D |
Dynamic 2D array using row-major layout. More... | |
class | Array3D |
class | BlockArray |
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... | |
class | GroupTopology |
class | GroupCommunicator |
Communicator performing operations within groups defined by a GroupTopology with arbitrary-size data associated with each group. More... | |
struct | VarMessage |
Variable-length MPI message containing unspecific binary data. More... | |
struct | MPITypeMap |
Helper struct to convert a C++ type to an MPI type. More... | |
struct | MPITypeMap< int > |
struct | MPITypeMap< double > |
struct | Backend |
MFEM backends. 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 | ErrorException |
Exception class thrown when MFEM encounters an error and the current ErrorAction is set to MFEM_ERROR_THROW. More... | |
struct | RajaCuWrap |
struct | RajaCuWrap< 1 > |
struct | RajaCuWrap< 2 > |
struct | RajaCuWrap< 3 > |
struct | RajaHipWrap |
struct | RajaHipWrap< 1 > |
struct | RajaHipWrap< 2 > |
struct | RajaHipWrap< 3 > |
struct | CuWrap |
struct | CuWrap< 1 > |
struct | CuWrap< 2 > |
struct | CuWrap< 3 > |
struct | HipWrap |
struct | HipWrap< 1 > |
struct | HipWrap< 2 > |
struct | HipWrap< 3 > |
class | OutStream |
Simple extension of std::ostream. More... | |
struct | Hashed2 |
struct | Hashed4 |
class | HashTable |
class | HashFunction |
Hash function for data sequences. More... | |
class | isockstream |
class | StackPart |
class | Stack |
class | MemAllocNode |
class | MemAlloc |
class | Memory |
Class used by MFEM to store pointers to host and/or device memory. More... | |
class | MemoryManager |
class | OptionsParser |
class | osockstream |
class | IntegerSet |
A set of integers. More... | |
class | ListOfIntegerSets |
List of integer sets. More... | |
class | socketbuf |
class | GnuTLS_status |
class | GnuTLS_global_state |
class | GnuTLS_session_params |
class | GnuTLS_socketbuf |
class | socketstream |
class | socketserver |
class | Pair |
A pair of objects. More... | |
class | Triple |
A triple of objects. More... | |
class | STable3DNode |
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... | |
struct | Connection |
Helper struct for defining a connectivity table, see Table::MakeFromList. More... | |
class | Table |
class | STable |
class | DSTable |
struct | AssignOp |
class | StopWatch |
Timing object. More... | |
class | ofgzstream |
class | ifgzstream |
class | named_ifgzstream |
class | AmgXSolver |
class | MatrixFreeAuxiliarySpace |
Auxiliary space solvers for MatrixFreeAMS preconditioner. More... | |
class | GeneralAMS |
Perform AMS cycle with generic Operator objects. More... | |
class | MatrixFreeAMS |
An auxiliary Maxwell solver for a high-order curl-curl system without high-order assembly. More... | |
class | BlockMatrix |
class | BlockOperator |
A class to handle Block systems in a matrix-free implementation. More... | |
class | BlockDiagonalPreconditioner |
A class to handle Block diagonal preconditioners in a matrix-free implementation. More... | |
class | BlockLowerTriangularPreconditioner |
A class to handle Block lower triangular preconditioners in a matrix-free implementation. More... | |
class | BlockVector |
A class to handle Vectors in a block fashion. More... | |
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 | ComplexFactors |
class | ComplexLUFactors |
class | ComplexCholeskyFactors |
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 | ComplexHypreParMatrix |
Specialization of the ComplexOperator built from a pair of HypreParMatrices. More... | |
class | ConstrainedSolver |
An abstract class to solve the constrained system \( Ax = f \) subject to the constraint \( B x = r \). More... | |
class | Eliminator |
Perform elimination of a single constraint. More... | |
class | EliminationProjection |
class | EliminationSolver |
Solve constrained system by eliminating the constraint; see ConstrainedSolver. More... | |
class | EliminationCGSolver |
class | EliminationGMRESSolver |
class | PenaltyConstrainedSolver |
Solve constrained system with penalty method; see ConstrainedSolver. More... | |
class | PenaltyPCGSolver |
class | PenaltyGMRESSolver |
class | SchurConstrainedSolver |
Solve constrained system by solving original mixed system; see ConstrainedSolver. More... | |
class | SchurConstrainedHypreSolver |
Basic saddle-point solver with assembled blocks (ie, the operators are assembled HypreParMatrix objects.) More... | |
class | CPardisoSolver |
MKL Parallel Direct Sparse Solver for Clusters. More... | |
class | DenseMatrix |
Data type dense matrix using column-major storage. More... | |
class | Factors |
class | LUFactors |
class | CholeskyFactors |
class | DenseMatrixInverse |
class | DenseMatrixEigensystem |
class | DenseMatrixGeneralizedEigensystem |
class | DenseMatrixSVD |
class | DenseTensor |
Rank 3 tensor (array of matrices) More... | |
class | TensorInd |
A Class to compute the real index from the multi-indices of a tensor. More... | |
class | TensorInd< Dim, Dim, T, Args...> |
class | Init |
A class to initialize the size of a Tensor. More... | |
class | Init< Dim, Dim, T, Args...> |
class | DeviceTensor |
A basic generic Tensor class, appropriate for use on the GPU. More... | |
class | OperatorHandle |
Pointer to an Operator of a specified type. More... | |
class | HiopOptimizationProblem |
Internal class - adapts the OptimizationProblem class to HiOp's interface. More... | |
class | HiopNlpOptimizer |
Adapts the HiOp functionality to the MFEM OptimizationSolver interface. More... | |
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 | HypreParVector |
Wrapper for hypre's parallel vector class. More... | |
class | HypreParMatrix |
Wrapper for hypre's ParCSR matrix class. More... | |
class | HypreSmoother |
Parallel smoothers in hypre. More... | |
class | HypreSolver |
Abstract class for hypre's solvers and preconditioners. More... | |
class | HypreTriSolve |
class | HyprePCG |
PCG solver in hypre. More... | |
class | HypreGMRES |
GMRES solver in hypre. More... | |
class | HypreFGMRES |
Flexible GMRES solver in hypre. More... | |
class | HypreIdentity |
The identity operator as a hypre solver. More... | |
class | HypreDiagScale |
Jacobi preconditioner in hypre. More... | |
class | HypreParaSails |
The ParaSails preconditioner in hypre. More... | |
class | HypreEuclid |
class | HypreILU |
Wrapper for Hypre's native parallel ILU preconditioner. More... | |
class | HypreBoomerAMG |
The BoomerAMG solver in hypre. More... | |
class | HypreAMS |
The Auxiliary-space Maxwell Solver in hypre. More... | |
class | HypreADS |
The Auxiliary-space Divergence Solver in hypre. More... | |
class | HypreLOBPCG |
class | HypreAME |
struct | MemoryIJData |
struct | ScalarOps |
Auxiliary class used as the default for the second template parameter in the classes InvariantsEvaluator2D and InvariantsEvaluator3D. More... | |
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 | Matrix |
Abstract data type matrix. More... | |
class | MatrixInverse |
Abstract data type for matrix inverse. More... | |
class | AbstractSparseMatrix |
Abstract data type for sparse matrices. More... | |
class | MUMPSSolver |
MUMPS: A Parallel Sparse Direct Solver. More... | |
class | ODESolver |
Abstract class for solving systems of ODEs: dx/dt = f(x,t) More... | |
class | ForwardEulerSolver |
The classical forward Euler method. 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 | ExplicitRKSolver |
class | RK6Solver |
class | RK8Solver |
class | AdamsBashforthSolver |
class | AB1Solver |
class | AB2Solver |
class | AB3Solver |
class | AB4Solver |
class | AB5Solver |
class | AdamsMoultonSolver |
class | AM0Solver |
class | AM1Solver |
class | AM2Solver |
class | AM3Solver |
class | AM4Solver |
class | BackwardEulerSolver |
Backward Euler ODE solver. L-stable. More... | |
class | ImplicitMidpointSolver |
Implicit midpoint method. A-stable, not L-stable. More... | |
class | SDIRK23Solver |
class | SDIRK34Solver |
class | SDIRK33Solver |
class | TrapezoidalRuleSolver |
class | ESDIRK32Solver |
class | ESDIRK33Solver |
class | GeneralizedAlphaSolver |
class | SIASolver |
class | SIA1Solver |
First Order Symplectic Integration Algorithm. More... | |
class | SIA2Solver |
Second Order Symplectic Integration Algorithm. More... | |
class | SIAVSolver |
Variable order Symplectic Integration Algorithm (orders 1-4) More... | |
class | SecondOrderODESolver |
Abstract class for solving systems of ODEs: d2x/dt2 = f(x,dx/dt,t) More... | |
class | NewmarkSolver |
class | LinearAccelerationSolver |
class | CentralDifferenceSolver |
class | FoxGoodwinSolver |
class | GeneralizedAlpha2Solver |
class | AverageAccelerationSolver |
The classical midpoint method. More... | |
class | HHTAlphaSolver |
class | WBZAlphaSolver |
class | Operator |
Abstract operator. More... | |
class | TimeDependentOperator |
Base abstract class for first order time dependent operators. More... | |
class | TimeDependentAdjointOperator |
class | SecondOrderTimeDependentOperator |
Base abstract class for second order time dependent operators. More... | |
class | Solver |
Base class for solvers. More... | |
class | IdentityOperator |
Identity Operator I: x -> x. More... | |
class | ScaledOperator |
Scaled Operator B: x -> a A(x). More... | |
class | TransposeOperator |
The transpose of a given operator. Switches the roles of the methods Mult() and MultTranspose(). More... | |
class | ProductOperator |
General product operator: x -> (A*B)(x) = A(B(x)). More... | |
class | RAPOperator |
The operator x -> R*A*P*x constructed through the actions of R^T, A and P. More... | |
class | TripleProductOperator |
General triple product operator x -> A*B*C*x, with ownership of the factors. More... | |
class | ConstrainedOperator |
Square Operator for imposing essential boundary conditions using only the action, Mult(), of a given unconstrained 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 | PowerMethod |
PowerMethod helper class to estimate the largest eigenvalue of an operator using the iterative power method. More... | |
class | PetscMemory |
Wrapper for syncing PETSc's vector memory. More... | |
class | PetscParVector |
class | PetscParMatrix |
Wrapper for PETSc's matrix class. More... | |
class | PetscBCHandler |
Helper class for handling essential boundary conditions. More... | |
class | PetscPreconditionerFactory |
class | PetscSolver |
Abstract class for PETSc's solvers. More... | |
class | PetscLinearSolver |
Abstract class for PETSc's linear solvers. More... | |
class | PetscPCGSolver |
class | PetscPreconditioner |
Abstract class for PETSc's preconditioners. More... | |
class | PetscBDDCSolverParams |
Auxiliary class for BDDC customization. More... | |
class | PetscBDDCSolver |
class | PetscFieldSplitSolver |
class | PetscH2Solver |
class | PetscNonlinearSolver |
Abstract class for PETSc's nonlinear solvers. More... | |
class | PetscODESolver |
Abstract class for PETSc's ODE solvers. More... | |
class | PetscSolverMonitor |
Abstract class for monitoring PETSc's solvers. More... | |
struct | AutoSIMDTraits |
struct | NoSIMDTraits |
class | SlepcEigenSolver |
class | IterativeSolverMonitor |
Abstract base class for an iterative solver monitor. More... | |
class | IterativeSolver |
Abstract base class for iterative solver. More... | |
class | OperatorJacobiSmoother |
Jacobi smoothing for a given bilinear form (no matrix necessary). More... | |
class | OperatorChebyshevSmoother |
Chebyshev accelerated smoothing with given vector, no matrix necessary. More... | |
class | SLISolver |
Stationary linear iteration: x <- x + B (b - A x) More... | |
class | CGSolver |
Conjugate gradient method. More... | |
class | GMRESSolver |
GMRES method. More... | |
class | FGMRESSolver |
FGMRES method. More... | |
class | BiCGSTABSolver |
BiCGSTAB method. More... | |
class | MINRESSolver |
MINRES method. More... | |
class | NewtonSolver |
Newton's method for solving F(x)=b for a given operator F. More... | |
class | LBFGSSolver |
class | OptimizationProblem |
class | OptimizationSolver |
Abstract solver for OptimizationProblems. More... | |
class | SLBQPOptimizer |
class | BlockILU |
class | ResidualBCMonitor |
Monitor that checks whether the residual is zero at a given set of dofs. More... | |
class | UMFPackSolver |
Direct sparse solver using UMFPACK. More... | |
class | KLUSolver |
Direct sparse solver using KLU. More... | |
class | DirectSubBlockSolver |
Block diagonal solver for A, each block is inverted by direct solver. More... | |
class | ProductSolver |
class | OrthoSolver |
Solver wrapper which orthogonalizes the input and output vector. More... | |
class | AuxSpaceSmoother |
class | SparseMatrix |
Data type sparse matrix. More... | |
class | SparseSmoother |
class | GSSmoother |
Data type for Gauss-Seidel smoother of sparse matrix. More... | |
class | DSmoother |
Data type for scaled Jacobi-type smoother of sparse matrix. More... | |
class | STRUMPACKRowLocMatrix |
class | STRUMPACKSolver |
class | SundialsMemHelper |
class | Sundials |
Singleton class for SUNContext and SundialsMemHelper objects. More... | |
class | SundialsNVector |
Vector interface for SUNDIALS N_Vectors. More... | |
class | SundialsSolver |
Base class for interfacing with SUNDIALS packages. More... | |
class | CVODESolver |
Interface to the CVODE library – linear multi-step methods. More... | |
class | CVODESSolver |
class | ARKStepSolver |
Interface to ARKode's ARKStep module – additive Runge-Kutta methods. More... | |
class | KINSolver |
Interface to the KINSOL library – nonlinear solver methods. More... | |
class | SuperLURowLocMatrix |
class | SuperLUSolver |
class | DenseSymmetricMatrix |
struct | OffsetStridedLayout1D |
struct | StridedLayout2D |
struct | StridedLayout1D |
struct | OffsetStridedLayout2D |
struct | StridedLayout3D |
struct | StridedLayout4D |
struct | OffsetStridedLayout3D |
struct | OffsetStridedLayout4D |
struct | ColumnMajorLayout2D |
struct | ColumnMajorLayout3D |
struct | ColumnMajorLayout4D |
class | DynamicVectorLayout |
class | VectorLayout |
class | ScalarLayout |
struct | TVector |
struct | TMatrix |
struct | TTensor3 |
struct | TTensor4 |
class | Vector |
Vector data type. More... | |
struct | AutoSIMD |
struct | AutoSIMD< double, 2, 16 > |
struct | AutoSIMD< double, 4, 32 > |
struct | AutoSIMD< double, 8, 64 > |
class | Element |
Abstract data type element. More... | |
class | Hexahedron |
Data type hexahedron element. More... | |
class | Mesh |
class | GeometricFactors |
Structure for storing mesh geometric factors: coordinates, Jacobians, and determinants of the Jacobians. More... | |
class | FaceGeometricFactors |
Structure for storing face geometric factors: coordinates, Jacobians, determinants of the Jacobians, and normal vectors. More... | |
class | NodeExtrudeCoefficient |
Class used to extrude the nodes of a mesh. More... | |
class | MeshOperator |
The MeshOperator class serves as base for mesh manipulation classes. More... | |
class | MeshOperatorSequence |
class | ThresholdRefiner |
Mesh refinement operator using an error threshold. More... | |
class | ThresholdDerefiner |
De-refinement operator using an error threshold. More... | |
class | CoefficientRefiner |
Refinement operator to control data oscillation. More... | |
class | Rebalancer |
ParMesh rebalancing operator. More... | |
struct | Refinement |
struct | Embedding |
Defines the position of a fine element within a coarse element. More... | |
struct | CoarseFineTransformations |
Defines the coarse-fine transformations of all fine elements. 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 | KnotVector |
class | NURBSPatch |
class | NURBSExtension |
class | ParNURBSExtension |
class | NURBSPatchMap |
class | ParMesh |
Class for parallel meshes. More... | |
class | ParNCMesh |
A parallel extension of the NCMesh class. More... | |
class | Point |
Data type point element. More... | |
class | PumiMesh |
Base class for PUMI meshes. More... | |
class | ParPumiMesh |
Class for PUMI parallel meshes. More... | |
class | GridFunctionPumi |
Class for PUMI grid functions. More... | |
class | Pyramid |
Data type Pyramid element. More... | |
class | Quadrilateral |
Data type quadrilateral element. More... | |
class | Segment |
Data type line segment element. More... | |
class | Tetrahedron |
Data type tetrahedron element. More... | |
class | TMesh |
class | Triangle |
Data type triangle element. More... | |
class | Vertex |
Data type for vertex. More... | |
struct | VTKGeometry |
Helper class for converting between MFEM and VTK geometry types. More... | |
class | Wedge |
Data type Wedge element. More... | |
class | ParSubMesh |
Subdomain representation of a topological parent in another ParMesh. More... | |
class | ParTransferMap |
ParTransferMap represents a mapping of degrees of freedom from a source ParGridFunction to a destination ParGridFunction. More... | |
class | SubMesh |
Subdomain representation of a topological parent in another Mesh. More... | |
class | TransferMap |
TransferMap represents a mapping of degrees of freedom from a source GridFunction to a destination GridFunction. More... | |
class | ADIOS2DataCollection |
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 | MixedBilinearForm |
class | DiscreteLinearOperator |
class | BilinearFormExtension |
Class extending the BilinearForm class to support different AssemblyLevels. More... | |
class | PABilinearFormExtension |
Data and methods for partially-assembled bilinear forms. More... | |
class | EABilinearFormExtension |
Data and methods for element-assembled bilinear forms. More... | |
class | FABilinearFormExtension |
Data and methods for fully-assembled bilinear forms. More... | |
class | MFBilinearFormExtension |
Data and methods for matrix-free bilinear forms. More... | |
class | MixedBilinearFormExtension |
Class extending the MixedBilinearForm class to support different AssemblyLevels. More... | |
class | PAMixedBilinearFormExtension |
Data and methods for partially-assembled mixed bilinear forms. More... | |
class | PADiscreteLinearOperatorExtension |
Partial assembly extension for DiscreteLinearOperator. More... | |
class | BilinearFormIntegrator |
Abstract base class BilinearFormIntegrator. More... | |
class | TransposeIntegrator |
class | LumpedIntegrator |
class | InverseIntegrator |
Integrator that inverts the matrix assembled by another integrator. More... | |
class | SumIntegrator |
Integrator defining a sum of multiple Integrators. More... | |
class | MixedScalarIntegrator |
class | MixedVectorIntegrator |
class | MixedScalarVectorIntegrator |
class | MixedScalarMassIntegrator |
class | MixedVectorProductIntegrator |
class | MixedScalarDerivativeIntegrator |
class | MixedScalarWeakDerivativeIntegrator |
class | MixedScalarDivergenceIntegrator |
class | MixedVectorDivergenceIntegrator |
class | MixedScalarWeakGradientIntegrator |
class | MixedScalarCurlIntegrator |
class | MixedScalarWeakCurlIntegrator |
class | MixedVectorMassIntegrator |
class | MixedCrossProductIntegrator |
class | MixedDotProductIntegrator |
class | MixedWeakGradDotIntegrator |
class | MixedWeakDivCrossIntegrator |
class | MixedGradGradIntegrator |
class | MixedCrossGradGradIntegrator |
class | MixedCurlCurlIntegrator |
class | MixedCrossCurlCurlIntegrator |
class | MixedCrossCurlGradIntegrator |
class | MixedCrossGradCurlIntegrator |
class | MixedWeakCurlCrossIntegrator |
class | MixedScalarWeakCurlCrossIntegrator |
class | MixedCrossGradIntegrator |
class | MixedCrossCurlIntegrator |
class | MixedScalarCrossCurlIntegrator |
class | MixedScalarCrossGradIntegrator |
class | MixedScalarCrossProductIntegrator |
class | MixedScalarWeakCrossProductIntegrator |
class | MixedDirectionalDerivativeIntegrator |
class | MixedGradDivIntegrator |
class | MixedDivGradIntegrator |
class | MixedScalarWeakDivergenceIntegrator |
class | MixedVectorGradientIntegrator |
class | MixedVectorCurlIntegrator |
class | MixedVectorWeakCurlIntegrator |
class | MixedVectorWeakDivergenceIntegrator |
class | GradientIntegrator |
class | DiffusionIntegrator |
class | MassIntegrator |
class | BoundaryMassIntegrator |
class | ConvectionIntegrator |
alpha (q . grad u, v) More... | |
class | ConservativeConvectionIntegrator |
-alpha (u, q . grad v), negative transpose of ConvectionIntegrator More... | |
class | GroupConvectionIntegrator |
alpha (q . grad u, v) using the "group" FE discretization More... | |
class | VectorMassIntegrator |
class | VectorFEDivergenceIntegrator |
class | VectorFEWeakDivergenceIntegrator |
class | VectorFECurlIntegrator |
class | DerivativeIntegrator |
Class for integrating (Q D_i(u), v); u and v are scalars. More... | |
class | CurlCurlIntegrator |
Integrator for (curl u, curl v) for Nedelec elements. More... | |
class | VectorCurlCurlIntegrator |
class | MixedCurlIntegrator |
class | VectorFEMassIntegrator |
class | VectorDivergenceIntegrator |
class | DivDivIntegrator |
(Q div u, div v) for RT elements More... | |
class | VectorDiffusionIntegrator |
class | ElasticityIntegrator |
class | DGTraceIntegrator |
class | NonconservativeDGTraceIntegrator |
class | DGDiffusionIntegrator |
class | DGDiffusionBR2Integrator |
class | DGElasticityIntegrator |
class | TraceJumpIntegrator |
class | NormalTraceJumpIntegrator |
class | DiscreteInterpolator |
class | GradientInterpolator |
class | IdentityInterpolator |
class | CurlInterpolator |
class | DivergenceInterpolator |
class | NormalInterpolator |
class | ScalarProductInterpolator |
class | ScalarVectorProductInterpolator |
class | VectorScalarProductInterpolator |
class | ScalarCrossProductInterpolator |
class | VectorCrossProductInterpolator |
class | VectorInnerProductInterpolator |
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 | ConstantCoefficient |
A coefficient that is constant across space and time. More... | |
class | PWConstCoefficient |
A piecewise constant coefficient with the constants keyed off the element attribute numbers. More... | |
class | PWCoefficient |
A piecewise coefficient with the pieces keyed off the element attribute numbers. More... | |
class | FunctionCoefficient |
A general function coefficient. More... | |
class | GridFunctionCoefficient |
Coefficient defined by a GridFunction. This coefficient is mesh dependent. More... | |
class | TransformedCoefficient |
A coefficient that depends on 1 or 2 parent coefficients and a transformation rule represented by a C-function. More... | |
class | DeltaCoefficient |
Delta function coefficient optionally multiplied by a weight coefficient and a scaled time dependent C-function. More... | |
class | RestrictedCoefficient |
Derived coefficient that takes the value of the parent coefficient for the active attributes and is zero otherwise. More... | |
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 | PWVectorCoefficient |
A piecewise vector-valued coefficient with the pieces keyed off the element attribute numbers. More... | |
class | VectorFunctionCoefficient |
A general vector function coefficient. 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 | VectorGridFunctionCoefficient |
Vector coefficient defined by a vector GridFunction. More... | |
class | GradientGridFunctionCoefficient |
Vector coefficient defined as the Gradient of a scalar GridFunction. More... | |
class | CurlGridFunctionCoefficient |
Vector coefficient defined as the Curl of a vector GridFunction. More... | |
class | DivergenceGridFunctionCoefficient |
Scalar coefficient defined as the Divergence of a vector GridFunction. More... | |
class | VectorDeltaCoefficient |
Vector coefficient defined by a scalar DeltaCoefficient and a constant vector direction. More... | |
class | VectorRestrictedCoefficient |
Derived vector coefficient that has the value of the parent vector where it is active and is zero otherwise. 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 | PWMatrixCoefficient |
A piecewise matrix-valued coefficient with the pieces keyed off the element attribute numbers. 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 | 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 | MatrixRestrictedCoefficient |
Derived matrix coefficient that has the value of the parent matrix coefficient where it is active and is zero otherwise. More... | |
class | SumCoefficient |
Scalar coefficient defined as the linear combination of two scalar coefficients or a scalar and a scalar coefficient. More... | |
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 | ProductCoefficient |
Scalar coefficient defined as the product of two scalar coefficients or a scalar and a scalar coefficient. More... | |
class | RatioCoefficient |
Scalar coefficient defined as the ratio of two scalars where one or both scalars are scalar coefficients. More... | |
class | PowerCoefficient |
Scalar coefficient defined as a scalar raised to a power. More... | |
class | InnerProductCoefficient |
Scalar coefficient defined as the inner product of two vector coefficients. More... | |
class | VectorRotProductCoefficient |
Scalar coefficient defined as a cross product of two vectors in the xy-plane. More... | |
class | DeterminantCoefficient |
Scalar coefficient defined as the determinant of a matrix coefficient. More... | |
class | VectorSumCoefficient |
Vector coefficient defined as the linear combination of two vectors. More... | |
class | ScalarVectorProductCoefficient |
Vector coefficient defined as a product of scalar and vector coefficients. More... | |
class | NormalizedVectorCoefficient |
Vector coefficient defined as a normalized vector field (returns v/|v|) More... | |
class | VectorCrossProductCoefficient |
Vector coefficient defined as a cross product of two vectors. More... | |
class | MatrixVectorProductCoefficient |
Vector coefficient defined as a product of a matrix coefficient and a vector coefficient. More... | |
class | IdentityMatrixCoefficient |
Constant matrix coefficient defined as the identity of dimension d. More... | |
class | MatrixSumCoefficient |
Matrix coefficient defined as the linear combination of two matrices. More... | |
class | MatrixProductCoefficient |
Matrix coefficient defined as the product of two matrices. More... | |
class | ScalarMatrixProductCoefficient |
Matrix coefficient defined as a product of a scalar coefficient and a matrix coefficient. More... | |
class | TransposeMatrixCoefficient |
Matrix coefficient defined as the transpose a matrix coefficient. More... | |
class | InverseMatrixCoefficient |
Matrix coefficient defined as the inverse a matrix coefficient. More... | |
class | OuterProductCoefficient |
Matrix coefficient defined as the outer product of two vector coefficients. More... | |
class | CrossCrossCoefficient |
Matrix coefficient defined as -a k x k x, for a vector k and scalar a. More... | |
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 | 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 | CoefficientVector |
Class to represent a coefficient evaluated at quadrature points. More... | |
class | ComplexGridFunction |
class | ComplexLinearForm |
class | SesquilinearForm |
class | ParComplexGridFunction |
class | ParComplexLinearForm |
class | ParSesquilinearForm |
class | ConduitDataCollection |
Data collection that uses the Conduit Mesh Blueprint specification. More... | |
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 | NamedFieldsMap |
Lightweight adaptor over an std::map from strings to pointer to T. More... | |
class | DataCollection |
class | VisItFieldInfo |
Helper class for VisIt visualization data. More... | |
class | VisItDataCollection |
Data collection with VisIt I/O routines. More... | |
class | ParaViewDataCollection |
Helper class for ParaView visualization data. More... | |
class | DGMassInverse |
Solver for the discontinuous Galerkin mass matrix. More... | |
class | DofTransformation |
class | VDofTransformation |
class | ND_DofTransformation |
class | ND_TriDofTransformation |
DoF transformation implementation for the Nedelec basis on triangles. More... | |
class | ND_TetDofTransformation |
DoF transformation implementation for the Nedelec basis on tetrahedra. More... | |
class | ND_WedgeDofTransformation |
DoF transformation implementation for the Nedelec basis on wedge elements. More... | |
class | ElementTransformation |
class | InverseElementTransformation |
The inverse transformation of a given ElementTransformation. More... | |
class | IsoparametricTransformation |
A standard isoparametric element transformation. More... | |
class | IntegrationPointTransformation |
class | FaceElementTransformations |
A specialized ElementTransformation class representing a face and its two neighboring elements. More... | |
class | AbstractErrorEstimator |
Base class for all error estimators. More... | |
class | ErrorEstimator |
Base class for all element based error estimators. More... | |
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 | ZienkiewiczZhuEstimator |
The ZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure. More... | |
class | LSZienkiewiczZhuEstimator |
The LSZienkiewiczZhuEstimator class implements the Zienkiewicz-Zhu error estimation procedure [1,2] using face-based patches [3]. 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 | LpErrorEstimator |
The LpErrorEstimator class compares the solution to a known coefficient. More... | |
class | KellyErrorEstimator |
The KellyErrorEstimator class provides a fast error indication strategy for smooth scalar parallel problems. 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 | H1_FECollection |
Arbitrary order H1-conforming (continuous) finite elements. More... | |
class | H1Pos_FECollection |
Arbitrary order H1-conforming (continuous) finite elements with positive basis functions. More... | |
class | H1Ser_FECollection |
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 | L2_FECollection |
Arbitrary order "L2-conforming" discontinuous finite elements. More... | |
class | RT_FECollection |
Arbitrary order H(div)-conforming Raviart-Thomas finite elements. 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 | DG_Interface_FECollection |
class | ND_FECollection |
Arbitrary order H(curl)-conforming Nedelec finite elements. 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_R1D_FECollection |
Arbitrary order 3D H(curl)-conforming Nedelec finite elements in 1D. More... | |
class | RT_R1D_FECollection |
Arbitrary order 3D H(div)-conforming Raviart-Thomas finite elements in 1D. More... | |
class | ND_R2D_FECollection |
Arbitrary order 3D H(curl)-conforming Nedelec finite elements in 2D. More... | |
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 | RT_R2D_FECollection |
Arbitrary order 3D H(div)-conforming Raviart-Thomas finite elements in 2D. More... | |
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 | NURBSFECollection |
Arbitrary order non-uniform rational B-splines (NURBS) finite elements. More... | |
class | LinearFECollection |
Piecewise-(bi/tri)linear continuous finite elements. More... | |
class | QuadraticFECollection |
Piecewise-(bi)quadratic continuous finite elements. More... | |
class | QuadraticPosFECollection |
Version of QuadraticFECollection with positive basis functions. More... | |
class | CubicFECollection |
Piecewise-(bi)cubic continuous finite elements. More... | |
class | CrouzeixRaviartFECollection |
Crouzeix-Raviart nonconforming elements in 2D. More... | |
class | LinearNonConf3DFECollection |
Piecewise-linear nonconforming finite elements in 3D. More... | |
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 | 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 | 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 | Const2DFECollection |
Piecewise-constant discontinuous finite elements in 2D. This class is kept only for backward compatibility, consider using L2_FECollection instead. More... | |
class | LinearDiscont2DFECollection |
Piecewise-linear discontinuous finite elements in 2D. This class is kept only for backward compatibility, consider using L2_FECollection instead. More... | |
class | GaussLinearDiscont2DFECollection |
Version of LinearDiscont2DFECollection with dofs in the Gaussian points. More... | |
class | P1OnQuadFECollection |
Linear (P1) finite elements on quadrilaterals. 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 | QuadraticPosDiscont2DFECollection |
Version of QuadraticDiscont2DFECollection with positive basis functions. More... | |
class | GaussQuadraticDiscont2DFECollection |
Version of QuadraticDiscont2DFECollection with dofs in the Gaussian points. More... | |
class | CubicDiscont2DFECollection |
Piecewise-cubic 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 | LinearDiscont3DFECollection |
Piecewise-linear discontinuous finite elements in 3D. 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 | RefinedLinearFECollection |
Finite element collection on a macro-element. 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 | 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 | 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 | Local_FECollection |
Discontinuous collection defined locally by a given finite element. More... | |
class | Ordering |
The ordering method used when the number of unknowns per mesh node (vector dimension) is bigger than 1. 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 | ParFiniteElementSpaceHierarchy |
class | FMSDataCollection |
Data collection that uses FMS. More... | |
class | Geometry |
class | RefinedGeometry |
class | GeometryRefiner |
class | GridFunction |
Class for grid function - Vector with associated FE space. More... | |
class | JumpScaling |
class | ExtrudeCoefficient |
Class used for extruding scalar GridFunctions. More... | |
class | FindPointsGSLIB |
FindPointsGSLIB can robustly evaluate a GridFunction on an arbitrary collection of points. There are three key functions in FindPointsGSLIB: 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 | Hybridization |
class | IntegrationPoint |
Class for integration point with weight. More... | |
class | IntegrationRule |
Class for an integration rule - an Array of IntegrationPoint. More... | |
class | QuadratureFunctions1D |
A Class that defines 1-D numerical quadrature rules on [0,1]. More... | |
class | Quadrature1D |
A class container for 1D quadrature type constants. More... | |
class | IntegrationRules |
Container class for integration rules. 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 | DeltaLFIntegrator |
Abstract class for integrators that support delta coefficients. More... | |
class | DomainLFIntegrator |
Class for domain integration L(v) := (f, v) More... | |
class | DomainLFGradIntegrator |
Class for domain integrator L(v) := (f, grad v) More... | |
class | BoundaryLFIntegrator |
Class for boundary integration L(v) := (g, v) More... | |
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 | VectorDomainLFIntegrator |
class | VectorDomainLFGradIntegrator |
class | VectorBoundaryLFIntegrator |
class | VectorFEDomainLFIntegrator |
\( (f, v)_{\Omega} \) for VectorFiniteElements (Nedelec, Raviart-Thomas) More... | |
class | VectorFEDomainLFCurlIntegrator |
\( (Q, curl v)_{\Omega} \) for Nedelec Elements) More... | |
class | VectorFEDomainLFDivIntegrator |
\( (Q, div v)_{\Omega} \) for RT Elements) More... | |
class | VectorBoundaryFluxLFIntegrator |
class | VectorFEBoundaryFluxLFIntegrator |
class | VectorFEBoundaryTangentLFIntegrator |
Class for boundary integration \( L(v) = (n \times f, v) \). More... | |
class | BoundaryFlowIntegrator |
class | DGDirichletLFIntegrator |
class | DGElasticityDirichletLFIntegrator |
class | WhiteGaussianNoiseDomainLFIntegrator |
class | VectorQuadratureLFIntegrator |
class | QuadratureLFIntegrator |
class | Multigrid |
Multigrid solver class. More... | |
class | GeometricMultigrid |
Geometric multigrid associated with a hierarchy of finite element spaces. More... | |
class | NonlinearForm |
class | BlockNonlinearForm |
A class representing a general block nonlinear operator defined on the Cartesian product of multiple FiniteElementSpaces. More... | |
class | NonlinearFormExtension |
Class extending the NonlinearForm class to support the different AssemblyLevels. More... | |
class | PANonlinearFormExtension |
Data and methods for partially-assembled nonlinear forms. More... | |
class | MFNonlinearFormExtension |
Data and methods for unassembled nonlinear forms. 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 | BlockNonlinearFormIntegrator |
class | HyperelasticModel |
Abstract class for hyperelastic models. More... | |
class | InverseHarmonicModel |
class | NeoHookeanModel |
class | HyperelasticNLFIntegrator |
class | IncompressibleNeoHookeanIntegrator |
class | VectorConvectionNLFIntegrator |
class | ConvectiveVectorConvectionNLFIntegrator |
class | SkewSymmetricVectorConvectionNLFIntegrator |
class | ParBilinearForm |
Class for parallel bilinear form. More... | |
class | ParMixedBilinearForm |
Class for parallel bilinear form using different test and trial FE spaces. More... | |
class | ParDiscreteLinearOperator |
class | ParFiniteElementSpace |
Abstract parallel finite element space. More... | |
class | ConformingProlongationOperator |
Auxiliary class used by ParFiniteElementSpace. More... | |
class | DeviceConformingProlongationOperator |
Auxiliary device class used by ParFiniteElementSpace. More... | |
class | ParGridFunction |
Class for parallel grid function. More... | |
class | ParLinearForm |
Class for parallel linear form. More... | |
class | ParNonlinearForm |
Parallel non-linear operator on the true dofs. More... | |
class | ParBlockNonlinearForm |
A class representing a general parallel block nonlinear operator defined on the Cartesian product of multiple ParFiniteElementSpaces. More... | |
class | ParNCH1FaceRestriction |
Operator that extracts Face degrees of freedom for NCMesh in parallel. More... | |
class | ParL2FaceRestriction |
Operator that extracts Face degrees of freedom in parallel. More... | |
class | ParNCL2FaceRestriction |
Operator that extracts Face degrees of freedom for NCMesh in parallel. More... | |
class | QuadratureFunction |
Represents values or vectors of values at quadrature points on a mesh. More... | |
class | QuadratureSpaceBase |
Abstract base class for QuadratureSpace and FaceQuadratureSpace. More... | |
class | QuadratureSpace |
Class representing the storage layout of a QuadratureFunction. More... | |
class | FaceQuadratureSpace |
Class representing the storage layout of a FaceQuadratureFunction. More... | |
class | QuadratureInterpolator |
A class that performs interpolation from an E-vector to quadrature point values and/or derivatives (Q-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 | ElementRestrictionOperator |
Abstract base class that defines an interface for element restrictions. More... | |
class | ElementRestriction |
Operator that converts FiniteElementSpace L-vectors to E-vectors. More... | |
class | L2ElementRestriction |
Operator that converts L2 FiniteElementSpace L-vectors to E-vectors. More... | |
class | FaceRestriction |
Base class for operators that extracts Face degrees of freedom. More... | |
class | H1FaceRestriction |
Operator that extracts Face degrees of freedom for H1 FiniteElementSpaces. More... | |
class | L2FaceRestriction |
Operator that extracts Face degrees of freedom for L2 spaces. More... | |
struct | InterpConfig |
struct | NCInterpConfig |
class | InterpolationManager |
This class manages the storage and computation of the interpolations from master (coarse) face to slave (fine) face. More... | |
class | NCL2FaceRestriction |
Operator that extracts face degrees of freedom for L2 nonconforming spaces. More... | |
class | SidreDataCollection |
Data collection with Sidre routines following the Conduit mesh blueprint specification. More... | |
class | StaticCondensation |
class | TBilinearForm |
Templated bilinear form class, cf. bilinearform.?pp. More... | |
class | TIntegrator |
The Integrator class combines a kernel and a coefficient. More... | |
struct | TMassKernel |
Mass kernel. More... | |
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 | TCoefficient |
Templated coefficient classes, cf. coefficient.?pp. More... | |
class | TConstantCoefficient |
class | TFunctionCoefficient |
Function coefficient. More... | |
class | TPiecewiseConstCoefficient |
class | TGridFunctionCoefficient |
GridFunction coefficient class. More... | |
struct | IntRuleCoefficient |
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 | 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 | 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 | ShapeEvaluator_base< FE, IR, true, real_t > |
ShapeEvaluator with tensor-product structure in any dimension. More... | |
class | ShapeEvaluator |
General ShapeEvaluator for any scalar FE type (L2 or H1) 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 | FieldEvaluator |
complex_t - dof/qpt data type, real_t - ShapeEvaluator (FE basis) data type More... | |
class | H1_FiniteElement |
class | H1_FiniteElement< Geometry::SEGMENT, P > |
class | H1_FiniteElement< Geometry::TRIANGLE, P > |
class | H1_FiniteElement< Geometry::SQUARE, P > |
class | H1_FiniteElement< Geometry::TETRAHEDRON, P > |
class | H1_FiniteElement< Geometry::CUBE, P > |
class | L2_FiniteElement_base |
class | L2_FiniteElement |
class | L2_FiniteElement< Geometry::SEGMENT, P > |
class | L2_FiniteElement< Geometry::TRIANGLE, P > |
class | L2_FiniteElement< Geometry::SQUARE, P > |
class | L2_FiniteElement< Geometry::TETRAHEDRON, P > |
class | L2_FiniteElement< Geometry::CUBE, P > |
class | ElementDofIndexer |
class | TFiniteElementSpace_simple |
class | H1_FiniteElementSpace |
class | DGIndexer |
class | L2_FiniteElementSpace |
class | GenericIntegrationRule |
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 | TProductIntegrationRule |
class | GaussIntegrationRule |
class | TIntegrationRule |
class | TIntegrationRule< Geometry::SEGMENT, Order, real_t > |
class | TIntegrationRule< Geometry::SQUARE, Order, real_t > |
class | TIntegrationRule< Geometry::CUBE, Order, 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 | 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 | TMOP_QualityMetric |
Abstract class for local mesh quality metrics in the target-matrix optimization paradigm (TMOP) by P. Knupp et al. More... | |
class | TMOP_Combo_QualityMetric |
Abstract class used to define combination of metrics with constant coefficients. More... | |
class | TMOP_WorstCaseUntangleOptimizer_Metric |
class | TMOP_Metric_001 |
2D non-barrier metric without a type. More... | |
class | TMOP_Metric_skew2D |
2D non-barrier Skew metric. More... | |
class | TMOP_Metric_skew3D |
3D non-barrier Skew 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_002 |
2D barrier shape (S) metric (polyconvex). More... | |
class | TMOP_Metric_004 |
2D non-barrier shape (S) metric. More... | |
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 |
2D barrier (not a shape) metric (polyconvex). More... | |
class | TMOP_Metric_055 |
2D non-barrier size (V) metric (not polyconvex). More... | |
class | TMOP_Metric_056 |
2D barrier size (V) metric (polyconvex). More... | |
class | TMOP_Metric_058 |
2D barrier shape (S) metric (not polyconvex). More... | |
class | TMOP_Metric_066 |
2D non-barrier Shape+Size (VS) metric. More... | |
class | TMOP_Metric_077 |
2D barrier size (V) metric (polyconvex). More... | |
class | TMOP_Metric_080 |
2D barrier Shape+Size (VS) metric (polyconvex). More... | |
class | TMOP_Metric_085 |
2D barrier Shape+Orientation (OS) metric (polyconvex). 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 non-barrier metric without a type. More... | |
class | TMOP_Metric_316 |
3D barrier metric without a type. 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 barrier Shape+Size (VS) metric (polyconvex). More... | |
class | TMOP_Metric_332 |
3D 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_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_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_LimiterFunction |
Base class for limiting functions to be used in class TMOP_Integrator. More... | |
class | TMOP_QuadraticLimiter |
Default limiter function in TMOP_Integrator. More... | |
class | AdaptivityEvaluator |
class | TargetConstructor |
Base class representing target-matrix construction algorithms for mesh optimization via the target-matrix optimization paradigm (TMOP). More... | |
class | TMOPMatrixCoefficient |
class | AnalyticAdaptTC |
class | DiscreteAdaptTC |
class | TMOP_Integrator |
A TMOP integrator class based on any given TMOP_QualityMetric and TargetConstructor. More... | |
class | TMOPComboIntegrator |
class | TMOPRefinerEstimator |
class | TMOPDeRefinerEstimator |
class | TMOPHRSolver |
class | AdvectorCG |
class | InterpolatorFP |
class | SerialAdvectorCGOper |
Performs a single remap advection step in serial. More... | |
class | ParAdvectorCGOper |
Performs a single remap advection step in parallel. More... | |
class | TMOPNewtonSolver |
class | GridTransfer |
Base class for transfer algorithms that construct transfer Operators between two finite element (FE) spaces. More... | |
class | InterpolationGridTransfer |
Transfer data between a coarse mesh and an embedded refined mesh using interpolation. 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 | TransferOperator |
Matrix-free transfer operator between finite element spaces. More... | |
class | PRefinementTransferOperator |
Matrix-free transfer operator between finite element spaces on the same mesh. More... | |
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 | TrueTransferOperator |
Matrix-free transfer operator between finite element spaces working on true degrees of freedom. More... | |
class | BasisType |
Possible basis types. Note that not all elements can use all BasisType(s). More... | |
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 | FunctionSpace |
Describes the function space on each element. More... | |
class | FiniteElement |
Abstract class for all finite elements. More... | |
class | ScalarFiniteElement |
Class for finite elements with basis functions that return scalar values. More... | |
class | NodalFiniteElement |
Class for standard nodal finite elements. More... | |
class | VectorFiniteElement |
Intermediate class for finite elements whose basis functions return vector values. More... | |
class | Poly_1D |
Class for computing 1D special polynomials and their associated basis functions. More... | |
class | TensorBasisElement |
class | NodalTensorFiniteElement |
class | VectorTensorFiniteElement |
class | PointFiniteElement |
A 0D point finite element. More... | |
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 | BiLinear2DFiniteElement |
A 2D bi-linear element on a square with nodes at the vertices of the square. More... | |
class | GaussLinear2DFiniteElement |
A linear element on a triangle with nodes at the 3 "Gaussian" points. More... | |
class | GaussBiLinear2DFiniteElement |
A 2D bi-linear element on a square with nodes at the "Gaussian" points. More... | |
class | P1OnQuadFiniteElement |
A 2D linear element on a square with 3 nodes at the vertices of the lower left triangle. More... | |
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 | GaussQuad2DFiniteElement |
A quadratic element on triangle with nodes at the "Gaussian" points. More... | |
class | BiQuad2DFiniteElement |
A 2D bi-quadratic element on a square with uniformly spaced nodes. More... | |
class | GaussBiQuad2DFiniteElement |
A 2D bi-quadratic element on a square with nodes at the 9 "Gaussian" points. More... | |
class | BiCubic2DFiniteElement |
A 2D bi-cubic element on a square with uniformly spaces nodes. 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 | LinearWedgeFiniteElement |
A linear element defined on a triangular prism. More... | |
class | LinearPyramidFiniteElement |
A linear element defined on a square pyramid. More... | |
class | P0TriangleFiniteElement |
A 2D constant element on a triangle. More... | |
class | P0QuadFiniteElement |
A 2D constant element on a square. More... | |
class | Linear3DFiniteElement |
A 3D linear element on a tetrahedron with nodes at the vertices of the tetrahedron. More... | |
class | Quadratic3DFiniteElement |
A 3D quadratic element on a tetrahedron with uniformly spaced nodes. More... | |
class | TriLinear3DFiniteElement |
A 3D tri-linear element on a cube with nodes at the vertices of the cube. More... | |
class | CrouzeixRaviartFiniteElement |
A 2D Crouzeix-Raviart element on triangle. More... | |
class | CrouzeixRaviartQuadFiniteElement |
A 2D Crouzeix-Raviart finite element on square. More... | |
class | P0SegmentFiniteElement |
A 1D constant element on a segment. More... | |
class | RT0TriangleFiniteElement |
A 2D 1st order Raviart-Thomas vector element on a triangle. More... | |
class | RT0QuadFiniteElement |
A 2D 1st order Raviart-Thomas vector element on a square. More... | |
class | RT1TriangleFiniteElement |
A 2D 2nd order Raviart-Thomas vector element on a triangle. More... | |
class | RT1QuadFiniteElement |
A 2D 2nd order Raviart-Thomas vector element on a square. More... | |
class | RT2TriangleFiniteElement |
A 2D 3rd order Raviart-Thomas vector element on a triangle. More... | |
class | RT2QuadFiniteElement |
A 2D 3rd order Raviart-Thomas vector element on a square. More... | |
class | P1SegmentFiniteElement |
A 1D linear element with nodes at 1/3 and 2/3 (trace of RT1) More... | |
class | P2SegmentFiniteElement |
A 1D quadratic element with nodes at the Gaussian points (trace of RT2) More... | |
class | Lagrange1DFiniteElement |
A 1D element with uniform nodes. More... | |
class | P1TetNonConfFiniteElement |
A 3D Crouzeix-Raviart element on the tetrahedron. More... | |
class | P0TetFiniteElement |
A 3D constant element on a tetrahedron. More... | |
class | P0HexFiniteElement |
A 3D constant element on a cube. More... | |
class | P0WdgFiniteElement |
A 3D constant element on a wedge. More... | |
class | P0PyrFiniteElement |
A 3D constant element on a pyramid. More... | |
class | LagrangeHexFiniteElement |
Tensor products of 1D Lagrange1DFiniteElement (only degree 2 is functional) More... | |
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 | RefinedBiLinear2DFiniteElement |
A 2D refined bi-linear FE on a square. More... | |
class | RefinedTriLinear3DFiniteElement |
A 3D refined tri-linear element on a cube. More... | |
class | BiLinear3DFiniteElement |
Class for linear FE on wedge. More... | |
class | BiQuadratic3DFiniteElement |
Class for quadratic FE on wedge. More... | |
class | BiCubic3DFiniteElement |
Class for cubic FE on wedge. More... | |
class | P0WedgeFiniteElement |
A 0th order L2 element on a Wedge. More... | |
class | Nedelec1HexFiniteElement |
A 3D 1st order Nedelec element on a cube. 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 | Nedelec1PyrFiniteElement |
A 3D 1st order Nedelec element on a pyramid. More... | |
class | RT0HexFiniteElement |
A 3D 0th order Raviert-Thomas element on a cube. More... | |
class | RT1HexFiniteElement |
A 3D 1st order Raviert-Thomas element on a cube. More... | |
class | RT0TetFiniteElement |
A 3D 0th order Raviert-Thomas element on a tetrahedron. More... | |
class | RT0WdgFiniteElement |
A 3D 0th order Raviert-Thomas element on a wedge. More... | |
class | RT0PyrFiniteElement |
A 3D 0th order Raviert-Thomas element on a pyramid. More... | |
class | RotTriLinearHexFiniteElement |
class | H1_SegmentElement |
Arbitrary order H1 elements in 1D. More... | |
class | H1_QuadrilateralElement |
Arbitrary order H1 elements in 2D on a square. More... | |
class | H1_HexahedronElement |
Arbitrary order H1 elements in 3D on a cube. More... | |
class | H1_TriangleElement |
Arbitrary order H1 elements in 2D on a triangle. More... | |
class | H1_TetrahedronElement |
Arbitrary order H1 elements in 3D on a tetrahedron. More... | |
class | H1_WedgeElement |
Arbitrary order H1 elements in 3D on a wedge. More... | |
class | L2_SegmentElement |
Arbitrary order L2 elements in 1D on a segment. More... | |
class | L2_QuadrilateralElement |
Arbitrary order L2 elements in 2D on a square. More... | |
class | L2_HexahedronElement |
Arbitrary order L2 elements in 3D on a cube. More... | |
class | L2_TriangleElement |
Arbitrary order L2 elements in 2D on a triangle. More... | |
class | L2_TetrahedronElement |
Arbitrary order L2 elements in 3D on a tetrahedron. More... | |
class | L2_WedgeElement |
Arbitrary order L2 elements in 3D on a wedge. 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_TetrahedronElement |
Arbitrary order Nedelec elements in 3D on a tetrahedron. More... | |
class | ND_TriangleElement |
Arbitrary order Nedelec elements in 2D on a triangle. More... | |
class | ND_SegmentElement |
Arbitrary order Nedelec elements in 1D on a segment. More... | |
class | ND_WedgeElement |
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_SegmentElement |
class | ND_R2D_FiniteElement |
class | ND_R2D_TriangleElement |
Arbitrary order Nedelec 3D elements in 2D on a triangle. More... | |
class | ND_R2D_QuadrilateralElement |
Arbitrary order Nedelec 3D elements in 2D on a square. More... | |
class | NURBSFiniteElement |
An arbitrary order and dimension NURBS element. More... | |
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 | PositiveFiniteElement |
Class for finite elements utilizing the always positive Bernstein basis. More... | |
class | PositiveTensorFiniteElement |
class | BiQuadPos2DFiniteElement |
class | QuadPos1DFiniteElement |
A 1D quadratic positive element utilizing the 2nd order Bernstein basis. More... | |
class | H1Pos_SegmentElement |
Arbitrary order H1 elements in 1D utilizing the Bernstein basis. More... | |
class | H1Pos_QuadrilateralElement |
Arbitrary order H1 elements in 2D utilizing the Bernstein basis on a square. More... | |
class | H1Pos_HexahedronElement |
Arbitrary order H1 elements in 3D utilizing the Bernstein basis on a cube. More... | |
class | H1Pos_TriangleElement |
Arbitrary order H1 elements in 2D utilizing the Bernstein basis on a triangle. More... | |
class | H1Pos_TetrahedronElement |
class | H1Pos_WedgeElement |
Arbitrary order H1 elements in 3D utilizing the Bernstein basis on a wedge. More... | |
class | L2Pos_SegmentElement |
Arbitrary order L2 elements in 1D utilizing the Bernstein basis on a segment. More... | |
class | L2Pos_QuadrilateralElement |
Arbitrary order L2 elements in 2D utilizing the Bernstein basis on a square. More... | |
class | L2Pos_HexahedronElement |
Arbitrary order L2 elements in 3D utilizing the Bernstein basis on a cube. More... | |
class | L2Pos_TriangleElement |
Arbitrary order L2 elements in 2D utilizing the Bernstein basis on a triangle. More... | |
class | L2Pos_TetrahedronElement |
class | L2Pos_WedgeElement |
Arbitrary order L2 elements in 3D utilizing the Bernstein basis on a wedge. More... | |
class | RT_QuadrilateralElement |
Arbitrary order Raviart-Thomas elements in 2D on a square. More... | |
class | RT_HexahedronElement |
Arbitrary order Raviart-Thomas elements in 3D on a cube. More... | |
class | RT_TriangleElement |
Arbitrary order Raviart-Thomas elements in 2D on a triangle. More... | |
class | RT_TetrahedronElement |
Arbitrary order Raviart-Thomas elements in 3D on a tetrahedron. More... | |
class | RT_WedgeElement |
class | RT_R1D_SegmentElement |
Arbitrary order, three component, Raviart-Thomas elements in 1D on a segment. More... | |
class | RT_R2D_SegmentElement |
class | RT_R2D_FiniteElement |
class | RT_R2D_TriangleElement |
Arbitrary order Raviart-Thomas 3D elements in 2D on a triangle. More... | |
class | RT_R2D_QuadrilateralElement |
Arbitrary order Raviart-Thomas 3D elements in 2D on a square. More... | |
class | H1Ser_QuadrilateralElement |
Arbitrary order H1 serendipity elements in 2D on a quad. 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 | ParLORDiscretization |
Create and assemble a low-order refined version of a ParBilinearForm. 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< HypreAMS > |
class | LORSolver< HypreADS > |
class | BatchedLOR_ADS |
class | BatchedLOR_AMS |
class | BatchedLORAssembly |
Efficient batched assembly of LOR discretizations on device. More... | |
class | BatchedLORKernel |
Abstract base class for the batched LOR assembly kernels. More... | |
class | BatchedLOR_H1 |
class | BatchedLOR_ND |
class | BatchedLOR_RT |
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... | |
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 | 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 | 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 | 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 | VectorFuncAutoDiff |
class | QVectorFuncAutoDiff |
class | QFunctionAutoDiff |
class | MyResidualFunctor |
class | MyEnergyFunctor |
class | pLaplaceAD |
class | pLaplace |
class | pLaplaceSL |
class | TAutoDiffDenseMatrix |
Templated dense matrix data type. More... | |
class | TAutoDiffVector |
Templated vector data type. More... | |
class | ElasticityGradientOperator |
ElasticityGradientOperator is a wrapper class to pass ElasticityOperator::AssembleGradientDiagonal and ElasticityOperator::GradientMult as a separate object through NewtonSolver. More... | |
class | ElasticityOperator |
class | ElasticityDiagonalPreconditioner |
ElasticityDiagonalPreconditioner acts as a matrix-free preconditioner for ElasticityOperator. More... | |
class | BaseQFunction |
Base class for representing function at integration points. More... | |
class | QLinearDiffusion |
class | ParametricLinearDiffusion |
class | DiffusionObjIntegrator |
class | ParametricBNLFormIntegrator |
class | ParametricBNLForm |
A class representing a general parametric block nonlinear operator defined on the Cartesian product of multiple FiniteElementSpaces. More... | |
class | ParParametricBNLForm |
A class representing a general parametric parallel block nonlinear operator defined on the Cartesian product of multiple ParFiniteElementSpaces. More... | |
class | DistanceSolver |
class | HeatDistanceSolver |
class | NormalizationDistanceSolver |
class | PLapDistanceSolver |
class | NormalizedGradCoefficient |
class | PProductCoefficient |
class | ScreenedPoisson |
class | PUMPLaplacian |
class | PDEFilter |
class | AdvectionOper |
class | Extrapolator |
class | LevelSetNormalGradCoeff |
class | GradComponentCoeff |
class | NormalGradCoeff |
class | NormalGradComponentCoeff |
class | DiscreteUpwindLOSolver |
class | AlgoimIntegrationRule |
class | ShiftedFaceMarker |
class | ShiftedFunctionCoefficient |
class | ShiftedVectorFunctionCoefficient |
class | SBM2DirichletIntegrator |
class | SBM2DirichletLFIntegrator |
class | SBM2NeumannIntegrator |
class | SBM2NeumannLFIntegrator |
Typedefs | |
using | cuda_launch_policy = RAJA::expt::LaunchPolicy< RAJA::expt::null_launch_t, RAJA::expt::cuda_launch_t< true >> |
RAJA Cuda and Hip backends. More... | |
using | cuda_teams_x = RAJA::expt::LoopPolicy< RAJA::loop_exec, RAJA::cuda_block_x_direct > |
using | cuda_threads_z = RAJA::expt::LoopPolicy< RAJA::loop_exec, RAJA::cuda_thread_z_direct > |
using | hip_launch_policy = RAJA::expt::LaunchPolicy< RAJA::expt::null_launch_t, RAJA::expt::hip_launch_t< true >> |
using | hip_teams_x = RAJA::expt::LoopPolicy< RAJA::loop_exec, RAJA::hip_block_x_direct > |
using | hip_threads_z = RAJA::expt::LoopPolicy< RAJA::loop_exec, RAJA::hip_thread_z_direct > |
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 VectorCoefficient | DiagonalMatrixCoefficient |
typedef L2_FECollection | DG_FECollection |
Declare an alternative name for L2_FECollection = DG_FECollection. More... | |
using | Args = kernels::InvariantsEvaluator2D::Buffers |
typedef MatrixVectorProductCoefficient | MatVecCoefficient |
Convenient alias for the MatrixVectorProductCoefficient. More... | |
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 (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 DBODY , typename HBODY > | |
void | ForallWrap (const bool use_dev, const int N, DBODY &&d_body, HBODY &&h_body, const int X=0, const int Y=0, const int Z=0, const int G=0) |
The forall kernel body wrapper. More... | |
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... | |
Table * | Transpose (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... | |
Table * | Mult (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... | |
BlockMatrix * | Transpose (const BlockMatrix &A) |
Transpose a BlockMatrix: result = A'. More... | |
BlockMatrix * | Mult (const BlockMatrix &A, const BlockMatrix &B) |
Multiply BlockMatrix matrices: result = A*B. More... | |
ComplexDenseMatrix * | Mult (const ComplexDenseMatrix &B, const ComplexDenseMatrix &C) |
Matrix matrix multiplication. A = B * C. More... | |
ComplexDenseMatrix * | MultAtB (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) |
SparseMatrix * | BuildNormalConstraints (FiniteElementSpace &fespace, Array< int > &constrained_att, Array< int > &constraint_rowstarts, bool parallel=false) |
Build a matrix constraining normal components to zero. More... | |
SparseMatrix * | ParBuildNormalConstraints (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) |
HypreParMatrix * | 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. More... | |
HypreParMatrix * | ParAdd (const HypreParMatrix *A, const HypreParMatrix *B) |
Returns the matrix A + B. More... | |
HypreParMatrix * | ParMult (const HypreParMatrix *A, const HypreParMatrix *B, bool own_matrix) |
HypreParMatrix * | RAP (const HypreParMatrix *A, const HypreParMatrix *P) |
Returns the matrix P^t * A * P. More... | |
HypreParMatrix * | RAP (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) |
HypreParMatrix * | HypreParMatrixFromBlocks (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... | |
HypreParMatrix * | DiscreteGrad (ParFiniteElementSpace *edge_fespace, ParFiniteElementSpace *vert_fespace) |
Compute the discrete gradient matrix between the nodal linear and ND1 spaces. More... | |
HypreParMatrix * | DiscreteCurl (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 () |
PetscParMatrix * | TripleMatrixProduct (PetscParMatrix *R, PetscParMatrix *A, PetscParMatrix *P) |
Returns the matrix R * A * P. More... | |
PetscParMatrix * | RAP (PetscParMatrix *Rt, PetscParMatrix *A, PetscParMatrix *P) |
Returns the matrix Rt^t * A * P. More... | |
PetscParMatrix * | RAP (PetscParMatrix *A, PetscParMatrix *P) |
Returns the matrix P^t * A * P. More... | |
PetscParMatrix * | RAP (HypreParMatrix *A, PetscParMatrix *P) |
Returns the matrix P^t * A * P. More... | |
PetscParMatrix * | ParMult (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 | SparseMatrixFunction (SparseMatrix &S, double(*f)(double)) |
Applies f() to each element of the matrix (after it is finalized). More... | |
SparseMatrix * | Transpose (const SparseMatrix &A) |
Transpose of a sparse matrix. A must be finalized. More... | |
SparseMatrix * | TransposeAbstractSparseMatrix (const AbstractSparseMatrix &A, int useActualWidth) |
Transpose of a sparse matrix. A does not need to be a CSR matrix. More... | |
SparseMatrix * | Mult (const SparseMatrix &A, const SparseMatrix &B, SparseMatrix *OAB=NULL) |
Matrix product A.B. More... | |
SparseMatrix * | TransposeMult (const SparseMatrix &A, const SparseMatrix &B) |
C = A^T B. More... | |
SparseMatrix * | MultAbstractSparseMatrix (const AbstractSparseMatrix &A, const AbstractSparseMatrix &B) |
Matrix product of sparse matrices. A and B do not need to be CSR matrices. More... | |
DenseMatrix * | Mult (const SparseMatrix &A, DenseMatrix &B) |
Matrix product A.B. More... | |
DenseMatrix * | RAP (const SparseMatrix &A, DenseMatrix &P) |
RAP matrix product (with R=P^T) More... | |
DenseMatrix * | RAP (DenseMatrix &A, const SparseMatrix &P) |
RAP matrix product (with R=P^T) More... | |
SparseMatrix * | RAP (const SparseMatrix &A, const SparseMatrix &R, SparseMatrix *ORAP) |
SparseMatrix * | RAP (const SparseMatrix &Rt, const SparseMatrix &A, const SparseMatrix &P) |
General RAP with given R^T, A and P. More... | |
SparseMatrix * | Mult_AtDA (const SparseMatrix &A, const Vector &D, SparseMatrix *OAtDA=NULL) |
Matrix multiplication A^t D A. All matrices must be finalized. More... | |
SparseMatrix * | Add (double a, const SparseMatrix &A, double b, const SparseMatrix &B) |
Matrix addition result = a*A + b*B. More... | |
SparseMatrix * | Add (const SparseMatrix &A, const SparseMatrix &B) |
Matrix addition result = A + B. More... | |
SparseMatrix * | Add (Array< SparseMatrix * > &Ai) |
Matrix addition result = sum_i A_i. More... | |
void | Add (const SparseMatrix &A, double alpha, DenseMatrix &B) |
B += alpha * A. More... | |
DenseMatrix * | OuterProduct (const DenseMatrix &A, const DenseMatrix &B) |
Produces a block matrix with blocks A_{ij}*B. More... | |
SparseMatrix * | OuterProduct (const DenseMatrix &A, const SparseMatrix &B) |
Produces a block matrix with blocks A_{ij}*B. More... | |
SparseMatrix * | OuterProduct (const SparseMatrix &A, const DenseMatrix &B) |
Produces a block matrix with blocks A_{ij}*B. More... | |
SparseMatrix * | OuterProduct (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 > | |
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 | 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) |
Mesh * | Extrude1D (Mesh *mesh, const int ny, const double sy, const bool closed=false) |
Extrude a 1D mesh. More... | |
Mesh * | Extrude2D (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) |
NURBSPatch * | Interpolate (NURBSPatch &p1, NURBSPatch &p2) |
NURBSPatch * | Revolve3D (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... | |
template<const int T_SDIM> | |
void | PADiffusionSetup2D (const int Q1D, const int coeffDim, const int NE, const Array< double > &w, const Vector &j, const Vector &c, Vector &d) |
template<> | |
void | PADiffusionSetup2D< 2 > (const int Q1D, const int coeffDim, const int NE, const Array< double > &w, const Vector &j, const Vector &c, Vector &d) |
template<> | |
void | PADiffusionSetup2D< 3 > (const int Q1D, const int coeffDim, const int NE, const Array< double > &w, const Vector &j, const Vector &c, Vector &d) |
void | PADiffusionSetup3D (const int Q1D, const int coeffDim, const int NE, const Array< double > &w, const Vector &j, const Vector &c, Vector &d) |
void | PAHcurlHdivSetup3D (const int Q1D, const int coeffDim, const int NE, const bool transpose, const Array< double > &w_, const Vector &j, Vector &coeff_, Vector &op) |
void | PAHcurlMassApply2D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
void | PAHcurlMassAssembleDiagonal2D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Vector &pa_data, Vector &diag) |
void | PAHcurlMassAssembleDiagonal3D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Vector &pa_data, Vector &diag) |
template<int T_D1D, int T_Q1D> | |
void | SmemPAHcurlMassAssembleDiagonal3D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Vector &pa_data, Vector &diag) |
void | PAHcurlMassApply3D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
template<int T_D1D, int T_Q1D> | |
void | SmemPAHcurlMassApply3D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
void | PAHcurlH1Apply3D (const int D1D, const int Q1D, const int NE, const Array< double > &bc, const Array< double > &gc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
void | PAHcurlH1ApplyTranspose3D (const int D1D, const int Q1D, const int NE, const Array< double > &bc, const Array< double > &bo, const Array< double > &bct, const Array< double > &gct, const Vector &pa_data, const Vector &x, Vector &y) |
void | PAHcurlH1Apply2D (const int D1D, const int Q1D, const int NE, const Array< double > &bc, const Array< double > &gc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
void | PAHcurlH1ApplyTranspose2D (const int D1D, const int Q1D, const int NE, const Array< double > &bc, const Array< double > &bo, const Array< double > &bct, const Array< double > &gct, const Vector &pa_data, const Vector &x, Vector &y) |
void | PAHcurlL2Setup (const int NQ, const int coeffDim, const int NE, const Array< double > &w, Vector &coeff, Vector &op) |
template void | SmemPAHcurlMassAssembleDiagonal3D< 0, 0 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Vector &pa_data, Vector &diag) |
template void | SmemPAHcurlMassAssembleDiagonal3D< 2, 3 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Vector &pa_data, Vector &diag) |
template void | SmemPAHcurlMassAssembleDiagonal3D< 3, 4 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Vector &pa_data, Vector &diag) |
template void | SmemPAHcurlMassAssembleDiagonal3D< 4, 5 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Vector &pa_data, Vector &diag) |
template void | SmemPAHcurlMassAssembleDiagonal3D< 5, 6 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Vector &pa_data, Vector &diag) |
template void | SmemPAHcurlMassApply3D< 0, 0 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
template void | SmemPAHcurlMassApply3D< 2, 3 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
template void | SmemPAHcurlMassApply3D< 3, 4 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
template void | SmemPAHcurlMassApply3D< 4, 5 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
template void | SmemPAHcurlMassApply3D< 5, 6 > (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &bo, const Array< double > &bc, const Array< double > &bot, const Array< double > &bct, const Vector &pa_data, const Vector &x, Vector &y) |
void | PAHdivSetup2D (const int Q1D, const int coeffDim, const int NE, const Array< double > &w, const Vector &j, Vector &coeff_, Vector &op) |
void | PAHdivSetup3D (const int Q1D, const int coeffDim, const int NE, const Array< double > &w, const Vector &j, Vector &coeff_, Vector &op) |
void | PAHdivMassApply2D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &Bo_, const Array< double > &Bc_, const Array< double > &Bot_, const Array< double > &Bct_, const Vector &op_, const Vector &x_, Vector &y_) |
template<int T_D1D = 0, int T_Q1D = 0> | |
void | SmemPAHdivMassApply2D (const int NE, const bool symmetric, const Array< double > &Bo_, const Array< double > &Bc_, const Array< double > &Bot_, const Array< double > &Bct_, const Vector &op_, const Vector &x_, Vector &y_, const int d1d=0, const int q1d=0) |
void | PAHdivMassAssembleDiagonal2D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &Bo_, const Array< double > &Bc_, const Vector &op_, Vector &diag_) |
void | PAHdivMassAssembleDiagonal3D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &Bo_, const Array< double > &Bc_, const Vector &op_, Vector &diag_) |
void | PAHdivMassApply3D (const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &Bo_, const Array< double > &Bc_, const Array< double > &Bot_, const Array< double > &Bct_, const Vector &op_, const Vector &x_, Vector &y_) |
template<int T_D1D = 0, int T_Q1D = 0> | |
void | SmemPAHdivMassApply3D (const int NE, const bool symmetric, const Array< double > &Bo_, const Array< double > &Bc_, const Array< double > &Bot_, const Array< double > &Bct_, const Vector &op_, const Vector &x_, Vector &y_, const int d1d=0, const int q1d=0) |
void | PAHdivMassApply (const int dim, const int D1D, const int Q1D, const int NE, const bool symmetric, const Array< double > &Bo, const Array< double > &Bc, const Array< double > &Bot, const Array< double > &Bct, const Vector &op, const Vector &x, Vector &y) |
void | PAHcurlHdivSetup2D (const int Q1D, const int coeffDim, const int NE, const bool transpose, const Array< double > &w_, const Vector &j, Vector &coeff_, Vector &op) |
void | PAHcurlHdivMassApply3D (const int D1D, const int D1Dtest, const int Q1D, const int NE, const bool scalarCoeff, const bool trialHcurl, const bool transpose, const Array< double > &Bo_, const Array< double > &Bc_, const Array< double > &Bot_, const Array< double > &Bct_, const Vector &op_, const Vector &x_, Vector &y_) |
void | PAHcurlHdivMassApply2D (const int D1D, const int D1Dtest, const int Q1D, const int NE, const bool scalarCoeff, const bool trialHcurl, const bool transpose, const Array< double > &Bo_, const Array< double > &Bc_, const Array< double > &Bot_, const Array< double > &Bct_, const Vector &op_, const Vector &x_, Vector &y_) |
ElementTransformation * | RefinedToCoarse (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... | |
GridFunction * | Extrude1DGridFunction (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) |
void | GetFaceDofs (const int dim, const int face_id, const int dof1d, Array< int > &face_map) |
Return the face map that extracts the degrees of freedom for the requested local face of a quad or hex, returned in Lexicographic order. More... | |
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< Cut > | NewCut (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< HypreParMatrix > | convert_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 DenseMatrix &w_, const Array< double > &b_, const Vector &x_, 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 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 > &bld_, Vector &h0_, 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 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 > &bld_, Vector &h0_, 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 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 int d1d, const int q1d) | |
MFEM_REGISTER_TMOP_KERNELS (void, AddMultPA_Kernel_3D, const double metric_normal, 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 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 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 int d1d, const int q1d) | |
MFEM_REGISTER_TMOP_KERNELS (double, EnergyPA_3D, const double metric_normal, const 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 int d1d, const int q1d) | |
template<typename dtype > | |
void | CalcAdjugate (const TAutoDiffDenseMatrix< dtype > &a, TAutoDiffDenseMatrix< dtype > &adja) |
void | DiffuseField (ParGridFunction &field, int smooth_steps) |
double | AvgElementSize (ParMesh &pmesh) |
double | u (const Vector &xvec) |
double | f (const Vector &xvec) |
void | u_vec (const Vector &xvec, Vector &u) |
void | f_vec (const Vector &xvec, Vector &f) |
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 | |
const int | MAX_D1D = 10 |
const int | MAX_Q1D = 10 |
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 |
class Linear3DFiniteElement | TetrahedronFE |
Linear2DFiniteElement | TriangleFE |
class LinearWedgeFiniteElement | WedgeFE |
constexpr int | HCURL_MAX_D1D = 5 |
constexpr int | HCURL_MAX_Q1D = 5 |
constexpr int | HDIV_MAX_D1D = 5 |
constexpr int | HDIV_MAX_Q1D = 6 |
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 |
Definition at line 21 of file tmop_pa_h2s.cpp.
using mfem::ConservativeDGTraceIntegrator = typedef DGTraceIntegrator |
Definition at line 3037 of file bilininteg.hpp.
typedef DeviceTensor<1,const int> mfem::ConstDeviceArray |
Definition at line 138 of file dtensor.hpp.
typedef DeviceTensor<3,const double> mfem::ConstDeviceCube |
Definition at line 147 of file dtensor.hpp.
typedef DeviceTensor<2,const double> mfem::ConstDeviceMatrix |
Definition at line 144 of file dtensor.hpp.
typedef DeviceTensor<1,const double> mfem::ConstDeviceVector |
Definition at line 141 of file dtensor.hpp.
using mfem::cuda_launch_policy = typedef RAJA::expt::LaunchPolicy<RAJA::expt::null_launch_t, RAJA::expt::cuda_launch_t<true>> |
RAJA Cuda and Hip backends.
Definition at line 119 of file forall.hpp.
using mfem::cuda_teams_x = typedef RAJA::expt::LoopPolicy<RAJA::loop_exec,RAJA::cuda_block_x_direct> |
Definition at line 121 of file forall.hpp.
using mfem::cuda_threads_z = typedef RAJA::expt::LoopPolicy<RAJA::loop_exec,RAJA::cuda_thread_z_direct> |
Definition at line 123 of file forall.hpp.
typedef DeviceTensor<1,int> mfem::DeviceArray |
Definition at line 137 of file dtensor.hpp.
typedef DeviceTensor<3,double> mfem::DeviceCube |
Definition at line 146 of file dtensor.hpp.
typedef DeviceTensor<2,double> mfem::DeviceMatrix |
Definition at line 143 of file dtensor.hpp.
typedef DeviceTensor<1,double> mfem::DeviceVector |
Definition at line 140 of file dtensor.hpp.
typedef L2_FECollection mfem::DG_FECollection |
Declare an alternative name for L2_FECollection = DG_FECollection.
Definition at line 338 of file fe_coll.hpp.
Definition at line 903 of file coefficient.hpp.
using mfem::hip_launch_policy = typedef RAJA::expt::LaunchPolicy<RAJA::expt::null_launch_t, RAJA::expt::hip_launch_t<true>> |
Definition at line 128 of file forall.hpp.
using mfem::hip_teams_x = typedef RAJA::expt::LoopPolicy<RAJA::loop_exec,RAJA::hip_block_x_direct> |
Definition at line 130 of file forall.hpp.
using mfem::hip_threads_z = typedef RAJA::expt::LoopPolicy<RAJA::loop_exec,RAJA::hip_thread_z_direct> |
Definition at line 132 of file forall.hpp.
Convenient alias for the MatrixVectorProductCoefficient.
Definition at line 1853 of file coefficient.hpp.
using mfem::NonconservativeConvectionIntegrator = typedef ConvectionIntegrator |
Definition at line 2306 of file bilininteg.hpp.
typedef std::pair<int,int> mfem::occa_id_t |
typedef std::map<occa_id_t, occa::kernel> mfem::occa_kernel_t |
typedef OperatorHandle mfem::OperatorPtr |
Add an alternative name for OperatorHandle – OperatorPtr.
Definition at line 212 of file handle.hpp.
|
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 |
|
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.
|
strong |
|
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 2157 of file coefficient.hpp.
|
strong |
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.
enum mfem::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. |
|
strong |
|
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 137 of file restriction.hpp.
|
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.
|
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.
|
strong |
Type describing possible layouts for Q-vectors.
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 describes the type of transfer.
Usually used with a TransferMap.
Enumerator | |
---|---|
ParentToSubMesh | |
SubMeshToParent | |
SubMeshToSubMesh |
Definition at line 23 of file transfer_category.hpp.
|
strong |
Data array format for VTK and VTU files.
void mfem::add | ( | const Vector & | v1, |
const Vector & | v2, | ||
Vector & | v | ||
) |
Definition at line 313 of file vector.cpp.
void mfem::add | ( | const Vector & | v1, |
double | alpha, | ||
const Vector & | v2, | ||
Vector & | v | ||
) |
Definition at line 335 of file vector.cpp.
void mfem::add | ( | const double | a, |
const Vector & | x, | ||
const Vector & | y, | ||
Vector & | z | ||
) |
Definition at line 371 of file vector.cpp.
void mfem::add | ( | const double | a, |
const Vector & | x, | ||
const double | b, | ||
const Vector & | y, | ||
Vector & | z | ||
) |
Definition at line 408 of file vector.cpp.
void mfem::Add | ( | const DenseMatrix & | A, |
const DenseMatrix & | B, | ||
double | alpha, | ||
DenseMatrix & | C | ||
) |
C = A + alpha*B.
Definition at line 2282 of file densemat.cpp.
void mfem::Add | ( | double | alpha, |
const double * | A, | ||
double | beta, | ||
const double * | B, | ||
DenseMatrix & | C | ||
) |
C = alpha*A + beta*B.
Definition at line 2288 of file densemat.cpp.
void mfem::Add | ( | double | alpha, |
const DenseMatrix & | A, | ||
double | beta, | ||
const DenseMatrix & | B, | ||
DenseMatrix & | C | ||
) |
C = alpha*A + beta*B.
Definition at line 2294 of file densemat.cpp.
HypreParMatrix * mfem::Add | ( | double | alpha, |
const HypreParMatrix & | A, | ||
double | beta, | ||
const HypreParMatrix & | B | ||
) |
SparseMatrix * mfem::Add | ( | double | a, |
const SparseMatrix & | A, | ||
double | b, | ||
const SparseMatrix & | B | ||
) |
Matrix addition result = a*A + b*B.
Definition at line 3945 of file sparsemat.cpp.
SparseMatrix * mfem::Add | ( | const SparseMatrix & | A, |
const SparseMatrix & | B | ||
) |
Matrix addition result = A + B.
Definition at line 4028 of file sparsemat.cpp.
SparseMatrix * mfem::Add | ( | Array< SparseMatrix * > & | Ai | ) |
Matrix addition result = sum_i A_i.
Definition at line 4033 of file sparsemat.cpp.
void mfem::Add | ( | const SparseMatrix & | A, |
double | alpha, | ||
DenseMatrix & | B | ||
) |
B += alpha * A.
Definition at line 4055 of file sparsemat.cpp.
void mfem::AddMult | ( | const DenseMatrix & | b, |
const DenseMatrix & | c, | ||
DenseMatrix & | a | ||
) |
Matrix matrix multiplication. A += B * C.
Definition at line 2408 of file densemat.cpp.
void mfem::AddMult_a | ( | double | alpha, |
const DenseMatrix & | b, | ||
const DenseMatrix & | c, | ||
DenseMatrix & | a | ||
) |
Matrix matrix multiplication. A += alpha * B * C.
Definition at line 2375 of file densemat.cpp.
void mfem::AddMult_a_AAt | ( | double | a, |
const DenseMatrix & | A, | ||
DenseMatrix & | AAt | ||
) |
AAt += a * A * A^t.
Definition at line 3056 of file densemat.cpp.
void mfem::AddMult_a_ABt | ( | double | a, |
const DenseMatrix & | A, | ||
const DenseMatrix & | B, | ||
DenseMatrix & | ABt | ||
) |
ABt += a * A * B^t.
Definition at line 2940 of file densemat.cpp.
void mfem::AddMult_a_VVt | ( | const double | a, |
const Vector & | v, | ||
DenseMatrix & | VVt | ||
) |
VVt += a * v v^t.
Definition at line 3194 of file densemat.cpp.
void mfem::AddMult_a_VWt | ( | const double | a, |
const Vector & | v, | ||
const Vector & | w, | ||
DenseMatrix & | VWt | ||
) |
VWt += a * v w^t.
Definition at line 3172 of file densemat.cpp.
void mfem::AddMultABt | ( | const DenseMatrix & | A, |
const DenseMatrix & | B, | ||
DenseMatrix & | ABt | ||
) |
ABt += A * B^t.
Definition at line 2847 of file densemat.cpp.
void mfem::AddMultADAt | ( | const DenseMatrix & | A, |
const Vector & | D, | ||
DenseMatrix & | ADAt | ||
) |
ADAt += A D A^t, where D is diagonal.
Definition at line 2698 of file densemat.cpp.
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 2904 of file densemat.cpp.
void mfem::AddMultVVt | ( | const Vector & | v, |
DenseMatrix & | VVt | ||
) |
VVt += v v^t.
Definition at line 3148 of file densemat.cpp.
void mfem::AddMultVWt | ( | const Vector & | v, |
const Vector & | w, | ||
DenseMatrix & | VWt | ||
) |
VWt += v w^t.
Definition at line 3127 of file densemat.cpp.
|
inline |
Definition at line 170 of file lor_util.hpp.
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 2144 of file solvers.cpp.
|
inline |
Definition at line 943 of file solvers.cpp.
const T& mfem::AsConst | ( | T & | a | ) |
|
inline |
Definition at line 137 of file tassign.hpp.
|
inline |
Definition at line 144 of file tassign.hpp.
double mfem::AvgElementSize | ( | ParMesh & | pmesh | ) |
Definition at line 42 of file dist_solver.cpp.
int mfem::BarycentricToVTKTriangle | ( | int * | b, |
int | ref | ||
) |
bool mfem::BasisTypeToFmsBasisType | ( | int | bt, |
FmsBasisType & | btype | ||
) |
Definition at line 892 of file fmsconvert.cpp.
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.
[in,out] | Mlu | batch of square matrices - dimension m x m x n. |
[out] | P | array storing pivot information - dimension m x n. |
[in] | TOL | optional fuzzy comparison tolerance. Defaults to 0.0. |
Definition at line 4260 of file densemat.cpp.
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.
[in] | Mlu | batch of LU factors for matrix M - dimension m x m x n. |
[in] | P | array storing pivot information - dimension m x n. |
[in,out] | X | vector storing right-hand side and then solution - dimension m x n. |
Definition at line 4327 of file densemat.cpp.
void mfem::be_to_bfe | ( | Geometry::Type | geom, |
int | o, | ||
const IntegrationPoint & | ip, | ||
IntegrationPoint & | fip | ||
) |
Definition at line 715 of file gridfunc.cpp.
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 1565 of file solvers.cpp.
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 1581 of file solvers.cpp.
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).
|
inline |
Definition at line 89 of file tmatrix.hpp.
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 4160 of file gridfunc.cpp.
void mfem::BuildBoxes | ( | const Mesh & | mesh, |
std::vector<::moonolith::AABB< Dim, double >> & | element_boxes | ||
) |
Definition at line 95 of file mortarassembler.cpp.
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.
[in] | fespace | A vector finite element space |
[in] | constrained_att | Boundary attributes to constrain |
[out] | constraint_rowstarts | The rowstarts for separately eliminated constraints, possible input to EliminationCGSolver |
[in] | parallel | Indicate that fespace is actually a ParFiniteElementSpace and the numbering in the returned matrix should be based on truedofs. |
Definition at line 780 of file constraints.cpp.
void mfem::CalcAdjugate | ( | const TAutoDiffDenseMatrix< dtype > & | a, |
TAutoDiffDenseMatrix< dtype > & | adja | ||
) |
Definition at line 439 of file taddensemat.hpp.
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 2440 of file densemat.cpp.
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 2512 of file densemat.cpp.
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.
fe | the element we are calculating on | |
ir | the integration rule to calculate the gradients on | |
[out] | G | must be (nip x dim x dof) with column major storage |
[in] | dof_map | the inverse of dof_map is applied to reorder local dofs. |
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 2548 of file densemat.cpp.
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 2615 of file densemat.cpp.
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 2654 of file densemat.cpp.
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.
fe | the element we are calculating on |
ir | the integration rule to calculate the shape matrix on |
B | must be (nip x dof) with column major storage |
dof_map | the inverse of dof_map is applied to reorder local dofs. |
void mfem::CalcShapes | ( | const FiniteElement & | fe, |
const IntegrationRule & | ir, | ||
real_t * | B, | ||
real_t * | G, | ||
const Array< int > * | dof_map | ||
) |
int mfem::CanonicalNodeNumber | ( | FiniteElementSpace & | fespace, |
int | node, | ||
bool | parallel, | ||
int | d = 0 |
||
) |
Definition at line 754 of file constraints.cpp.
bool mfem::CanShallowCopy | ( | const Memory< T > & | src, |
MemoryClass | mc | ||
) |
int mfem::CartesianToVTKPrism | ( | int | i, |
int | j, | ||
int | k, | ||
int | ref | ||
) |
int mfem::CartesianToVTKTensor | ( | int | idx_in, |
int | ref, | ||
Geometry::Type | geom | ||
) |
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 889 of file solvers.cpp.
|
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 493 of file vector.hpp.
void mfem::CheckScalarBasisType | ( | const FiniteElementSpace & | fes | ) |
void mfem::CheckVectorBasisType | ( | const FiniteElementSpace & | fes | ) |
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 4430 of file gridfunc.cpp.
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 1459 of file coefficient.cpp.
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 1489 of file coefficient.cpp.
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 1416 of file coefficient.cpp.
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 1437 of file coefficient.cpp.
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.
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.
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.
void mfem::CreateVTKElementConnectivity | ( | Array< int > & | con, |
Geometry::Type | geom, | ||
int | ref | ||
) |
|
inline |
Definition at line 629 of file ncmesh.cpp.
|
inline |
Definition at line 632 of file ncmesh.cpp.
|
inline |
Definition at line 626 of file ncmesh.cpp.
|
inline |
Definition at line 620 of file ncmesh.cpp.
|
inline |
Definition at line 623 of file ncmesh.cpp.
|
inline |
Definition at line 635 of file ncmesh.cpp.
void mfem::CuCheckLastError | ( | ) |
int mfem::CuGetDeviceCount | ( | ) |
void * mfem::CuMallocManaged | ( | void ** | dptr, |
size_t | bytes | ||
) |
void * mfem::CuMemAlloc | ( | void ** | dptr, |
size_t | bytes | ||
) |
void * mfem::CuMemAllocHostPinned | ( | void ** | ptr, |
size_t | bytes | ||
) |
void * mfem::CuMemcpyDtoD | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::CuMemcpyDtoDAsync | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::CuMemcpyDtoH | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::CuMemcpyDtoHAsync | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::CuMemcpyHtoD | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::CuMemcpyHtoDAsync | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::CuMemFree | ( | void * | dptr | ) |
void * mfem::CuMemFreeHostPinned | ( | void * | ptr | ) |
void mfem::CuWrap1D | ( | const int | N, |
DBODY && | d_body | ||
) |
Definition at line 391 of file forall.hpp.
void mfem::CuWrap2D | ( | const int | N, |
DBODY && | d_body, | ||
const int | X, | ||
const int | Y, | ||
const int | BZ | ||
) |
Definition at line 400 of file forall.hpp.
void mfem::CuWrap3D | ( | const int | N, |
DBODY && | d_body, | ||
const int | X, | ||
const int | Y, | ||
const int | Z, | ||
const int | G | ||
) |
Definition at line 412 of file forall.hpp.
int mfem::DataCollectionToFmsDataCollection | ( | DataCollection * | mfem_dc, |
FmsDataCollection * | dc | ||
) |
In-memory conversion of MFEM data collection to an FMS data collection.
mfem_dc | The MFEM data collection to convert. | |
[out] | dc | A pointer to a new FmsDataCollection containing the MFEM data. |
Definition at line 1868 of file fmsconvert.cpp.
class if mfem::defined | ( | __alignas_is_defined | ) |
Definition at line 38 of file sparsemat.hpp.
|
inline |
|
inline |
Definition at line 183 of file lor_util.hpp.
|
inline |
Definition at line 188 of file lor_util.hpp.
void mfem::DetOfLinComb | ( | const DenseMatrix & | A, |
const DenseMatrix & | B, | ||
Vector & | c | ||
) |
bool mfem::DeviceCanUseCeed | ( | ) |
Function that determines if a CEED kernel should be used, based on the current mfem::Device configuration.
|
inline |
Function that determines if an OCCA kernel should be used, based on the current mfem::Device configuration.
void mfem::DiffuseField | ( | ParGridFunction & | field, |
int | smooth_steps | ||
) |
Definition at line 17 of file dist_solver.cpp.
HypreParMatrix* mfem::DiscreteCurl | ( | ParFiniteElementSpace * | face_fespace, |
ParFiniteElementSpace * | edge_fespace | ||
) |
Compute the discrete curl matrix between the ND1 and RT0 spaces.
HypreParMatrix* mfem::DiscreteGrad | ( | ParFiniteElementSpace * | edge_fespace, |
ParFiniteElementSpace * | vert_fespace | ||
) |
Compute the discrete gradient matrix between the nodal linear and ND1 spaces.
|
inline |
Definition at line 644 of file vector.hpp.
|
inline |
Definition at line 632 of file vector.hpp.