MFEM  v3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Classes | Typedefs | Functions | Variables
mfem Namespace Reference

Classes

class  BaseArray
 Base class for array container. More...
 
class  Array
 
class  Array2D
 
class  Array3D
 
class  GroupTopology
 
class  GroupCommunicator
 
class  IdGenerator
 
struct  Hashed2
 
struct  Hashed4
 
class  HashTable
 
class  isockstream
 
class  StackPart
 
class  Stack
 
class  MemAllocNode
 
class  MemAlloc
 
class  OptionsParser
 
class  osockstream
 
class  IntegerSet
 A set of integers. More...
 
class  ListOfIntegerSets
 List of integer sets. More...
 
class  socketbuf
 
class  socketstream
 
class  socketserver
 
class  Pair
 A pair of objects. More...
 
class  Triple
 
class  STable3DNode
 
class  STable3D
 Symmetric 3D Table. More...
 
class  Table
 
class  STable
 
class  DSTable
 
class  StopWatch
 Timing object. More...
 
class  BlockMatrix
 
class  BlockOperator
 A class to handle Block systems in a matrix-free implementation. More...
 
class  BlockDiagonalPreconditioner
 A class to handle Block diagonal preconditioners in a matrix-free implementation. More...
 
class  BlockVector
 
class  DenseMatrix
 Data type dense matrix. More...
 
class  DenseMatrixInverse
 
class  DenseMatrixEigensystem
 
class  DenseMatrixSVD
 
class  DenseTensor
 Rank 3 tensor (array of matrices) 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  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  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  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  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  Operator
 Abstract operator. More...
 
class  TimeDependentOperator
 Base abstract class for time dependent operators: (x,t) -> f(x,t) More...
 
class  Solver
 Base class for solvers. More...
 
class  IdentityOperator
 Operator I: x -> x. More...
 
class  TransposeOperator
 The transpose of a given operator. More...
 
class  RAPOperator
 The operator x -> R*A*P*x. More...
 
class  IterativeSolver
 Abstract base class for iterative solver. 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
 
class  SLBQPOptimizer
 
class  UMFPackSolver
 Direct sparse solver using UMFPACK. 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  Vector
 Vector data type. More...
 
class  Element
 Abstract data type element. More...
 
class  RefinedElement
 
class  BisectedElement
 
class  QuadrisectedElement
 
class  OctasectedElement
 
class  Hexahedron
 Data type hexahedron element. More...
 
class  Mesh
 
class  NodeExtrudeCoefficient
 Class used to exrude the nodes of a mesh. More...
 
class  MesquiteMesh
 
struct  Refinement
 
class  NCMesh
 A class for non-conforming AMR on higher-order hexahedral, quadrilateral or triangular meshes. More...
 
class  KnotVector
 
class  NURBSPatch
 
class  NURBSExtension
 
class  ParNURBSExtension
 
class  NURBSPatchMap
 
class  ParMesh
 Class for parallel meshes. More...
 
class  Point
 Data type point element. More...
 
class  Quadrilateral
 Data type quadrilateral element. More...
 
class  Segment
 Data type line segment element. More...
 
class  Tetrahedron
 Data type tetrahedron element. More...
 
class  Triangle
 Data type triangle element. More...
 
class  Vertex
 Data type for vertex. More...
 
class  BilinearForm
 
class  MixedBilinearForm
 
class  DiscreteLinearOperator
 
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  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  VectorFECurlIntegrator
 Integrator for (curl u, v) for Nedelec and RT elements. More...
 
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
 Integrator for (Q u, v) for VectorFiniteElements. More...
 
class  VectorDivergenceIntegrator
 
class  DivDivIntegrator
 (Q div u, div v) for RT elements More...
 
class  VectorDiffusionIntegrator
 
class  ElasticityIntegrator
 
class  DGTraceIntegrator
 
class  DGDiffusionIntegrator
 
class  TraceJumpIntegrator
 
class  DiscreteInterpolator
 
class  GradientInterpolator
 
class  IdentityInterpolator
 
class  CurlInterpolator
 
class  DivergenceInterpolator
 
class  Coefficient
 Base class Coefficient that may optionally depend on time. More...
 
class  ConstantCoefficient
 Subclass constant coefficient. More...
 
class  PWConstCoefficient
 class for piecewise constant coefficient More...
 
class  FunctionCoefficient
 class for C-function coefficient More...
 
class  GridFunctionCoefficient
 Coefficient defined by a GridFunction. This coefficient is mesh dependent. More...
 
class  TransformedCoefficient
 
class  DeltaCoefficient
 Delta function coefficient. More...
 
class  RestrictedCoefficient
 Coefficient defined on a subset of domain or boundary attributes. More...
 
class  VectorCoefficient
 
class  VectorConstantCoefficient
 
class  VectorFunctionCoefficient
 
class  VectorArrayCoefficient
 Vector coefficient defined by an array of scalar coefficients. More...
 
class  VectorGridFunctionCoefficient
 Vector coefficient defined by a vector GridFunction. More...
 
class  VectorRestrictedCoefficient
 VectorCoefficient defined on a subset of domain or boundary attributes. More...
 
class  MatrixCoefficient
 
class  MatrixFunctionCoefficient
 
