![]() |
MFEM
v4.2.0
Finite element discretization library
|
Namespaces | |
bin_io | |
common | |
electromagnetics | |
GinkgoWrappers | |
kernels | |
navier | |
superlu | |
superlu_internal | |
TransferKernels | |
Classes | |
class | Array |
class | adios2stream |
class | Array2D |
Dynamic 2D array using row-major layout. More... | |
class | Array3D |
class | BlockArray |
class | MPI_Session |
A simple convenience 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 | 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... | |
class | OutStream |
Simple extension of std::ostream. More... | |
struct | Hashed2 |
struct | Hashed4 |
class | HashTable |
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 | 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 | 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 | CPardisoSolver |
MKL Parallel Direct Sparse Solver for Clusters. More... | |
class | DenseMatrix |
Data type dense matrix using column-major storage. More... | |
class | LUFactors |
class | DenseMatrixInverse |
class | DenseMatrixEigensystem |
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 | 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 | 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 | 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 | 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 | 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 | PetscParVector |
Wrapper for PETSc's vector class. More... | |
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 | 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 | 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 | 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 |
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... | |
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 | Rebalancer |
ParMesh rebalancing operator. More... | |
class | MesquiteMesh |
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 on higher-order hexahedral, prismatic, quadrilateral or triangular meshes. More... | |
struct | RefTrf |
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 | 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... | |
class | Wedge |
Data type Wedge element. 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 | 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 | 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 | VectorFEMassIntegrator |
class | VectorDivergenceIntegrator |
class | DivDivIntegrator |
(Q div u, div v) for RT elements More... | |
class | VectorDiffusionIntegrator |
class | ElasticityIntegrator |
class | DGTraceIntegrator |
class | DGDiffusionIntegrator |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | PositiveFiniteElement |
Class for finite elements utilizing the always positive Bernstein basis. More... | |
class | VectorFiniteElement |
Intermediate class for finite elements whose basis functions return vector values. More... | |
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 quadractic finite element with uniformly spaced nodes. More... | |
class | QuadPos1DFiniteElement |
A 1D quadratic positive element utilizing the 2nd order Bernstein basis. 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 | BiQuadPos2DFiniteElement |
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 | 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 | 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 | Nedelec1HexFiniteElement |
A 3D 1st order Nedelec element on a cube. More... | |
class | Nedelec1TetFiniteElement |
A 3D 1st order Nedelec element on a tetrahedron. 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 | RotTriLinearHexFiniteElement |
class | Poly_1D |
class | TensorBasisElement |
class | NodalTensorFiniteElement |
class | PositiveTensorFiniteElement |
class | VectorTensorFiniteElement |
class | H1_SegmentElement |
Arbitrary H1 elements in 1D. More... | |
class | H1_QuadrilateralElement |
Arbitrary H1 elements in 2D on a square. More... | |
class | H1_HexahedronElement |
Arbitrary H1 elements in 3D on a cube. 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 | H1Ser_QuadrilateralElement |
Arbitrary order H1 serendipity elements in 2D on a quad. More... | |
class | H1Pos_HexahedronElement |
Arbitrary order H1 elements in 3D utilizing the Bernstein basis 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 | H1Pos_TriangleElement |
Arbitrary order H1 elements in 2D utilizing the Bernstein basis on a triangle. More... | |
class | H1Pos_TetrahedronElement |
class | H1_WedgeElement |
Arbitrary order H1 elements in 3D on a wedge. 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 | H1Pos_WedgeElement |
Arbitrary order H1 elements in 3D utilizing the Bernstein basis on a wedge. More... | |
class | L2_SegmentElement |
Arbitrary L2 elements in 1D on a segment. More... | |
class | L2Pos_SegmentElement |
Arbitrary order L2 elements in 1D utilizing the Bernstein basis on a segment. More... | |
class | L2_QuadrilateralElement |
Arbitrary order L2 elements in 2D on a square. More... | |
class | L2Pos_QuadrilateralElement |
Arbitrary order L2 elements in 2D utilizing the Bernstein basis on a square. More... | |
class | L2_HexahedronElement |
Arbitrary order L2 elements in 3D on a cube. More... | |
class | L2Pos_HexahedronElement |
Arbitrary order L2 elements in 3D utilizing the Bernstein basis on a cube. More... | |
class | L2_TriangleElement |
Arbitrary order L2 elements in 2D on a triangle. More... | |
class | L2Pos_TriangleElement |
Arbitrary order L2 elements in 2D utilizing the Bernstein basis on a triangle. More... | |
class | L2_TetrahedronElement |
Arbitrary order L2 elements in 3D on a tetrahedron. More... | |
class | L2Pos_TetrahedronElement |
class | L2_WedgeElement |
Arbitrary order L2 elements in 3D on a wedge. More... | |
class | P0WedgeFiniteElement |
A 0th order L2 element on a Wedge. More... | |
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 | 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 | 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 | 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 | 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 | QuadratureSpace |
Class representing the storage layout of a QuadratureFunction. More... | |
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 between a coarse mesh and an embedded refined mesh using L2 projection. More... | |
class | FiniteElementSpaceHierarchy |
class | ParFiniteElementSpaceHierarchy |
class | Geometry |
class | RefinedGeometry |
class | GeometryRefiner |
class | GridFunction |
Class for grid function - Vector with associated FE space. More... | |
class | QuadratureFunction |
Class representing a function through its values (scalar or vector) at quadrature points. More... | |
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 | 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 | 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 | 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 | VectorQuadratureLFIntegrator |
class | QuadratureLFIntegrator |
class | Multigrid |
Multigrid solver class. 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 | PANonlinearFormExtension |
Data and methods for partially-assembled 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 | 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 | ParL2FaceRestriction |
Operator that extracts Face degrees of freedom in parallel. 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 | 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 | H1FaceRestriction |
Operator that extracts Face degrees of freedom. More... | |
class | L2FaceRestriction |
Operator that extracts Face degrees of freedom. 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_Metric_001 |
Metric without a type, 2D. More... | |
class | TMOP_Metric_skew2D |
Skew metric, 2D. More... | |
class | TMOP_Metric_skew3D |
Skew metric, 3D. More... | |
class | TMOP_Metric_aspratio2D |
Aspect ratio metric, 2D. More... | |
class | TMOP_Metric_aspratio3D |
Aspect ratio metric, 3D. More... | |
class | TMOP_Metric_SSA2D |
Shape+Size+Orientation metric, 2D. More... | |
class | TMOP_Metric_002 |
Shape, ideal barrier metric, 2D. More... | |
class | TMOP_Metric_007 |
Shape & area, ideal barrier metric, 2D. More... | |
class | TMOP_Metric_009 |
Shape & area metric, 2D. More... | |
class | TMOP_Metric_022 |
Shifted barrier form of metric 2 (shape, ideal barrier metric), 2D. More... | |
class | TMOP_Metric_050 |
Shape, ideal barrier metric, 2D. More... | |
class | TMOP_Metric_055 |
Area metric, 2D. More... | |
class | TMOP_Metric_056 |
Area, ideal barrier metric, 2D. More... | |
class | TMOP_Metric_058 |
Shape, ideal barrier metric, 2D. More... | |
class | TMOP_Metric_077 |
Area, ideal barrier metric, 2D. More... | |
class | TMOP_Metric_085 |
Shape & orientation metric, 2D. More... | |
class | TMOP_Metric_211 |
Untangling metric, 2D. More... | |
class | TMOP_Metric_252 |
Shifted barrier form of metric 56 (area, ideal barrier metric), 2D. More... | |
class | TMOP_Metric_301 |
Shape, ideal barrier metric, 3D. More... | |
class | TMOP_Metric_302 |
Shape, ideal barrier metric, 3D. More... | |
class | TMOP_Metric_303 |
Shape, ideal barrier metric, 3D. More... | |
class | TMOP_Metric_315 |
Volume metric, 3D. More... | |
class | TMOP_Metric_316 |
Volume, ideal barrier metric, 3D. More... | |
class | TMOP_Metric_321 |
Shape & volume, ideal barrier metric, 3D. More... | |
class | TMOP_Metric_352 |
Shifted barrier form of 3D metric 16 (volume, ideal barrier metric), 3D. 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 | 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 | 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... | |
Typedefs | |
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, double > | DeviceVector |
typedef DeviceTensor< 2, double > | DeviceMatrix |
typedef OperatorHandle | OperatorPtr |
Add an alternative name for OperatorHandle – OperatorPtr. More... | |
typedef NCMesh::RefCoord | RefCoord |
typedef RefCoord | RefPoint [3] |
typedef L2_FECollection | DG_FECollection |
Declare an alternative name for L2_FECollection = DG_FECollection. More... | |
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<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 * | CuMemFree (void *d_ptr) |
Frees device 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 | RajaCudaWrap1D (const int N, DBODY &&d_body) |
template<typename DBODY > | |
void | RajaCudaWrap2D (const int N, DBODY &&d_body, const int X, const int Y, const int BZ) |
template<typename DBODY > | |
void | RajaCudaWrap3D (const int N, DBODY &&d_body, const int X, const int Y, const int Z) |
template<typename HBODY > | |
void | RajaOmpWrap (const int N, HBODY &&h_body) |
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) |
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) |
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) |
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... | |
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 * | HipMemFree (void *d_ptr) |
Frees device memory. 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... | |
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) |
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_string (int i) |
Convert an integer to an 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... | |
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 | 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> | |
DeviceTensor< sizeof...(Dims), T > | Reshape (T *ptr, Dims...dims) |
Wrap a pointer as a DeviceTensor with automatically deduced template parameters. 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... | |
void | delete_hypre_CSRMatrixData (hypre_CSRMatrix *M) |
void | delete_hypre_ParCSRMatrixColMapOffd (hypre_ParCSRMatrix *A) |
void | delete_hypre_CSRMatrixI (hypre_CSRMatrix *M) |
void | delete_hypre_CSRMatrixJ (hypre_CSRMatrix *M) |
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_Int >> &blockProcOffsets, std::vector< HYPRE_Int > &procOffsets, std::vector< std::vector< int >> &procBlockOffsets, HYPRE_Int &firstLocal, HYPRE_Int &globalNum) |
HypreParMatrix * | HypreParMatrixFromBlocks (Array2D< HypreParMatrix * > &blocks, Array2D< double > *blockCoeff=NULL) |
Returns a merged hypre matrix constructed from hypre matrix blocks. More... | |
void | EliminateBC (HypreParMatrix &A, HypreParMatrix &Ae, const Array< int > &ess_dof_list, const Vector &X, Vector &B) |
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) |
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 > | |
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... | |
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) |
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) |
template<typename T > | |
void | WriteBinaryOrASCII (std::ostream &out, std::vector< char > &buf, const T &val, const char *suffix, VTKFormat format) |
template<> | |
void | WriteBinaryOrASCII< uint8_t > (std::ostream &out, std::vector< char > &buf, const uint8_t &val, const char *suffix, VTKFormat format) |
template<> | |
void | WriteBinaryOrASCII< double > (std::ostream &out, std::vector< char > &buf, const double &val, const char *suffix, VTKFormat format) |
template<> | |
void | WriteBinaryOrASCII< float > (std::ostream &out, std::vector< char > &buf, const float &val, const char *suffix, VTKFormat format) |
void | WriteBase64WithSizeAndClear (std::ostream &out, std::vector< char > &buf, int compression_level) |
std::ostream & | operator<< (std::ostream &out, 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) |
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) |
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) |
void | WriteVTKEncodedCompressed (std::ostream &out, const void *bytes, uint32_t nbytes, int compression_level) |
bool | IsBigEndian () |
const char * | VTKByteOrder () |
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 | 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 | 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 | 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 NE, const Array< double > &w, const Vector &j, Vector &_coeff, Vector &op) |
void | PAHdivSetup3D (const int Q1D, 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 Array< double > &_Bo, const Array< double > &_Bc, const Array< double > &_Bot, const Array< double > &_Bct, const Vector &_op, const Vector &_x, Vector &_y) |
void | PAHdivMassAssembleDiagonal2D (const int D1D, const int Q1D, const int NE, 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 Array< double > &_Bo, const Array< double > &_Bc, const Vector &_op, Vector &_diag) |
void | PAHdivMassApply3D (const int D1D, const int Q1D, const int NE, 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 | 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 | 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 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 Array< double > &_Bo, const Array< double > &_Bc, const Array< double > &_Bot, const Array< double > &_Bct, const Vector &_op, const Vector &_x, Vector &_y) |
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... | |
void | InvertLinearTrans (ElementTransformation &trans, const IntegrationPoint &pt, Vector &x) |
H1_WedgeElement | WedgeFE (1) |
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) |
void | be_to_bfe (Geometry::Type geom, int o, const IntegrationPoint &ip, IntegrationPoint &fip) |
std::ostream & | operator<< (std::ostream &out, const GridFunction &sol) |
std::ostream & | operator<< (std::ostream &out, const QuadratureFunction &qf) |
Overload operator<< for std::ostream and QuadratureFunction. More... | |
double | ZZErrorEstimator (BilinearFormIntegrator &blfi, GridFunction &u, GridFunction &flux, Vector &error_estimates, Array< int > *aniso_flags, int with_subdomains, bool with_coeff) |
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... | |
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 > &faceMap) |
int | PermuteFaceL2 (const int dim, const int face_id1, const int face_id2, const int orientation, const int size1d, const int index) |
int | ToLexOrdering (const int dim, const int face_id, const int size1d, const int index) |
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) |
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 = 14 |
const int | MAX_Q1D = 14 |
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 |
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 |
SundialsMemHelper | sunmemHelper |
TriLinear3DFiniteElement | HexahedronFE |
const RefCoord | T_HALF = (1ll << 59) |
const RefCoord | T_ONE = (1ll << 60) |
const RefCoord | T_TWO = (1ll << 61) |
const RefCoord | S_HALF = 1 |
const RefCoord | S_ONE = 2 |
const RefCoord | S_TWO = 4 |
PointFiniteElement | PointFE |
BiLinear2DFiniteElement | QuadrilateralFE |
Linear1DFiniteElement | SegmentFE |
class Linear3DFiniteElement | TetrahedronFE |
Linear2DFiniteElement | TriangleFE |
class H1_WedgeElement | WedgeFE |
constexpr int | HCURL_MAX_D1D = 5 |
constexpr int | HCURL_MAX_Q1D = 6 |
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... | |
typedef DeviceTensor<1,int> mfem::DeviceArray |
Definition at line 140 of file dtensor.hpp.
typedef DeviceTensor<2,double> mfem::DeviceMatrix |
Definition at line 142 of file dtensor.hpp.
typedef DeviceTensor<1,double> mfem::DeviceVector |
Definition at line 141 of file dtensor.hpp.
typedef L2_FECollection mfem::DG_FECollection |
Declare an alternative name for L2_FECollection = DG_FECollection.
Definition at line 269 of file fe_coll.hpp.
Convenient alias for the MatrixVectorProductCoefficient.
Definition at line 1350 of file coefficient.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 204 of file handle.hpp.
typedef NCMesh::RefCoord mfem::RefCoord |
Definition at line 91 of file ncmesh_tables.hpp.
typedef RefCoord mfem::RefPoint[3] |
Definition at line 140 of file ncmesh_tables.hpp.
|
strong |
Enumeration defining the assembly level for bilinear and nonlinear form classes derived from Operator.
Definition at line 30 of file bilinearform.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 65 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 26 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, 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, MANAGED }. |
MANAGED |
Memory types: { MANAGED }. |
Definition at line 58 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 Umpire. |
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 Umpire. |
SIZE |
Number of host and device memory types. |
Definition at line 28 of file mem_manager.hpp.
|
strong |
Type describing possible layouts for Q-vectors.
Enumerator | |
---|---|
byNODES |
NQPT x VDIM x NE. |
byVDIM |
VDIM x NQPT x NE. |
Definition at line 21 of file quadinterpolator.hpp.
|
strong |
void mfem::add | ( | const Vector & | v1, |
const Vector & | v2, | ||
Vector & | v | ||
) |
Definition at line 261 of file vector.cpp.
void mfem::add | ( | const Vector & | v1, |
double | alpha, | ||
const Vector & | v2, | ||
Vector & | v | ||
) |
Definition at line 283 of file vector.cpp.
void mfem::add | ( | const double | a, |
const Vector & | x, | ||
const Vector & | y, | ||
Vector & | z | ||
) |
Definition at line 319 of file vector.cpp.
void mfem::add | ( | const double | a, |
const Vector & | x, | ||
const double | b, | ||
const Vector & | y, | ||
Vector & | z | ||
) |
Definition at line 356 of file vector.cpp.
HypreParMatrix * mfem::Add | ( | double | alpha, |
const HypreParMatrix & | A, | ||
double | beta, | ||
const HypreParMatrix & | B | ||
) |
void mfem::Add | ( | const DenseMatrix & | A, |
const DenseMatrix & | B, | ||
double | alpha, | ||
DenseMatrix & | C | ||
) |
C = A + alpha*B.
Definition at line 1928 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 1934 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 1945 of file densemat.cpp.
SparseMatrix * mfem::Add | ( | double | a, |
const SparseMatrix & | A, | ||
double | b, | ||
const SparseMatrix & | B | ||
) |
Matrix addition result = a*A + b*B.
Definition at line 3649 of file sparsemat.cpp.
SparseMatrix * mfem::Add | ( | const SparseMatrix & | A, |
const SparseMatrix & | B | ||
) |
Matrix addition result = A + B.
Definition at line 3732 of file sparsemat.cpp.
SparseMatrix * mfem::Add | ( | Array< SparseMatrix * > & | Ai | ) |
Matrix addition result = sum_i A_i.
Definition at line 3737 of file sparsemat.cpp.
void mfem::Add | ( | const SparseMatrix & | A, |
double | alpha, | ||
DenseMatrix & | B | ||
) |
B += alpha * A.
Definition at line 3759 of file sparsemat.cpp.
void mfem::AddMult | ( | const DenseMatrix & | b, |
const DenseMatrix & | c, | ||
DenseMatrix & | a | ||
) |
Matrix matrix multiplication. A += B * C.
Definition at line 2059 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 2026 of file densemat.cpp.
void mfem::AddMult_a_AAt | ( | double | a, |
const DenseMatrix & | A, | ||
DenseMatrix & | AAt | ||
) |
AAt += a * A * A^t.
Definition at line 2707 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 2591 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 2845 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 2823 of file densemat.cpp.
void mfem::AddMultABt | ( | const DenseMatrix & | A, |
const DenseMatrix & | B, | ||
DenseMatrix & | ABt | ||
) |
ABt += A * B^t.
Definition at line 2498 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 2349 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 2555 of file densemat.cpp.
void mfem::AddMultVVt | ( | const Vector & | v, |
DenseMatrix & | VVt | ||
) |
VVt += v v^t.
Definition at line 2799 of file densemat.cpp.
void mfem::AddMultVWt | ( | const Vector & | v, |
const Vector & | w, | ||
DenseMatrix & | VWt | ||
) |
VWt += v w^t.
Definition at line 2778 of file densemat.cpp.
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 1777 of file solvers.cpp.
|
inline |
Definition at line 770 of file solvers.cpp.
|
inline |
Definition at line 137 of file tassign.hpp.
|
inline |
Definition at line 144 of file tassign.hpp.
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 3514 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 3581 of file densemat.cpp.
void mfem::be_to_bfe | ( | Geometry::Type | geom, |
int | o, | ||
const IntegrationPoint & | ip, | ||
IntegrationPoint & | fip | ||
) |
Definition at line 642 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 1328 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 1344 of file solvers.cpp.
|
inline |
Definition at line 89 of file tmatrix.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 2091 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 2163 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 2199 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 2266 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 2305 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::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 720 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 435 of file vector.hpp.
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 3782 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 840 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 870 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 797 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 818 of file coefficient.cpp.
void mfem::CreateVTKElementConnectivity | ( | Array< int > & | con, |
Geometry::Type | geom, | ||
int | ref | ||
) |
|
inline |
Definition at line 610 of file ncmesh.cpp.
|
inline |
Definition at line 613 of file ncmesh.cpp.
|
inline |
Definition at line 607 of file ncmesh.cpp.
|
inline |
Definition at line 601 of file ncmesh.cpp.
|
inline |
Definition at line 604 of file ncmesh.cpp.
|
inline |
Definition at line 616 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::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::CuWrap1D | ( | const int | N, |
DBODY && | d_body | ||
) |
Definition at line 211 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 220 of file forall.hpp.
void mfem::CuWrap3D | ( | const int | N, |
DBODY && | d_body, | ||
const int | X, | ||
const int | Y, | ||
const int | Z | ||
) |
Definition at line 232 of file forall.hpp.
class if mfem::defined | ( | __alignas_is_defined | ) |
Definition at line 34 of file sparsemat.hpp.
|
inline |
|
inline |
|
inline |
|
inline |
void mfem::DetOfLinComb | ( | const DenseMatrix & | A, |
const DenseMatrix & | B, | ||
Vector & | c | ||
) |
|
inline |
Function that determines if an OCCA kernel should be used, based on the current mfem::Device configuration.
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 584 of file vector.hpp.
|
inline |
Definition at line 572 of file vector.hpp.
void mfem::dsyev_Eigensystem | ( | DenseMatrix & | a, |
Vector & | ev, | ||
DenseMatrix * | evect | ||
) |
Definition at line 1017 of file densemat.cpp.
void mfem::dsyevr_Eigensystem | ( | DenseMatrix & | a, |
Vector & | ev, | ||
DenseMatrix * | evect | ||
) |
Definition at line 854 of file densemat.cpp.
void mfem::dsygv_Eigensystem | ( | DenseMatrix & | a, |
DenseMatrix & | b, | ||
Vector & | ev, | ||
DenseMatrix * | evect | ||
) |
Definition at line 1091 of file densemat.cpp.
void mfem::EliminateBC | ( | PetscParMatrix & | A, |
PetscParMatrix & | Ae, | ||
const Array< int > & | ess_dof_list, | ||
const Vector & | X, | ||
Vector & | B | ||
) |
void mfem::EliminateBC | ( | HypreParMatrix & | A, |
HypreParMatrix & | Ae, | ||
const Array< int > & | ess_dof_list, | ||
const Vector & | X, | ||
Vector & | B | ||
) |
Mesh * mfem::Extrude1D | ( | Mesh * | mesh, |
const int | ny, | ||
const double | sy, | ||
const bool | closed | ||
) |
GridFunction * mfem::Extrude1DGridFunction | ( | Mesh * | mesh, |
Mesh * | mesh2d, | ||
GridFunction * | sol, | ||
const int | ny | ||
) |
Extrude a scalar 1D GridFunction, after extruding the mesh with Extrude1D.
Definition at line 3849 of file gridfunc.cpp.
Mesh * mfem::Extrude2D | ( | Mesh * | mesh, |
const int | nz, | ||
const double | sz | ||
) |
|
inline |
void mfem::FindPartitioningComponents | ( | Table & | elem_elem, |
const Array< int > & | partitioning, | ||
Array< int > & | component, | ||
Array< int > & | num_comp | ||
) |
void mfem::FindTMax | ( | Vector & | c, |
Vector & | x, | ||
double & | tmax, | ||
const double | factor, | ||
const int | Dim | ||
) |
|
inline |
The forall kernel body wrapper.
Definition at line 308 of file forall.hpp.
void mfem::GatherBlockOffsetData | ( | MPI_Comm | comm, |
const int | rank, | ||
const int | nprocs, | ||
const int | num_loc, | ||
const Array< int > & | offsets, | ||
std::vector< int > & | all_num_loc, | ||
const int | numBlocks, | ||
std::vector< std::vector< HYPRE_Int >> & | blockProcOffsets, | ||
std::vector< HYPRE_Int > & | procOffsets, | ||
std::vector< std::vector< int >> & | procBlockOffsets, | ||
HYPRE_Int & | firstLocal, | ||
HYPRE_Int & | globalNum | ||
) |
|
inline |
Definition at line 748 of file solvers.cpp.
ErrorAction mfem::get_error_action | ( | ) |
const char * mfem::GetConfigStr | ( | ) |
Return the MFEM configuration as a string.
Definition at line 66 of file version.cpp.
void mfem::GetFaceDofs | ( | const int | dim, |
const int | face_id, | ||
const int | dof1d, | ||
Array< int > & | faceMap | ||
) |
Definition at line 538 of file restriction.cpp.
const char * mfem::GetGitStr | ( | ) |
Return the MFEM Git hash as a string.
Definition at line 59 of file version.cpp.
MPI_Comm mfem::GetGlobalMPI_Comm | ( | ) |
Get MFEM's "global" MPI communicator.
Definition at line 62 of file globals.cpp.
MemoryClass mfem::GetMemoryClass | ( | const Memory< T > & | mem, |
bool | on_dev | ||
) |
Return the memory class to be used by the functions Read(), Write(), and ReadWrite(), while setting the device use flag in mem, if on_dev is true.
Definition at line 289 of file device.hpp.
MemoryType mfem::GetMemoryType | ( | MemoryClass | mc | ) |
Return a suitable MemoryType for a given MemoryClass.
Definition at line 51 of file mem_manager.cpp.
int mfem::GetVersion | ( | ) |
Return the MFEM version number as a single integer.
Definition at line 22 of file version.cpp.
int mfem::GetVersionMajor | ( | ) |
Return the MFEM major version number as an integer.
Definition at line 28 of file version.cpp.
int mfem::GetVersionMinor | ( | ) |
Return the MFEM minor version number as an integer.
Definition at line 34 of file version.cpp.
int mfem::GetVersionPatch | ( | ) |
Return the MFEM version patch number as an integer.
Definition at line 40 of file version.cpp.
const char * mfem::GetVersionStr | ( | ) |
Return the MFEM version number as a string.
Definition at line 46 of file version.cpp.
double mfem::GlobalLpNorm | ( | const double | p, |
double | loc_norm, | ||
MPI_Comm | comm | ||
) |
Compute a global Lp norm from the local Lp norms computed by each processor.
Definition at line 989 of file pgridfunc.cpp.
int mfem::GMRES | ( | const Operator & | A, |
Vector & | x, | ||
const Vector & | b, | ||
Solver & | M, | ||
int & | max_iter, | ||
int | m, | ||
double & | tol, | ||
double | atol, | ||
int | printit | ||
) |
GMRES method. (tolerances are squared)
Definition at line 1156 of file solvers.cpp.
void mfem::GMRES | ( | const Operator & | A, |
Solver & | B, | ||
const Vector & | b, | ||
Vector & | x, | ||
int | print_iter, | ||
int | max_num_iter, | ||
int | m, | ||
double | rtol, | ||
double | atol | ||
) |
GMRES method. (tolerances are squared)
Definition at line 1173 of file solvers.cpp.
void mfem::GmshHOHexahedronMapping | ( | int | order, |
int * | map | ||
) |
Generate Gmsh vertex mapping for a Hexahedron.
void mfem::GmshHOPyramidMapping | ( | int | order, |
int * | map | ||
) |
void mfem::GmshHOQuadrilateralMapping | ( | int | order, |
int * | map | ||
) |
Generate Gmsh vertex mapping for a Quadrilateral.
void mfem::GmshHOSegmentMapping | ( | int | order, |
int * | map | ||
) |
void mfem::GmshHOTetrahedronMapping | ( | int | order, |
int * | map | ||
) |
Generate Gmsh vertex mapping for a Tetrahedron.
void mfem::GmshHOTriangleMapping | ( | int | order, |
int * | map | ||
) |
void mfem::GmshHOWedgeMapping | ( | int | order, |
int * | map | ||
) |
void mfem::HipCheckLastError | ( | ) |
int mfem::HipGetDeviceCount | ( | ) |
void * mfem::HipMallocManaged | ( | void ** | dptr, |
size_t | bytes | ||
) |
void * mfem::HipMemAlloc | ( | void ** | dptr, |
size_t | bytes | ||
) |
void * mfem::HipMemcpyDtoD | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::HipMemcpyDtoDAsync | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::HipMemcpyDtoH | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::HipMemcpyDtoHAsync | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::HipMemcpyHtoD | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void * mfem::HipMemcpyHtoDAsync | ( | void * | dst, |
const void * | src, | ||
size_t | bytes | ||
) |
void mfem::HipWrap1D | ( | const int | N, |
DBODY && | d_body | ||
) |
Definition at line 273 of file forall.hpp.
void mfem::HipWrap2D | ( | const int | N, |
DBODY && | d_body, | ||
const int | X, | ||
const int | Y, | ||
const int | BZ | ||
) |
Definition at line 282 of file forall.hpp.
void mfem::HipWrap3D | ( | const int | N, |
DBODY && | d_body, | ||
const int | X, | ||
const int | Y, | ||
const int | Z | ||
) |
Definition at line 293 of file forall.hpp.
|
inline |
Shortcut to Read(const Memory<T> &mem, int size, false)
Definition at line 314 of file device.hpp.
|
inline |
Shortcut to ReadWrite(Memory<T> &mem, int size, false)
Definition at line 348 of file device.hpp.
|
inline |
Shortcut to Write(const Memory<T> &mem, int size, false)
Definition at line 331 of file device.hpp.
HypreParMatrix * mfem::HypreParMatrixFromBlocks | ( | Array2D< HypreParMatrix * > & | blocks, |
Array2D< double > * | blockCoeff = NULL |
||
) |
Returns a merged hypre matrix constructed from hypre matrix blocks.
It is assumed that all block matrices use the same communicator, and the block sizes are consistent in rows and columns. Rows and columns are renumbered but not redistributed in parallel, e.g. the block rows owned by each process remain on that process in the resulting matrix. Some blocks can be NULL. Each block and the entire system can be rectangular. Scalability to extremely large processor counts is limited by global MPI communication, see GatherBlockOffsetData() in hypre.cpp.
|
inline |
Define a shortcut for std::numeric_limits<double>::infinity()
Definition at line 45 of file vector.hpp.
double mfem::InnerProduct | ( | HypreParVector * | x, |
HypreParVector * | y | ||
) |
double mfem::InnerProduct | ( | HypreParVector & | x, |
HypreParVector & | y | ||
) |
|
inline |
Returns the inner product of x and y.
In parallel this computes the inner product of the local vectors, producing different results on each MPI rank.
Definition at line 603 of file vector.hpp.
|
inline |
Returns the inner product of x and y in parallel.
In parallel this computes the inner product of the global vectors, producing identical results on each MPI rank.
Definition at line 613 of file vector.hpp.
NURBSPatch* mfem::Interpolate | ( | NURBSPatch & | p1, |
NURBSPatch & | p2 | ||
) |
void mfem::InterpolateTMOP_QualityMetric | ( | TMOP_QualityMetric & | metric, |
const TargetConstructor & | tc, | ||
const Mesh & | mesh, | ||
GridFunction & | metric_gf | ||
) |
Interpolates the metric's values at the nodes of metric_gf.
Assumes that metric_gf's FiniteElementSpace is initialized.
void mfem::InvertLinearTrans | ( | ElementTransformation & | trans, |
const IntegrationPoint & | pt, | ||
Vector & | x | ||
) |
|
inline |
Definition at line 70 of file mem_manager.hpp.
|
inline |
Definition at line 424 of file vector.hpp.
|
inline |
Return true if the given memory type is in MemoryClass::HOST.
Definition at line 69 of file mem_manager.hpp.
|
inline |
Returns true if P is the identity prolongation, i.e. if it is either NULL or an IdentityOperator.
Definition at line 672 of file operator.hpp.
int mfem::isValidAsDouble | ( | char * | s | ) |
Definition at line 50 of file optparser.cpp.
int mfem::isValidAsInt | ( | char * | s | ) |
Definition at line 21 of file optparser.cpp.
void mfem::KdTreeSort | ( | int ** | coords, |
int | d, | ||
int | dim, | ||
int | size | ||
) |
Definition at line 1337 of file communication.cpp.
double mfem::L2ZZErrorEstimator | ( | BilinearFormIntegrator & | flux_integrator, |
const ParGridFunction & | x, | ||
ParFiniteElementSpace & | smooth_flux_fes, | ||
ParFiniteElementSpace & | flux_fes, | ||
Vector & | errors, | ||
int | norm_p = 2 , |
||
double | solver_tol = 1e-12 , |
||
int | solver_max_it = 200 |
||
) |
Performs a global L2 projection (through a HypreBoomerAMG solve) of flux from supplied discontinuous space into supplied smooth (continuous, or at least conforming) space, and computes the Lp norms of the differences between them on each element. This is one approach to handling conforming and non-conforming elements in parallel. Returns the total error estimate.
Definition at line 1061 of file pgridfunc.cpp.
bool mfem::LinearSolve | ( | DenseMatrix & | A, |
double * | X, | ||
double | TOL = 1.e-9 |
||
) |
Solves the dense linear system, A * X = B
for X
[in,out] | A | the square matrix for the linear system |
[in,out] | X | the rhs vector, B, on input, the solution, X, on output. |
[in] | TOL | optional fuzzy comparison tolerance. Defaults to 1e-9. |
Definition at line 1955 of file densemat.cpp.
double mfem::LpNormLoop | ( | double | p, |
Coefficient & | coeff, | ||
Mesh & | mesh, | ||
const IntegrationRule * | irs[] | ||
) |
Definition at line 724 of file coefficient.cpp.
double mfem::LpNormLoop | ( | double | p, |
VectorCoefficient & | coeff, | ||
Mesh & | mesh, | ||
const IntegrationRule * | irs[] | ||
) |
Definition at line 755 of file coefficient.cpp.
std::string mfem::MakeParFilename | ( | const std::string & | prefix, |
const int | myid, | ||
const std::string | suffix = "" , |
||
const int | width = 6 |
||
) |
Construct a string of the form "<prefix><myid><suffix>" where the integer myid is padded with leading zeros to be at least width digits long.
This is a convenience function, e.g. to redirect mfem::out to individual files for each rank, one can use:
Definition at line 43 of file globals.cpp.
void mfem::MemoryPrintFlags | ( | unsigned | flags | ) |
Print the state of a Memory object based on its internal flags. Useful in a debugger. See also Memory<T>::PrintFlags().
Definition at line 1361 of file mem_manager.cpp.
void mfem::mfem_cuda_error | ( | cudaError_t | err, |
const char * | expr, | ||
const char * | func, | ||
const char * | file, | ||
int | line | ||
) |
void mfem::mfem_error | ( | const char * | msg | ) |
void mfem::mfem_hip_error | ( | hipError_t | err, |
const char * | expr, | ||
const char * | func, | ||
const char * | file, | ||
int | line | ||
) |
void mfem::mfem_warning | ( | const char * | msg | ) |
void mfem::MFEMInitializePetsc | ( | ) |
void mfem::MFEMInitializePetsc | ( | int * | argc, |
char *** | argv | ||
) |
void mfem::MFEMInitializePetsc | ( | int * | argc, |
char *** | argv, | ||
const char | rc_file[], | ||
const char | help[] | ||
) |
void mfem::MFEMInitializeSlepc | ( | int * | argc, |
char *** | argv | ||
) |
void mfem::MFEMInitializeSlepc | ( | int * | argc, |
char *** | argv, | ||
const char | rc_file[], | ||
const char | help[] | ||
) |
void mfem::MinimumDiscardedFillOrdering | ( | SparseMatrix & | C, |
Array< int > & | p | ||
) |
Definition at line 2262 of file solvers.cpp.
void mfem::MINRES | ( | const Operator & | A, |
const Vector & | b, | ||
Vector & | x, | ||
int | print_it, | ||
int | max_it, | ||
double | rtol, | ||
double | atol | ||
) |
MINRES method without preconditioner. (tolerances are squared)
Definition at line 1526 of file solvers.cpp.
void mfem::MINRES | ( | const Operator & | A, |
Solver & | B, | ||
const Vector & | b, | ||
Vector & | x, | ||
int | print_it, | ||
int | max_it, | ||
double | rtol, | ||
double | atol | ||
) |
MINRES method with preconditioner. (tolerances are squared)
Definition at line 1538 of file solvers.cpp.
void mfem::Mult | ( | const Table & | A, |
const Table & | B, | ||
Table & | C | ||
) |
BlockMatrix * mfem::Mult | ( | const BlockMatrix & | A, |
const BlockMatrix & | B | ||
) |
Multiply BlockMatrix matrices: result = A*B.
Definition at line 597 of file blockmatrix.cpp.
void mfem::Mult | ( | const DenseMatrix & | b, |
const DenseMatrix & | c, | ||
DenseMatrix & | a | ||
) |
Matrix matrix multiplication. A = B * C.
Definition at line 2003 of file densemat.cpp.
SparseMatrix * mfem::Mult | ( | const SparseMatrix & | A, |
const SparseMatrix & | B, | ||
SparseMatrix * | OAB = NULL |
||
) |
Matrix product A.B.
If OAB is not NULL, we assume it has the structure of A.B and store the result in OAB. If OAB is NULL, we create a new SparseMatrix to store the result and return a pointer to it.
All matrices must be finalized.
Definition at line 3339 of file sparsemat.cpp.
DenseMatrix * mfem::Mult | ( | const SparseMatrix & | A, |
DenseMatrix & | B | ||
) |
Matrix product A.B.
Definition at line 3572 of file sparsemat.cpp.
|
inline |
Definition at line 437 of file ttensor.hpp.
|
inline |
Definition at line 460 of file ttensor.hpp.
void mfem::Mult_a_AAt | ( | double | a, |
const DenseMatrix & | A, | ||
DenseMatrix & | AAt | ||
) |
AAt = a * A * A^t.
Definition at line 2732 of file densemat.cpp.
|
inline |
Definition at line 230 of file tmatrix.hpp.
SparseMatrix * mfem::Mult_AtDA | ( | const SparseMatrix & | A, |
const Vector & | D, | ||
SparseMatrix * | OAtDA | ||
) |
Matrix multiplication A^t D A. All matrices must be finalized.
Definition at line 3630 of file sparsemat.cpp.
void mfem::MultAAt | ( | const DenseMatrix & | a, |
DenseMatrix & | aat | ||
) |
Calculate the matrix A.At.
Definition at line 2331 of file densemat.cpp.
SparseMatrix * mfem::MultAbstractSparseMatrix | ( | const AbstractSparseMatrix & | A, |
const AbstractSparseMatrix & | B | ||
) |
Matrix product of sparse matrices. A and B do not need to be CSR matrices.
Definition at line 3475 of file sparsemat.cpp.
void mfem::MultABt | ( | const DenseMatrix & | A, |
const DenseMatrix & | B, | ||
DenseMatrix & | ABt | ||
) |
Multiply a matrix A with the transpose of a matrix B: A*Bt.
Definition at line 2393 of file densemat.cpp.
void mfem::MultADAt | ( | const DenseMatrix & | A, |
const Vector & | D, | ||
DenseMatrix & | ADAt | ||
) |
ADAt = A D A^t, where D is diagonal.
Definition at line 2377 of file densemat.cpp.
void mfem::MultADBt | ( | const DenseMatrix & | A, |
const Vector & | D, | ||
const DenseMatrix & | B, | ||
DenseMatrix & | ADBt | ||
) |
ADBt = A D B^t, where D is diagonal.
Definition at line 2458 of file densemat.cpp.
void mfem::MultAtB | ( | const DenseMatrix & | A, |
const DenseMatrix & | B, | ||
DenseMatrix & | AtB | ||
) |
Multiply the transpose of a matrix A with a matrix B: At*B.
Definition at line 2650 of file densemat.cpp.
void mfem::MultVVt | ( | const Vector & | v, |
DenseMatrix & | vvt | ||
) |
Make a matrix from a vector V.Vt.
Definition at line 2748 of file densemat.cpp.
void mfem::MultVWt | ( | const Vector & | v, |
const Vector & | w, | ||
DenseMatrix & | VWt | ||
) |
Definition at line 2759 of file densemat.cpp.
occa::device & mfem::OccaDev | ( | ) |
const occa::memory mfem::OccaMemoryRead | ( | const Memory< T > & | mem, |
size_t | size | ||
) |
Wrap a Memory object as occa::memory for read only access with the mfem::Device MemoryClass. The returned occa::memory is associated with the default occa::device used by MFEM.
occa::memory mfem::OccaMemoryReadWrite | ( | Memory< T > & | mem, |
size_t | size | ||
) |
Wrap a Memory object as occa::memory for read-write access with the mfem::Device MemoryClass. The returned occa::memory is associated with the default occa::device used by MFEM.
occa::memory mfem::OccaMemoryWrap | ( | void * | ptr, |
std::size_t | bytes | ||
) |
Wrap a pointer as occa::memory with the default occa::device used by MFEM.
It is assumed that ptr is suitable for use with the current mfem::Device configuration.
occa::memory mfem::OccaMemoryWrite | ( | Memory< T > & | mem, |
size_t | size | ||
) |
Wrap a Memory object as occa::memory for write only access with the mfem::Device MemoryClass. The returned occa::memory is associated with the default occa::device used by MFEM.
void mfem::OmpWrap | ( | const int | N, |
HBODY && | h_body | ||
) |
OpenMP backend.
Definition at line 73 of file forall.hpp.
|
inline |
MemoryClass mfem::operator* | ( | MemoryClass | mc1, |
MemoryClass | mc2 | ||
) |
Return a suitable MemoryClass from a pair of MemoryClasses.
Note: this operation is commutative, i.e. a*b = b*a, associative, i.e. (a*b)*c = a*(b*c), and has an identity element: MemoryClass::HOST.
Currently, the operation is defined as a*b := max(a,b) where the max operation is based on the enumeration ordering:
HOST < HOST_32 < HOST_64 < DEVICE < MANAGED.
Definition at line 99 of file mem_manager.cpp.
bool mfem::operator< | ( | const Pair< A, B > & | p, |
const Pair< A, B > & | q | ||
) |
Comparison operator for class Pair, based on the first element only.
Definition at line 36 of file sort_pairs.hpp.
bool mfem::operator< | ( | const Triple< A, B, C > & | p, |
const Triple< A, B, C > & | q | ||
) |
Lexicographic comparison operator for class Triple.
Definition at line 72 of file sort_pairs.hpp.
bool mfem::operator< | ( | const ParNCMesh::CommGroup & | lhs, |
const ParNCMesh::CommGroup & | rhs | ||
) |
Definition at line 510 of file pncmesh.cpp.
|
inline |
Definition at line 551 of file pncmesh.hpp.
|
inline |
Definition at line 630 of file sparsemat.hpp.
std::ostream & mfem::operator<< | ( | std::ostream & | out, |
const GridFunction & | sol | ||
) |
Overload operator<< for std::ostream and GridFunction; valid also for the derived class ParGridFunction
Definition at line 3644 of file gridfunc.cpp.
std::ostream & mfem::operator<< | ( | std::ostream & | out, |
const QuadratureFunction & | qf | ||
) |
Overload operator<< for std::ostream and QuadratureFunction.
Definition at line 3692 of file gridfunc.cpp.
std::ostream & mfem::operator<< | ( | std::ostream & | out, |
const Mesh & | mesh | ||
) |
bool mfem::operator== | ( | const Pair< A, B > & | p, |
const Pair< A, B > & | q | ||
) |
Equality operator for class Pair, based on the first element only.
Definition at line 43 of file sort_pairs.hpp.
|
inline |
|
inline |
Definition at line 557 of file pncmesh.hpp.
void mfem::Ordering::DofsToVDofs< Ordering::byNODES > | ( | int | ndofs, |
int | vdim, | ||
Array< int > & | dofs | ||
) |
Definition at line 30 of file fespace.cpp.
void mfem::Ordering::DofsToVDofs< Ordering::byVDIM > | ( | int | ndofs, |
int | vdim, | ||
Array< int > & | dofs | ||
) |
Definition at line 45 of file fespace.cpp.
|
inline |
Definition at line 50 of file fespace.hpp.
|
inline |
Definition at line 57 of file fespace.hpp.
DenseMatrix * mfem::OuterProduct | ( | const DenseMatrix & | A, |
const DenseMatrix & | B | ||
) |
Produces a block matrix with blocks A_{ij}*B.
Definition at line 3774 of file sparsemat.cpp.
SparseMatrix * mfem::OuterProduct | ( | const DenseMatrix & | A, |
const SparseMatrix & | B | ||
) |
Produces a block matrix with blocks A_{ij}*B.
Definition at line 3792 of file sparsemat.cpp.
SparseMatrix * mfem::OuterProduct | ( | const SparseMatrix & | A, |
const DenseMatrix & | B | ||
) |
Produces a block matrix with blocks A_{ij}*B.
Definition at line 3821 of file sparsemat.cpp.
SparseMatrix * mfem::OuterProduct | ( | const SparseMatrix & | A, |
const SparseMatrix & | B | ||
) |
Produces a block matrix with blocks A_{ij}*B.
Definition at line 3850 of file sparsemat.cpp.
void mfem::PADiffusionSetup2D | ( | const int | Q1D, |
const int | coeffDim, | ||
const int | NE, | ||
const Array< double > & | w, | ||
const Vector & | j, | ||
const Vector & | c, | ||
Vector & | d | ||
) |
void mfem::PADiffusionSetup2D< 2 > | ( | const int | Q1D, |
const int | coeffDim, | ||
const int | NE, | ||
const Array< double > & | w, | ||
const Vector & | j, | ||
const Vector & | c, | ||
Vector & | d | ||
) |
Definition at line 84 of file bilininteg_diffusion_pa.cpp.
void mfem::PADiffusionSetup2D< 3 > | ( | const int | Q1D, |
const int | coeffDim, | ||
const int | NE, | ||
const Array< double > & | w, | ||
const Vector & | j, | ||
const Vector & | c, | ||
Vector & | d | ||
) |
Definition at line 151 of file bilininteg_diffusion_pa.cpp.
void mfem::PADiffusionSetup3D | ( | const int | Q1D, |
const int | coeffDim, | ||
const int | NE, | ||
const Array< double > & | w, | ||
const Vector & | j, | ||
const Vector & | c, | ||
Vector & | d | ||
) |
Definition at line 196 of file bilininteg_diffusion_pa.cpp.
void mfem::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 | ||
) |
Definition at line 2714 of file bilininteg_hcurl.cpp.
void mfem::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 | ||
) |
Definition at line 2524 of file bilininteg_hcurl.cpp.
void mfem::PAHcurlHdivMassApply2D | ( | const int | D1D, |
const int | D1Dtest, | ||
const int | Q1D, | ||
const int | NE, | ||
const bool | scalarCoeff, | ||
const bool | trialHcurl, | ||
const Array< double > & | _Bo, | ||
const Array< double > & | _Bc, | ||
const Array< double > & | _Bot, | ||
const Array< double > & | _Bct, | ||
const Vector & | _op, | ||
const Vector & | _x, | ||
Vector & | _y | ||
) |
Definition at line 574 of file bilininteg_vectorfe.cpp.
void mfem::PAHcurlHdivMassApply3D | ( | const int | D1D, |
const int | D1Dtest, | ||
const int | Q1D, | ||
const int | NE, | ||
const bool | scalarCoeff, | ||
const bool | trialHcurl, | ||
const Array< double > & | _Bo, | ||
const Array< double > & | _Bc, | ||
const Array< double > & | _Bot, | ||
const Array< double > & | _Bct, | ||
const Vector & | _op, | ||
const Vector & | _x, | ||
Vector & | _y | ||
) |
Definition at line 362 of file bilininteg_vectorfe.cpp.
void mfem::PAHcurlHdivSetup2D | ( | const int | Q1D, |
const int | coeffDim, | ||
const int | NE, | ||
const bool | transpose, | ||
const Array< double > & | _w, | ||
const Vector & | j, | ||
Vector & | _coeff, | ||
Vector & | op | ||
) |
Definition at line 291 of file bilininteg_vectorfe.cpp.
void mfem::PAHcurlHdivSetup3D | ( | const int | Q1D, |
const int | coeffDim, | ||
const int | NE, | ||
const bool | transpose, | ||
const Array< double > & | _w, | ||
const Vector & | j, | ||
Vector & | _coeff, | ||
Vector & | op | ||
) |
Definition at line 175 of file bilininteg_vectorfe.cpp.
void mfem::PAHcurlL2Setup | ( | const int | NQ, |
const int | coeffDim, | ||
const int | NE, | ||
const Array< double > & | w, | ||
Vector & | coeff, | ||
Vector & | op | ||
) |
Definition at line 2837 of file bilininteg_hcurl.cpp.
void mfem::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 | ||
) |
Definition at line 22 of file bilininteg_hcurl.cpp.
void mfem::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 | ||
) |
Definition at line 406 of file bilininteg_hcurl.cpp.
void mfem::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 | ||
) |
Definition at line 152 of file bilininteg_hcurl.cpp.
void mfem::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 | ||
) |
Definition at line 209 of file bilininteg_hcurl.cpp.
void mfem::PAHdivMassApply2D | ( | const int | D1D, |
const int | Q1D, | ||
const int | NE, | ||
const Array< double > & | _Bo, | ||
const Array< double > & | _Bc, | ||
const Array< double > & | _Bot, | ||
const Array< double > & | _Bct, | ||
const Vector & | _op, | ||
const Vector & | _x, | ||
Vector & | _y | ||
) |
Definition at line 100 of file bilininteg_hdiv.cpp.
void mfem::PAHdivMassApply3D | ( | const int | D1D, |
const int | Q1D, | ||
const int | NE, | ||
const Array< double > & | _Bo, | ||
const Array< double > & | _Bc, | ||
const Array< double > & | _Bot, | ||
const Array< double > & | _Bct, | ||
const Vector & | _op, | ||
const Vector & | _x, | ||
Vector & | _y | ||
) |
Definition at line 351 of file bilininteg_hdiv.cpp.
void mfem::PAHdivMassAssembleDiagonal2D | ( | const int | D1D, |
const int | Q1D, | ||
const int | NE, | ||
const Array< double > & | _Bo, | ||
const Array< double > & | _Bc, | ||
const Vector & | _op, | ||
Vector & | _diag | ||
) |
Definition at line 229 of file bilininteg_hdiv.cpp.
void mfem::PAHdivMassAssembleDiagonal3D | ( | const int | D1D, |
const int | Q1D, | ||
const int | NE, | ||
const Array< double > & | _Bo, | ||
const Array< double > & | _Bc, | ||
const Vector & | _op, | ||
Vector & | _diag | ||
) |
Definition at line 284 of file bilininteg_hdiv.cpp.
void mfem::PAHdivSetup2D | ( | const int | Q1D, |
const int | NE, | ||
const Array< double > & | w, | ||
const Vector & | j, | ||
Vector & | _coeff, | ||
Vector & | op | ||
) |
Definition at line 27 of file bilininteg_hdiv.cpp.
void mfem::PAHdivSetup3D | ( | const int | Q1D, |
const int | NE, | ||
const Array< double > & | w, | ||
const Vector & | j, | ||
Vector & | _coeff, | ||
Vector & | op | ||
) |
Definition at line 59 of file bilininteg_hdiv.cpp.
HypreParMatrix * mfem::ParAdd | ( | const HypreParMatrix * | A, |
const HypreParMatrix * | B | ||
) |
int mfem::ParCSRRelax_FIR | ( | hypre_ParCSRMatrix * | A, |
hypre_ParVector * | f, | ||
double | max_eig, | ||
int | poly_order, | ||
double * | fir_coeffs, | ||
hypre_ParVector * | u, | ||
hypre_ParVector * | x0, | ||
hypre_ParVector * | x1, | ||
hypre_ParVector * | x2, | ||
hypre_ParVector * | x3 | ||
) |
int mfem::ParCSRRelax_Taubin | ( | hypre_ParCSRMatrix * | A, |
hypre_ParVector * | f, | ||
double | lambda, | ||
double | mu, | ||
int | N, | ||
double | max_eig, | ||
hypre_ParVector * | u, | ||
hypre_ParVector * | r | ||
) |
PetscParMatrix * mfem::ParMult | ( | const PetscParMatrix * | A, |
const PetscParMatrix * | B | ||
) |
HypreParMatrix * mfem::ParMult | ( | const HypreParMatrix * | A, |
const HypreParMatrix * | B, | ||
bool | own_matrix = false |
||
) |
double mfem::ParNormlp | ( | const Vector & | vec, |
double | p, | ||
MPI_Comm | comm | ||
) |
void mfem::parseArray | ( | char * | str, |
Array< int > & | var | ||
) |
Definition at line 116 of file optparser.cpp.
void mfem::parseVector | ( | char * | str, |
Vector & | var | ||
) |
Definition at line 127 of file optparser.cpp.
void mfem::PCG | ( | const Operator & | A, |
Solver & | B, | ||
const Vector & | b, | ||
Vector & | x, | ||
int | print_iter, | ||
int | max_num_iter, | ||
double | RTOLERANCE, | ||
double | ATOLERANCE | ||
) |
Preconditioned conjugate gradient method. (tolerances are squared)
Definition at line 733 of file solvers.cpp.
int mfem::PermuteFaceL2 | ( | const int | dim, |
const int | face_id1, | ||
const int | face_id2, | ||
const int | orientation, | ||
const int | size1d, | ||
const int | index | ||
) |
Definition at line 957 of file restriction.cpp.
|
inline |
Definition at line 619 of file ncmesh.cpp.
|
inline |
Definition at line 622 of file ncmesh.cpp.
void mfem::RajaCudaWrap1D | ( | const int | N, |
DBODY && | d_body | ||
) |
Definition at line 99 of file forall.hpp.
void mfem::RajaCudaWrap2D | ( | const int | N, |
DBODY && | d_body, | ||
const int | X, | ||
const int | Y, | ||
const int | BZ | ||
) |
Definition at line 106 of file forall.hpp.
void mfem::RajaCudaWrap3D | ( | const int | N, |
DBODY && | d_body, | ||
const int | X, | ||
const int | Y, | ||
const int | Z | ||
) |
Definition at line 131 of file forall.hpp.
void mfem::RajaOmpWrap | ( | const int | N, |
HBODY && | h_body | ||
) |
Definition at line 161 of file forall.hpp.
void mfem::RajaSeqWrap | ( | const int | N, |
HBODY && | h_body | ||
) |
RAJA sequential loop backend.
Definition at line 171 of file forall.hpp.
PetscParMatrix * mfem::RAP | ( | PetscParMatrix * | Rt, |
PetscParMatrix * | A, | ||
PetscParMatrix * | P | ||
) |
PetscParMatrix * mfem::RAP | ( | PetscParMatrix * | A, |
PetscParMatrix * | P | ||
) |
PetscParMatrix * mfem::RAP | ( | HypreParMatrix * | hA, |
PetscParMatrix * | P | ||
) |
HypreParMatrix * mfem::RAP | ( | const HypreParMatrix * | A, |
const HypreParMatrix * | P | ||
) |
HypreParMatrix * mfem::RAP | ( | const HypreParMatrix * | Rt, |
const HypreParMatrix * | A, | ||
const HypreParMatrix * | P | ||
) |
DenseMatrix * mfem::RAP | ( | const SparseMatrix & | A, |
DenseMatrix & | P | ||
) |
RAP matrix product (with R=P^T)
Definition at line 3585 of file sparsemat.cpp.
DenseMatrix * mfem::RAP | ( | DenseMatrix & | A, |
const SparseMatrix & | P | ||
) |
RAP matrix product (with R=P^T)
Definition at line 3595 of file sparsemat.cpp.
SparseMatrix * mfem::RAP | ( | const SparseMatrix & | A, |
const SparseMatrix & | R, | ||
SparseMatrix * | ORAP = NULL |
||
) |
RAP matrix product (with P=R^T). ORAP is like OAB above. All matrices must be finalized.
Definition at line 3608 of file sparsemat.cpp.
SparseMatrix * mfem::RAP | ( | const SparseMatrix & | Rt, |
const SparseMatrix & | A, | ||
const SparseMatrix & | P | ||
) |
General RAP with given R^T, A and P.
Definition at line 3619 of file sparsemat.cpp.
|
inline |
Get a pointer for read access to mem with the mfem::Device's DeviceMemoryClass, if on_dev = true, or the mfem::Device's HostMemoryClass, otherwise.
Also, if on_dev = true, the device flag of mem will be set.
Definition at line 307 of file device.hpp.
|
inline |
Get a pointer for read+write access to mem with the mfem::Device's DeviceMemoryClass, if on_dev = true, or the mfem::Device's HostMemoryClass, otherwise.
Also, if on_dev = true, the device flag of mem will be set.
Definition at line 341 of file device.hpp.
MPI_Comm mfem::ReorderRanksZCurve | ( | MPI_Comm | comm | ) |
Reorder MPI ranks to follow the Z-curve within the physical machine topology (provided that functions to query physical node coordinates are available). Returns a new communicator with reordered ranks.
Definition at line 1368 of file communication.cpp.
|
inline |
Wrap a pointer as a DeviceTensor with automatically deduced template parameters.
Definition at line 134 of file dtensor.hpp.
NURBSPatch* mfem::Revolve3D | ( | NURBSPatch & | patch, |
double | n[], | ||
double | ang, | ||
int | times | ||
) |
void mfem::set_error_action | ( | ErrorAction | action | ) |
void mfem::SetGlobalMPI_Comm | ( | MPI_Comm | comm | ) |
Set MFEM's "global" MPI communicator.
Definition at line 67 of file globals.cpp.
|
inline |
|
inline |
void mfem::SLI | ( | const Operator & | A, |
const Vector & | b, | ||
Vector & | x, | ||
int | print_iter, | ||
int | max_num_iter, | ||
double | RTOLERANCE, | ||
double | ATOLERANCE | ||
) |
Stationary linear iteration. (tolerances are squared)
Definition at line 500 of file solvers.cpp.
void mfem::SLI | ( | const Operator & | A, |
Solver & | B, | ||
const Vector & | b, | ||
Vector & | x, | ||
int | print_iter, | ||
int | max_num_iter, | ||
double | RTOLERANCE, | ||
double | ATOLERANCE | ||
) |
Preconditioned stationary linear iteration. (tolerances are squared)
Definition at line 513 of file solvers.cpp.
void mfem::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 | ||
) |
Definition at line 602 of file bilininteg_hcurl.cpp.
template void mfem::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 mfem::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 mfem::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 mfem::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 mfem::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 mfem::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 | ||
) |
Definition at line 282 of file bilininteg_hcurl.cpp.
template void mfem::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 mfem::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 mfem::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 mfem::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 mfem::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 | ||
) |
|
inline |
Definition at line 40 of file tmatrix.hpp.
|
inline |
Definition at line 34 of file stable3d.cpp.
void mfem::SortPairs | ( | Pair< A, B > * | pairs, |
int | size | ||
) |
Sort an array of Pairs with respect to the first element.
Definition at line 50 of file sort_pairs.hpp.
void mfem::SortTriple | ( | Triple< A, B, C > * | triples, |
int | size | ||
) |
Lexicographic sort for arrays of class Triple.
Definition at line 81 of file sort_pairs.hpp.
void mfem::SparseMatrixFunction | ( | SparseMatrix & | S, |
double(*)(double) | f | ||
) |
Applies f() to each element of the matrix (after it is finalized).
Definition at line 3195 of file sparsemat.cpp.
void mfem::subtract | ( | const Vector & | x, |
const Vector & | y, | ||
Vector & | z | ||
) |
Definition at line 408 of file vector.cpp.
void mfem::subtract | ( | const double | a, |
const Vector & | x, | ||
const Vector & | y, | ||
Vector & | z | ||
) |
Definition at line 434 of file vector.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
Specialization of the template function Swap<> for class SparseMatrix.
Definition at line 850 of file sparsemat.hpp.
|
inline |
|
inline |
Specialization of the template function Swap<> for class Vector.
Definition at line 562 of file vector.hpp.
|
inline |
Definition at line 634 of file tmatrix.hpp.
|
inline |
Definition at line 649 of file tmatrix.hpp.
|
inline |
Definition at line 620 of file tmatrix.hpp.
|
inline |
Definition at line 252 of file ttensor.hpp.
|
inline |
Definition at line 277 of file ttensor.hpp.
|
inline |
Definition at line 264 of file ttensor.hpp.
|
inline |
Definition at line 573 of file tmatrix.hpp.
|
inline |
Definition at line 604 of file tmatrix.hpp.
|
inline |
Definition at line 588 of file tmatrix.hpp.
|
inline |
Definition at line 477 of file ttensor.hpp.
|
inline |
Definition at line 552 of file ttensor.hpp.
|
inline |
Definition at line 643 of file ttensor.hpp.
void mfem::tic | ( | ) |
Start the tic_toc timer.
Definition at line 449 of file tic_toc.cpp.
|
inline |
|
inline |
|
inline |
double mfem::toc | ( | ) |
End timing and return the time from tic() to toc() in seconds.
Definition at line 455 of file tic_toc.cpp.
int mfem::ToLexOrdering | ( | const int | dim, |
const int | face_id, | ||
const int | size1d, | ||
const int | index | ||
) |
Definition at line 1406 of file restriction.cpp.
void mfem::Transpose | ( | const Table & | A, |
Table & | At, | ||
int | _ncols_A | ||
) |
void mfem::Transpose | ( | const Array< int > & | A, |
Table & | At, | ||
int | _ncols_A | ||
) |
Transpose an Array<int>
BlockMatrix * mfem::Transpose | ( | const BlockMatrix & | A | ) |
Transpose a BlockMatrix: result = A'.
Definition at line 579 of file blockmatrix.cpp.
SparseMatrix * mfem::Transpose | ( | const SparseMatrix & | A | ) |
Transpose of a sparse matrix. A must be finalized.
Definition at line 3206 of file sparsemat.cpp.
SparseMatrix * mfem::TransposeAbstractSparseMatrix | ( | const AbstractSparseMatrix & | A, |
int | useActualWidth | ||
) |
Transpose of a sparse matrix. A does not need to be a CSR matrix.
Definition at line 3262 of file sparsemat.cpp.
SparseMatrix * mfem::TransposeMult | ( | const SparseMatrix & | A, |
const SparseMatrix & | B | ||
) |
C = A^T B.
Definition at line 3467 of file sparsemat.cpp.
PetscParMatrix * mfem::TripleMatrixProduct | ( | PetscParMatrix * | R, |
PetscParMatrix * | A, | ||
PetscParMatrix * | P | ||
) |
|
inline |
Definition at line 777 of file solvers.cpp.
|
inline |
Definition at line 983 of file fespace.hpp.
void mfem::vis_tmop_metric_p | ( | int | order, |
TMOP_QualityMetric & | qm, | ||
const TargetConstructor & | tc, | ||
ParMesh & | pmesh, | ||
char * | title, | ||
int | position | ||
) |
Definition at line 623 of file tmop_tools.cpp.
void mfem::vis_tmop_metric_s | ( | int | order, |
TMOP_QualityMetric & | qm, | ||
const TargetConstructor & | tc, | ||
Mesh & | mesh, | ||
char * | title, | ||
int | position | ||
) |
Definition at line 651 of file tmop_tools.cpp.
H1_WedgeElement mfem::WedgeFE | ( | 1 | ) |
|
inline |
Get a pointer for write access to mem with the mfem::Device's DeviceMemoryClass, if on_dev = true, or the mfem::Device's HostMemoryClass, otherwise.
Also, if on_dev = true, the device flag of mem will be set.
Definition at line 324 of file device.hpp.
void mfem::WriteBase64WithSizeAndClear | ( | std::ostream & | out, |
std::vector< char > & | buf, | ||
int | compression_level | ||
) |
void mfem::WriteBinaryOrASCII | ( | std::ostream & | out, |
std::vector< char > & | buf, | ||
const T & | val, | ||
const char * | suffix, | ||
VTKFormat | format | ||
) |
void mfem::WriteBinaryOrASCII< double > | ( | std::ostream & | out, |
std::vector< char > & | buf, | ||
const double & | val, | ||
const char * | suffix, | ||
VTKFormat | format | ||
) |
void mfem::WriteBinaryOrASCII< float > | ( | std::ostream & | out, |
std::vector< char > & | buf, | ||
const float & | val, | ||
const char * | suffix, | ||
VTKFormat | format | ||
) |
void mfem::WriteBinaryOrASCII< uint8_t > | ( | std::ostream & | out, |
std::vector< char > & | buf, | ||
const uint8_t & | val, | ||
const char * | suffix, | ||
VTKFormat | format | ||
) |
void mfem::WriteVTKEncodedCompressed | ( | std::ostream & | out, |
const void * | bytes, | ||
uint32_t | nbytes, | ||
int | compression_level | ||
) |
void mfem::XYZ_VectorFunction | ( | const Vector & | p, |
Vector & | v | ||
) |
|
inline |
Definition at line 419 of file vector.hpp.
double mfem::ZZErrorEstimator | ( | BilinearFormIntegrator & | blfi, |
GridFunction & | u, | ||
GridFunction & | flux, | ||
Vector & | error_estimates, | ||
Array< int > * | aniso_flags, | ||
int | with_subdomains, | ||
bool | with_coeff | ||
) |
Definition at line 3699 of file gridfunc.cpp.
constexpr int mfem::DeviceMemoryType = static_cast<int>(MemoryType::MANAGED) |
Definition at line 48 of file mem_manager.hpp.
constexpr int mfem::DeviceMemoryTypeSize = MemoryTypeSize - DeviceMemoryType |
Definition at line 49 of file mem_manager.hpp.
OutStream mfem::err |
Global stream used by the library for standard error output. Initially it uses the same std::streambuf as std::cerr, however that can be changed.
Definition at line 71 of file globals.hpp.
GeometryRefiner mfem::GlobGeometryRefiner |
constexpr int mfem::HCURL_MAX_D1D = 5 |
Definition at line 24 of file bilininteg.hpp.
constexpr int mfem::HCURL_MAX_Q1D = 6 |
Definition at line 25 of file bilininteg.hpp.
constexpr int mfem::HDIV_MAX_D1D = 5 |
Definition at line 27 of file bilininteg.hpp.
constexpr int mfem::HDIV_MAX_Q1D = 6 |
Definition at line 28 of file bilininteg.hpp.
class TriLinear3DFiniteElement mfem::HexahedronFE |
Definition at line 52 of file hexahedron.cpp.
constexpr int mfem::HostMemoryType = static_cast<int>(MemoryType::HOST) |
Definition at line 46 of file mem_manager.hpp.
constexpr int mfem::HostMemoryTypeSize = static_cast<int>(MemoryType::DEVICE) |
Definition at line 47 of file mem_manager.hpp.
IntegrationRules mfem::IntRules |
A global object with all integration rules (defined in intrules.cpp)
Definition at line 378 of file intrules.hpp.
const int mfem::MAX_D1D = 14 |
Definition at line 26 of file forall.hpp.
const int mfem::MAX_Q1D = 14 |
Definition at line 27 of file forall.hpp.
const char * mfem::MemoryTypeName |
Memory type names, used during Device:: configuration.
Definition at line 1397 of file mem_manager.cpp.
constexpr int mfem::MemoryTypeSize = static_cast<int>(MemoryType::SIZE) |
Static casts to 'int' and sizes of some useful memory types.
Definition at line 45 of file mem_manager.hpp.
MPI_Comm mfem::MFEM_COMM_WORLD = MPI_COMM_WORLD |
Definition at line 60 of file globals.cpp.
MemoryManager mfem::mm |
The (single) global memory manager object.
Definition at line 1385 of file mem_manager.cpp.
OutStream mfem::out |
Global stream used by the library for standard output. Initially it uses the same std::streambuf as std::cout, however that can be changed.
Definition at line 66 of file globals.hpp.
PointFiniteElement mfem::PointFE |
class BiLinear2DFiniteElement mfem::QuadrilateralFE |
Definition at line 55 of file quadrilateral.cpp.
IntegrationRules mfem::RefinedIntRules |
A global object with all refined integration rules.
Definition at line 381 of file intrules.hpp.
const RefCoord mfem::S_HALF = 1 |
Definition at line 99 of file ncmesh_tables.hpp.
const RefCoord mfem::S_ONE = 2 |
Definition at line 100 of file ncmesh_tables.hpp.
const RefCoord mfem::S_TWO = 4 |
Definition at line 101 of file ncmesh_tables.hpp.
Linear1DFiniteElement mfem::SegmentFE |
Definition at line 49 of file segment.cpp.
SundialsMemHelper mfem::sunmemHelper |
Definition at line 144 of file sundials.cpp.
const RefCoord mfem::T_HALF = (1ll << 59) |
Definition at line 94 of file ncmesh_tables.hpp.
const RefCoord mfem::T_ONE = (1ll << 60) |
Definition at line 95 of file ncmesh_tables.hpp.
const RefCoord mfem::T_TWO = (1ll << 61) |
Definition at line 96 of file ncmesh_tables.hpp.
Linear3DFiniteElement mfem::TetrahedronFE |
StopWatch mfem::tic_toc |
Definition at line 447 of file tic_toc.cpp.
Linear2DFiniteElement mfem::TriangleFE |
H1_WedgeElement mfem::WedgeFE(1) |