class  MatrixArrayCoefficient
 
class  DataCollection
 
class  VisItFieldInfo
 Helper class for VisIt visualization data. More...
 
class  VisItDataCollection
 Data collection with VisIt I/O routines. More...
 
class  ElementTransformation
 
class  IsoparametricTransformation
 
class  IntegrationPointTransformation
 
class  FaceElementTransformations
 
class  FunctionSpace
 Describes the space on each element. More...
 
class  FiniteElement
 Abstract class for Finite Elements. More...
 
class  NodalFiniteElement
 
class  PositiveFiniteElement
 
class  VectorFiniteElement
 
class  PointFiniteElement
 
class  Linear1DFiniteElement
 Class for linear FE on interval. More...
 
class  Linear2DFiniteElement
 Class for linear FE on triangle. More...
 
class  BiLinear2DFiniteElement
 Class for bilinear FE on quadrilateral. More...
 
class  GaussLinear2DFiniteElement
 Class for linear FE on triangle with nodes at the 3 "Gaussian" points. More...
 
class  GaussBiLinear2DFiniteElement
 Class for bilinear FE on quad with nodes at the 4 Gaussian points. More...
 
class  P1OnQuadFiniteElement
 
class  Quad1DFiniteElement
 Class for quadratic FE on interval. More...
 
class  QuadPos1DFiniteElement
 
class  Quad2DFiniteElement
 Class for quadratic FE on triangle. More...
 
class  GaussQuad2DFiniteElement
 Class for quadratic FE on triangle with nodes at the "Gaussian" points. More...
 
class  BiQuad2DFiniteElement
 Class for bi-quadratic FE on quadrilateral. More...
 
class  BiQuadPos2DFiniteElement
 
class  GaussBiQuad2DFiniteElement
 Bi-quadratic element on quad with nodes at the 9 Gaussian points. More...
 
class  BiCubic2DFiniteElement
 
class  Cubic1DFiniteElement
 
class  Cubic2DFiniteElement
 
class  Cubic3DFiniteElement
 Class for cubic FE on tetrahedron. More...
 
class  P0TriangleFiniteElement
 Class for constant FE on triangle. More...
 
class  P0QuadFiniteElement
 
class  Linear3DFiniteElement
 Class for linear FE on tetrahedron. More...
 
class  Quadratic3DFiniteElement
 Class for quadratic FE on tetrahedron. More...
 
class  TriLinear3DFiniteElement
 Class for tri-linear FE on cube. More...
 
class  CrouzeixRaviartFiniteElement
 Crouzeix-Raviart finite element on triangle. More...
 
class  CrouzeixRaviartQuadFiniteElement
 Crouzeix-Raviart finite element on quadrilateral. More...
 
class  P0SegmentFiniteElement
 
class  RT0TriangleFiniteElement
 
class  RT0QuadFiniteElement
 
class  RT1TriangleFiniteElement
 
class  RT1QuadFiniteElement
 
class  RT2TriangleFiniteElement
 
class  RT2QuadFiniteElement
 
class  P1SegmentFiniteElement
 Linear 1D element with nodes 1/3 and 2/3 (trace of RT1) More...
 
class  P2SegmentFiniteElement
 Quadratic 1D element with nodes the Gaussian points in [0,1] (trace of RT2) More...
 
class  Lagrange1DFiniteElement
 
class  P1TetNonConfFiniteElement
 
class  P0TetFiniteElement
 
class  P0HexFiniteElement
 
class  LagrangeHexFiniteElement
 Tensor products of 1D FEs (only degree 2 is functional) More...
 
class  RefinedLinear1DFiniteElement
 Class for refined linear FE on interval. More...
 
class  RefinedLinear2DFiniteElement
 Class for refined linear FE on triangle. More...
 
class  RefinedLinear3DFiniteElement
 Class for refined linear FE on tetrahedron. More...
 
class  RefinedBiLinear2DFiniteElement
 Class for refined bi-linear FE on quadrilateral. More...
 
class  RefinedTriLinear3DFiniteElement
 Class for refined trilinear FE on a hexahedron. More...
 
class  Nedelec1HexFiniteElement
 
class  Nedelec1TetFiniteElement
 
class  RT0HexFiniteElement
 
class  RT1HexFiniteElement
 
class  RT0TetFiniteElement
 
class  RotTriLinearHexFiniteElement
 
class  Poly_1D
 
class  H1_SegmentElement
 
class  H1_QuadrilateralElement
 
class  H1_HexahedronElement
 
class  H1Pos_SegmentElement
 
class  H1Pos_QuadrilateralElement
 
class  H1Pos_HexahedronElement
 
class  H1_TriangleElement
 
class  H1_TetrahedronElement
 
class  L2_SegmentElement
 
class  L2Pos_SegmentElement
 
class  L2_QuadrilateralElement
 
class  L2Pos_QuadrilateralElement
 
class  L2_HexahedronElement
 
class  L2Pos_HexahedronElement
 
class  L2_TriangleElement
 
class  L2Pos_TriangleElement
 
class  L2_TetrahedronElement
 
class  L2Pos_TetrahedronElement
 
class  RT_QuadrilateralElement
 
class  RT_HexahedronElement
 
class  RT_TriangleElement
 
class  RT_TetrahedronElement
 
class  ND_HexahedronElement
 
class  ND_QuadrilateralElement
 
class  ND_TetrahedronElement
 
class  ND_TriangleElement
 
class  NURBSFiniteElement
 
class  NURBS1DFiniteElement
 
class  NURBS2DFiniteElement
 
class  NURBS3DFiniteElement
 
class  FiniteElementCollection
 
class  H1_FECollection
 Arbitrary order H1-conforming (continuous) finite elements. More...
 
class  H1Pos_FECollection
 
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
 
class  ND_FECollection
 Arbitrary order H(curl)-conforming Nedelec finite elements. More...
 
class  NURBSFECollection
 Arbitrary order non-uniform rational B-splines (NURBS) finite elements. More...
 
class  LinearFECollection
 Piecewise-(bi)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
 
class  RT1_2DFECollection
 
class  RT2_2DFECollection
 
class  Const2DFECollection
 
class  LinearDiscont2DFECollection
 
class  GaussLinearDiscont2DFECollection
 Version of LinearDiscont2DFECollection with dofs in the Gaussian points. More...
 
class  P1OnQuadFECollection
 Linear (P1) finite elements on quadrilaterals. More...
 
class  QuadraticDiscont2DFECollection
 
class  QuadraticPosDiscont2DFECollection
 Version of QuadraticDiscont2DFECollection with positive basis functions. More...
 
class  GaussQuadraticDiscont2DFECollection
 Version of QuadraticDiscont2DFECollection with dofs in the Gaussian points. More...
 
class  CubicDiscont2DFECollection
 
class  Const3DFECollection
 
class  LinearDiscont3DFECollection
 
class  QuadraticDiscont3DFECollection
 
class  RefinedLinearFECollection
 Finite element collection on a macro-element. More...
 
class  ND1_3DFECollection
 
class  RT0_3DFECollection
 
class  RT1_3DFECollection
 
class  Local_FECollection
 Discontinuous collection defined locally by a given finite element. More...
 
class  Ordering
 
class  RefinementData
 Data kept for every type of refinement. More...
 
class  FiniteElementSpace
 Abstract finite element space. More...
 
class  Geometry
 
class  RefinedGeometry
 
class  GeometryRefiner
 
class  GridFunction
 Class for grid function - Vector with associated FE space. More...
 
class  ExtrudeCoefficient
 Class used for extruding scalar GridFunctions. More...
 
class  IntegrationPoint
 Class for integration point with weight. More...
 
class  IntegrationRule
 Class for integration rule. More...
 
class  IntegrationRules
 Container class for integration rules. More...
 
class  LinearForm
 Class for linear form - Vector with associated FE space and LFIntegrators. More...
 
class  LinearFormIntegrator
 Abstract base class LinearFormIntegrator. More...
 
class  DomainLFIntegrator
 Class for domain integration L(v) := (f, 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 \dot tau, v) $ in 2D. More...
 
class  VectorDomainLFIntegrator
 
class  VectorBoundaryLFIntegrator
 
class  VectorFEDomainLFIntegrator
 $ (f, v)_{\Omega} $ for VectorFiniteElements (Nedelec, Raviart-Thomas) More...
 
class  VectorBoundaryFluxLFIntegrator
 
class  VectorFEBoundaryFluxLFIntegrator
 
class  VectorFEBoundaryTangentLFIntegrator
 Class for boundary integration $ L(v) = (n \times f, v) $. More...
 
class  BoundaryFlowIntegrator
 
class  DGDirichletLFIntegrator
 
class  NonlinearForm
 
class  NonlinearFormIntegrator
 
class  HyperelasticModel
 Abstract class for hyperelastic models. More...
 
class  InverseHarmonicModel
 
class  NeoHookeanModel
 
class  HyperelasticNLFIntegrator
 Hyperelastic integrator for any given HyperelasticModel. More...
 
class  ParBilinearForm
 Class for parallel bilinear form. More...
 
class  ParMixedBilinearForm
 Class for parallel bilinear form. More...
 
class  ParDiscreteLinearOperator
 
class  ParFiniteElementSpace
 Abstract parallel finite element space. 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...
 

Typedefs

typedef int idxtype
 
typedef int idx_t
 
typedef float real_t
 
typedef L2_FECollection DG_FECollection
 
typedef int RefinementType
 Type of refinement (int, a tree, etc.) More...
 

Functions

template<class T >
int Compare (const void *p, const void *q)
 
template<class T >
void Swap (Array< T > &, Array< T > &)
 
template<class T >
void Swap (Array2D< T > &, Array2D< T > &)
 
template<class T >
void Swap (T &a, T &b)
 
void mfem_error (const char *msg)
 
void mfem_warning (const char *msg)
 
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 >
int ComparePairs (const void *_p, const void *_q)
 Compare the first element of the pairs. More...
 
template<class A , class B >
void SortPairs (Pair< A, B > *pairs, int size)
 Sort with respect to the first element. More...
 
template int ComparePairs< int, int > (const void *, const void *)
 
template int ComparePairs< double, int > (const void *, const void *)
 
template int ComparePairs< int, double > (const void *, const void *)
 
template void SortPairs< int, int > (Pair< int, int > *, int)
 
template void SortPairs< double, int > (Pair< double, int > *, int)
 
template void SortPairs< int, double > (Pair< int, double > *, int)
 
template<class A , class B , class C >
int CompareTriple (const void *_p, const void *_q)
 
template<class A , class B , class C >
void SortTriple (Triple< A, B, C > *triples, int size)
 
void Sort3 (int &r, int &c, int &f)
 
void Transpose (const Table &A, Table &At, int _ncols_A=-1)
 Transpose a Table. More...
 
TableTranspose (const Table &A)
 
void Transpose (const Array< int > &A, Table &At, int _ncols_A=-1)
 Transpose an Array<int> More...
 
void Mult (const Table &A, const Table &B, Table &C)
 C = A * B (as boolean matrices) More...
 
TableMult (const Table &A, const Table &B)
 
void tic ()
 Start timing. More...
 
double toc ()
 End timing. More...
 
BlockMatrixTranspose (const BlockMatrix &A)
 Transpose a BlockMatrix: result = A'. More...
 
BlockMatrixMult (const BlockMatrix &A, const BlockMatrix &B)
 Multiply BlockMatrix matrices: result = A*B. More...
 
void dgetrf_ (int *, int *, double *, int *, int *, int *)
 
void dgetrs_ (char *, int *, int *, double *, int *, int *, double *, int *, int *)
 
void dgetri_ (int *N, double *A, int *LDA, int *IPIV, double *WORK, int *LWORK, int *INFO)
 
void dsyevr_ (char *JOBZ, char *RANGE, char *UPLO, int *N, double *A, int *LDA, double *VL, double *VU, int *IL, int *IU, double *ABSTOL, int *M, double *W, double *Z, int *LDZ, int *ISUPPZ, double *WORK, int *LWORK, int *IWORK, int *LIWORK, int *INFO)
 
void dsyev_ (char *JOBZ, char *UPLO, int *N, double *A, int *LDA, double *W, double *WORK, int *LWORK, int *INFO)
 
void dgesvd_ (char *JOBU, char *JOBVT, int *M, int *N, double *A, int *LDA, double *S, double *U, int *LDU, double *VT, int *LDVT, double *WORK, int *LWORK, int *INFO)
 
void dsyevr_Eigensystem (DenseMatrix &a, Vector &ev, DenseMatrix *evect)
 
void dsyev_Eigensystem (DenseMatrix &a, Vector &ev, DenseMatrix *evect)
 
void Eigenvalues2S (const double &d12, double &d1, double &d2)
 
void Eigensystem2S (const double &d12, double &d1, double &d2, double &c, double &s)
 
void vec_normalize3_aux (const double &x1, const double &x2, const double &x3, double &n1, double &n2, double &n3)
 
void vec_normalize3 (const double &x1, const double &x2, const double &x3, double &n1, double &n2, double &n3)
 
bool KernelVector2G (const int &mode, double &d1, double &d12, double &d21, double &d2)
 
int KernelVector3G_aux (const int &mode, double &d1, double &d2, double &d3, double &c12, double &c13, double &c23, double &c21, double &c31, double &c32)
 
int KernelVector3S (const int &mode, const double &d12, const double &d13, const double &d23, double &d1, double &d2, double &d3)
 
int Reduce3S (const int &mode, double &d1, double &d2, double &d3, double &d12, double &d13, double &d23, double &z1, double &z2, double &z3, double &v1, double &v2, double &v3, double &g)
 
void GetScalingFactor (const double &d_max, double &mult)
 
void Add (const DenseMatrix &A, const DenseMatrix &B, double alpha, DenseMatrix &C)
 C = A + alpha*B. More...
 
void dgemm_ (char *, char *, int *, int *, int *, double *, double *, int *, double *, int *, double *, double *, int *)
 
void Mult (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 AddMultABt (const DenseMatrix &A, const DenseMatrix &B, DenseMatrix &ABt)
 ABt += 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 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...
 
double InnerProduct (HypreParVector *x, HypreParVector *y)
 
double InnerProduct (HypreParVector &x, HypreParVector &y)
 Returns the inner product of x and y. More...
 
HypreParMatrixParMult (HypreParMatrix *A, HypreParMatrix *B)
 Returns the matrix A * B. More...
 
HypreParMatrixRAP (HypreParMatrix *A, HypreParMatrix *P)
 Returns the matrix P^t * A * P. More...
 
HypreParMatrixRAP (HypreParMatrix *Rt, HypreParMatrix *A, HypreParMatrix *P)
 Returns the matrix Rt^t * A * P. More...
 
void EliminateBC (HypreParMatrix &A, HypreParMatrix &Ae, Array< int > &ess_dof_list, HypreParVector &x, HypreParVector &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)
 
HypreParMatrixDiscreteGrad (ParFiniteElementSpace *edge_fespace, ParFiniteElementSpace *vert_fespace)
 Compute the discrete gradient matrix between the nodal linear and ND1 spaces. More...
 
HypreParMatrixDiscreteCurl (ParFiniteElementSpace *face_fespace, ParFiniteElementSpace *edge_fespace)
 Compute the discrete curl matrix between the ND1 and RT0 spaces. More...
 
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 SparseMatrixFunction (SparseMatrix &S, double(*f)(double))
 Applies f() to each element of the matrix (after it is finalized). More...
 
SparseMatrixTranspose (const SparseMatrix &A)
 Transpose of a sparse matrix. A must be finalized. More...
 
SparseMatrixTransposeAbstractSparseMatrix (const AbstractSparseMatrix &A, int useActualWidth)
 Transpose of a sparse matrix. A does not need to be a CSR matrix. More...
 
SparseMatrixMult (const SparseMatrix &A, const SparseMatrix &B, SparseMatrix *OAB)
 
SparseMatrixMultAbstractSparseMatrix (const AbstractSparseMatrix &A, const AbstractSparseMatrix &B)
 Matrix product of sparse matrices. A and B do not need to be CSR matrices. More...
 
SparseMatrixRAP (const SparseMatrix &A, const SparseMatrix &R, SparseMatrix *ORAP)
 
SparseMatrixRAP (const SparseMatrix &Rt, const SparseMatrix &A, const SparseMatrix &P)
 General RAP with given R^T, A and P. More...
 
SparseMatrixMult_AtDA (const SparseMatrix &A, const Vector &D, SparseMatrix *OAtDA)
 
SparseMatrixAdd (double a, const SparseMatrix &A, double b, const SparseMatrix &B)
 Matrix addition result = a*A + b*B. More...
 
SparseMatrixAdd (const SparseMatrix &A, const SparseMatrix &B)
 Matrix addition result = A + B. More...
 
SparseMatrixAdd (Array< SparseMatrix * > &Ai)
 Matrix addition result = sum_i A_i. More...
 
void Swap (SparseMatrix &A, SparseMatrix &B)
 
class if defined (__alignas_is_defined) alignas(double) RowNode
 
void swap (Vector *v1, Vector *v2)
 
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 Distance (const double *x, const double *y, const int n)
 
void skip_comment_lines (std::istream &is, const char comment_char)
 
void XYZ_VectorFunction (const Vector &p, Vector &v)
 
void METIS_PartGraphRecursive (int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
 
void METIS_PartGraphKway (int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
 
void METIS_PartGraphVKway (int *, idxtype *, idxtype *, idxtype *, idxtype *, int *, int *, int *, int *, int *, idxtype *)
 
int METIS_PartGraphRecursive (idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt, idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options, idx_t *edgecut, idx_t *part)
 
int METIS_PartGraphKway (idx_t *nvtxs, idx_t *ncon, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, idx_t *vsize, idx_t *adjwgt, idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options, idx_t *edgecut, idx_t *part)
 
int METIS_SetDefaultOptions (idx_t *options)
 
void FindPartitioningComponents (Table &elem_elem, const Array< int > &partitioning, Array< int > &component, Array< int > &num_comp)
 
void DetOfLinComb (const DenseMatrix &A, const DenseMatrix &B, Vector &c)
 
int FindRoots (const Vector &z, Vector &x)
 
void FindTMax (Vector &c, Vector &x, double &tmax, const double factor, const int Dim)
 
std::ostream & operator<< (std::ostream &out, const Mesh &mesh)
 
MeshExtrude1D (Mesh *mesh, const int ny, const double sy, const bool closed=false)
 Extrude a 1D mesh. More...
 
int decode_dof (int dof, double &sign)
 
NURBSPatchInterpolate (NURBSPatch &p1, NURBSPatch &p2)
 
NURBSPatchRevolve3D (NURBSPatch &patch, double n[], double ang, int times)
 
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[])
 
double ComputeLpNorm (double p, VectorCoefficient &coeff, Mesh &mesh, const IntegrationRule *irs[])
 
double ComputeGlobalLpNorm (double p, Coefficient &coeff, ParMesh &pmesh, const IntegrationRule *irs[])
 
double ComputeGlobalLpNorm (double p, VectorCoefficient &coeff, ParMesh &pmesh, const IntegrationRule *irs[])
 
string to_string (int i)
 
string to_padded_string (int i, int digits)
 
int to_int (string str)
 
std::ostream & operator<< (std::ostream &out, const GridFunction &sol)
 
void ComputeFlux (BilinearFormIntegrator &blfi, GridFunction &u, GridFunction &flux, int wcoef, int sd)
 
void ZZErrorEstimator (BilinearFormIntegrator &blfi, GridFunction &u, GridFunction &flux, Vector &ErrorEstimates, int wsd)
 
GridFunctionExtrude1DGridFunction (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...
 

Variables

StopWatch tic_toc
 
MemAlloc< BisectedElement, 1024 > BEMemory
 
TriLinear3DFiniteElement HexahedronFE
 
PointFiniteElement PointFE
 
BiLinear2DFiniteElement QuadrilateralFE
 
Linear1DFiniteElement SegmentFE
 
Linear3DFiniteElement TetrahedronFE
 
Linear2DFiniteElement TriangleFE
 
Poly_1D poly1d
 
Geometry Geometries
 
GeometryRefiner GlobGeometryRefiner
 
IntegrationRules IntRules (0)
 A global object with all integration rules (defined in intrules.cpp) More...
 
IntegrationRules RefinedIntRules (1)
 A global object with all refined integration rules. More...
 

Typedef Documentation

Definition at line 116 of file fe_coll.hpp.

typedef int mfem::idx_t

Definition at line 4191 of file mesh.cpp.

typedef int mfem::idxtype

Definition at line 4180 of file mesh.cpp.

typedef float mfem::real_t

Definition at line 4192 of file mesh.cpp.

typedef int mfem::RefinementType

Type of refinement (int, a tree, etc.)

Definition at line 39 of file fespace.hpp.

Function Documentation

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

Definition at line 227 of file vector.cpp.

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

Definition at line 241 of file vector.cpp.

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

Definition at line 268 of file vector.cpp.

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

Definition at line 298 of file vector.cpp.

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

C = A + alpha*B.

Definition at line 2430 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 2548 of file sparsemat.cpp.

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

Matrix addition result = A + B.

Definition at line 2631 of file sparsemat.cpp.

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

Matrix addition result = sum_i A_i.

Definition at line 2636 of file sparsemat.cpp.

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

AAt += a * A * A^t.

Definition at line 2965 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 3059 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 3042 of file densemat.cpp.

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

ABt += A * B^t.

Definition at line 2859 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 2744 of file densemat.cpp.

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

VWt += v w^t.

Definition at line 3025 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 convergance factor.

Definition at line 1168 of file solvers.cpp.

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

Definition at line 461 of file solvers.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 911 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 927 of file solvers.cpp.

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 2488 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 2554 of file densemat.cpp.

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 2588 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 2673 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 2710 of file densemat.cpp.

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 411 of file solvers.cpp.

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

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

Definition at line 214 of file vector.hpp.

template<class T >
int mfem::Compare ( const void *  p,
const void *  q 
)

Definition at line 104 of file array.cpp.

template<class A , class B >
int mfem::ComparePairs ( const void *  _p,
const void *  _q 
)

Compare the first element of the pairs.

Definition at line 20 of file sort_pairs.cpp.

template int mfem::ComparePairs< double, int > ( const void *  ,
const void *   
)
template int mfem::ComparePairs< int, double > ( const void *  ,
const void *   
)
template int mfem::ComparePairs< int, int > ( const void *  ,
const void *   
)
template<class A , class B , class C >
int mfem::CompareTriple ( const void *  _p,
const void *  _q 
)

Definition at line 48 of file sort_pairs.hpp.

void mfem::ComputeFlux ( BilinearFormIntegrator &  blfi,
GridFunction &  u,
GridFunction &  flux,
int  wcoef,
int  sd 
)

Definition at line 1984 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 303 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 329 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 268 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 285 of file coefficient.cpp.

int mfem::decode_dof ( int  dof,
double &  sign 
)
inline

Definition at line 1278 of file ncmesh.cpp.

class if mfem::defined ( __alignas_is_defined  )

Definition at line 26 of file sparsemat.hpp.

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

Definition at line 4580 of file mesh.cpp.

void mfem::dgemm_ ( char *  ,
char *  ,
int *  ,
int *  ,
int *  ,
double *  ,
double *  ,
int *  ,
double *  ,
int *  ,
double *  ,
double *  ,
int *   
)
void mfem::dgesvd_ ( char *  JOBU,
char *  JOBVT,
int *  M,
int *  N,
double *  A,
int *  LDA,
double *  S,
double *  U,
int *  LDU,
double *  VT,
int *  LDVT,
double *  WORK,
int *  LWORK,
int *  INFO 
)
void mfem::dgetrf_ ( int *  ,
int *  ,
double *  ,
int *  ,
int *  ,
int *   
)
void mfem::dgetri_ ( int *  N,
double *  A,
int *  LDA,
int *  IPIV,
double *  WORK,
int *  LWORK,
int *  INFO 
)
void mfem::dgetrs_ ( char *  ,
int *  ,
int *  ,
double *  ,
int *  ,
int *  ,
double *  ,
int *  ,
int *   
)
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.

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

Definition at line 297 of file vector.hpp.

void mfem::dsyev_ ( char *  JOBZ,
char *  UPLO,
int *  N,
double *  A,
int *  LDA,
double *  W,
double *  WORK,
int *  LWORK,
int *  INFO 
)
void mfem::dsyev_Eigensystem ( DenseMatrix &  a,
Vector &  ev,
DenseMatrix *  evect 
)

Definition at line 760 of file densemat.cpp.

void mfem::dsyevr_ ( char *  JOBZ,
char *  RANGE,
char *  UPLO,
int *  N,
double *  A,
int *  LDA,
double *  VL,
double *  VU,
int *  IL,
int *  IU,
double *  ABSTOL,
int *  M,
double *  W,
double *  Z,
int *  LDZ,
int *  ISUPPZ,
double *  WORK,
int *  LWORK,
int *  IWORK,
int *  LIWORK,
int *  INFO 
)
void mfem::dsyevr_Eigensystem ( DenseMatrix &  a,
Vector &  ev,
DenseMatrix *  evect 
)

Definition at line 618 of file densemat.cpp.

void mfem::Eigensystem2S ( const double &  d12,
double &  d1,
double &  d2,
double &  c,
double &  s 
)
inline

Definition at line 898 of file densemat.cpp.

void mfem::Eigenvalues2S ( const double &  d12,
double &  d1,
double &  d2 
)
inline

Definition at line 883 of file densemat.cpp.

void mfem::EliminateBC ( HypreParMatrix &  A,
HypreParMatrix &  Ae,
Array< int > &  ess_dof_list,
HypreParVector &  x,
HypreParVector &  b 
)

Eliminate essential b.c. specified by ess_dof_list from the solution x to the r.h.s. b. Here A is matrix with eliminated b.c., while Ae is such that (A+Ae) is the original (Neumann) matrix before elimination.

Definition at line 827 of file hypre.cpp.

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

Extrude a 1D mesh.

Definition at line 8274 of file mesh.cpp.

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 2109 of file gridfunc.cpp.

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

Definition at line 4468 of file mesh.cpp.

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

Definition at line 4660 of file mesh.cpp.

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

Definition at line 4789 of file mesh.cpp.

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

Definition at line 439 of file solvers.cpp.

void mfem::GetScalingFactor ( const double &  d_max,
double &  mult 
)
inline

Definition at line 1435 of file densemat.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 376 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 761 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 778 of file solvers.cpp.

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

Definition at line 167 of file hypre.cpp.

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

Returns the inner product of x and y.

Definition at line 172 of file hypre.cpp.

NURBSPatch* mfem::Interpolate ( NURBSPatch &  p1,
NURBSPatch &  p2 
)

Definition at line 954 of file nurbs.cpp.

int mfem::isValidAsDouble ( char *  s)

Definition at line 42 of file optparser.cpp.

int mfem::isValidAsInt ( char *  s)

Definition at line 21 of file optparser.cpp.

bool mfem::KernelVector2G ( const int &  mode,
double &  d1,
double &  d12,
double &  d21,
double &  d2 
)
inline

Definition at line 968 of file densemat.cpp.

int mfem::KernelVector3G_aux ( const int &  mode,
double &  d1,
double &  d2,
double &  d3,
double &  c12,
double &  c13,
double &  c23,
double &  c21,
double &  c31,
double &  c32 
)
inline

Definition at line 1105 of file densemat.cpp.

int mfem::KernelVector3S ( const int &  mode,
const double &  d12,
const double &  d13,
const double &  d23,
double &  d1,
double &  d2,
double &  d3 
)
inline

Definition at line 1210 of file densemat.cpp.

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

Definition at line 201 of file coefficient.cpp.

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

Definition at line 230 of file coefficient.cpp.

void mfem::METIS_PartGraphKway ( int *  ,
idxtype *  ,
idxtype *  ,
idxtype *  ,
idxtype *  ,
int *  ,
int *  ,
int *  ,
int *  ,
int *  ,
idxtype *   
)
int mfem::METIS_PartGraphKway ( idx_t *  nvtxs,
idx_t *  ncon,
idx_t *  xadj,
idx_t *  adjncy,
idx_t *  vwgt,
idx_t *  vsize,
idx_t *  adjwgt,
idx_t *  nparts,
real_t *  tpwgts,
real_t *  ubvec,
idx_t *  options,
idx_t *  edgecut,
idx_t *  part 
)
void mfem::METIS_PartGraphRecursive ( int *  ,
idxtype *  ,
idxtype *  ,
idxtype *  ,
idxtype *  ,
int *  ,
int *  ,
int *  ,
int *  ,
int *  ,
idxtype *   
)
int mfem::METIS_PartGraphRecursive ( idx_t *  nvtxs,
idx_t *  ncon,
idx_t *  xadj,
idx_t *  adjncy,
idx_t *  vwgt,
idx_t *  vsize,
idx_t *  adjwgt,
idx_t *  nparts,
real_t *  tpwgts,
real_t *  ubvec,
idx_t *  options,
idx_t *  edgecut,
idx_t *  part 
)
void mfem::METIS_PartGraphVKway ( int *  ,
idxtype *  ,
idxtype *  ,
idxtype *  ,
idxtype *  ,
int *  ,
int *  ,
int *  ,
int *  ,
int *  ,
idxtype *   
)
int mfem::METIS_SetDefaultOptions ( idx_t *  options)
void mfem::mfem_error ( const char *  msg)

Definition at line 23 of file error.cpp.

void mfem::mfem_warning ( const char *  msg)

Definition at line 38 of file error.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 1074 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 1086 of file solvers.cpp.

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

C = A * B (as boolean matrices)

Definition at line 351 of file table.cpp.

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

Definition at line 418 of file table.cpp.

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

Multiply BlockMatrix matrices: result = A*B.

Definition at line 463 of file blockmatrix.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 2284 of file sparsemat.cpp.

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

Matrix matrix multiplication. A = B * C.

Definition at line 2445 of file densemat.cpp.

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

AAt = a * A * A^t.

Definition at line 2986 of file densemat.cpp.

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

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

Definition at line 2529 of file sparsemat.cpp.

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

Calculate the matrix A.At.

Definition at line 2732 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 2410 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 2782 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 2768 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 2912 of file densemat.cpp.

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

Make a matrix from a vector V.Vt.

Definition at line 2998 of file densemat.cpp.

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

Definition at line 3007 of file densemat.cpp.

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 1977 of file gridfunc.cpp.

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

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

Definition at line 8243 of file mesh.cpp.

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

Definition at line 896 of file hypre.cpp.

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

Definition at line 859 of file hypre.cpp.

HypreParMatrix * mfem::ParMult ( HypreParMatrix *  A,
HypreParMatrix *  B 
)

Returns the matrix A * B.

Definition at line 771 of file hypre.cpp.

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

Definition at line 92 of file optparser.cpp.

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

Definition at line 101 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 424 of file solvers.cpp.

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

Returns the matrix P^t * A * P.

Definition at line 781 of file hypre.cpp.

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

Returns the matrix Rt^t * A * P.

Definition at line 800 of file hypre.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 2507 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 2518 of file sparsemat.cpp.

int mfem::Reduce3S ( const int &  mode,
double &  d1,
double &  d2,
double &  d3,
double &  d12,
double &  d13,
double &  d23,
double &  z1,
double &  z2,
double &  z3,
double &  v1,
double &  v2,
double &  v3,
double &  g 
)
inline

Definition at line 1321 of file densemat.cpp.

NURBSPatch* mfem::Revolve3D ( NURBSPatch &  patch,
double  n[],
double  ang,
int  times 
)

Definition at line 999 of file nurbs.cpp.

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

Definition at line 1761 of file mesh.cpp.

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 250 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 263 of file solvers.cpp.

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

Definition at line 33 of file stable3d.cpp.

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

Sort with respect to the first element.

Definition at line 33 of file sort_pairs.cpp.

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

Definition at line 65 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 2142 of file sparsemat.cpp.

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

Definition at line 341 of file vector.cpp.

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

Definition at line 359 of file vector.cpp.

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

Definition at line 284 of file array.hpp.

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

Definition at line 498 of file array.hpp.

void mfem::swap ( Vector *  v1,
Vector *  v2 
)

Definition at line 213 of file vector.cpp.

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

Definition at line 276 of file array.hpp.

void mfem::Swap ( SparseMatrix &  A,
SparseMatrix &  B 
)

Definition at line 2657 of file sparsemat.cpp.

void mfem::tic ( )

Start timing.

Definition at line 332 of file tic_toc.cpp.

int mfem::to_int ( string  str)

Definition at line 49 of file datacollection.cpp.

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

Definition at line 42 of file datacollection.cpp.

string mfem::to_string ( int  i)

Definition at line 31 of file datacollection.cpp.

double mfem::toc ( )

End timing.

Definition at line 338 of file tic_toc.cpp.

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

Transpose a Table.

Definition at line 305 of file table.cpp.

Table * mfem::Transpose ( const Table &  A)

Definition at line 333 of file table.cpp.

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

Transpose an Array<int>

Definition at line 340 of file table.cpp.

BlockMatrix * mfem::Transpose ( const BlockMatrix &  A)

Transpose a BlockMatrix: result = A'.

Definition at line 451 of file blockmatrix.cpp.

SparseMatrix * mfem::Transpose ( const SparseMatrix &  A)

Transpose of a sparse matrix. A must be finalized.

Definition at line 2153 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 2207 of file sparsemat.cpp.

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

Definition at line 468 of file solvers.cpp.

void mfem::vec_normalize3 ( const double &  x1,
const double &  x2,
const double &  x3,
double &  n1,
double &  n2,
double &  n3 
)
inline

Definition at line 940 of file densemat.cpp.

void mfem::vec_normalize3_aux ( const double &  x1,
const double &  x2,
const double &  x3,
double &  n1,
double &  n2,
double &  n3 
)
inline

Definition at line 923 of file densemat.cpp.

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

Definition at line 3037 of file mesh.cpp.

void mfem::ZZErrorEstimator ( BilinearFormIntegrator &  blfi,
GridFunction &  u,
GridFunction &  flux,
Vector &  ErrorEstimates,
int  wsd 
)

Definition at line 2041 of file gridfunc.cpp.

Variable Documentation

MemAlloc<BisectedElement, 1024> mfem::BEMemory
Geometry mfem::Geometries

Definition at line 267 of file geom.cpp.

GeometryRefiner mfem::GlobGeometryRefiner

Definition at line 706 of file geom.cpp.

TriLinear3DFiniteElement mfem::HexahedronFE

Definition at line 60 of file hexahedron.cpp.

IntegrationRules mfem::IntRules

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

Definition at line 264 of file intrules.hpp.

PointFiniteElement mfem::PointFE

Definition at line 28 of file point.cpp.

Poly_1D mfem::poly1d

Definition at line 6269 of file fe.cpp.

BiLinear2DFiniteElement mfem::QuadrilateralFE

Definition at line 49 of file quadrilateral.cpp.

IntegrationRules mfem::RefinedIntRules

A global object with all refined integration rules.

Definition at line 267 of file intrules.hpp.

Linear1DFiniteElement mfem::SegmentFE

Definition at line 41 of file segment.cpp.

Linear3DFiniteElement mfem::TetrahedronFE

Definition at line 265 of file tetrahedron.cpp.

StopWatch mfem::tic_toc

Definition at line 330 of file tic_toc.cpp.

Linear2DFiniteElement mfem::TriangleFE

Definition at line 127 of file triangle.cpp.