Processing math: 0%
libMesh
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
libMesh Namespace Reference

The libMesh namespace provides an interface to certain functionality in the library. More...

Namespaces

 boostcopy
 
 DenseMatrices
 Provide Typedefs for dense matrices.
 
 ElemInternal
 The ElemInternal namespace holds helper functions that are used internally by the Elem class.
 
 FiniteElements
 Provide Typedefs for various element types.
 
 JacobiPolynomials
 
 libMeshPrivateData
 Namespaces don't provide private data, so let's take the data we would like private and put it in an obnoxious namespace.
 
 MacroFunctions
 
 MeshTools
 Utility functions for operations on a Mesh object.
 
 Nemesis
 
 Parallel
 
 Predicates
 This namespace defines several multi_predicates which are used by the element and node iterators.
 
 Quality
 A namespace for quality utility functions.
 
 RBDataDeserialization
 
 RBDataSerialization
 
 ReferenceElem
 This namespace implements singleton reference elements for each fundamental element type supported by libMesh.
 
 SparsityPattern
 This defines the sparsity pattern, or graph, of a sparse matrix.
 
 TensorTools
 
 Threads
 The Threads namespace is for wrapper functions for common general multithreading algorithms and tasks.
 
 Trees
 For convenience we define QuadTrees and OctTrees explicitly.
 
 TriangleWrapper
 A special namespace for wrapping the standard Triangle API, as well as some helper functions for initializing/destroying the structs triangle uses to communicate.
 
 Utility
 

Classes

class  AbaqusIO
 The AbaqusIO class is a preliminary implementation for reading Abaqus mesh files in ASCII format. More...
 
class  AdaptiveTimeSolver
 This class wraps another UnsteadySolver derived class, and compares the results of timestepping with deltat and timestepping with 2*deltat to adjust future timestep lengths. More...
 
class  AdjointDofConstraintValues
 Storage for DofConstraint right hand sides for all adjoint problems. More...
 
class  AdjointRefinementEstimator
 This class implements a "brute force" goal-oriented error estimator which computes an estimate of error in a quantity of interest based on the residual of the current coarse grid primal solution as weighted against an adjoint solution on a uniformly refined (in h and/or p, for an arbitrary number of levels) grid. More...
 
class  AdjointResidualErrorEstimator
 This class implements a goal oriented error indicator, by weighting residual-based estimates from the primal problem against estimates from the adjoint problem. More...
 
class  AdvectionSystem
 This class extends ClawSystem to implement pure advection in 2D. More...
 
class  AnalyticFunction
 Wraps a function pointer into a FunctionBase object. More...
 
class  AutoAreaFunction
 
class  AztecLinearSolver
 This class provides an interface to AztecOO iterative solvers that is compatible with the libMesh LinearSolver<> More...
 
class  BasicOStreamProxy
 This class is intended to be reseatable like a pointer-to-ostream for flexibility, but to look like a reference when used to produce less awkward user code. More...
 
class  BoundaryInfo
 The BoundaryInfo class contains information relevant to boundary conditions including storing faces, edges, and nodes on the boundary, along with ids that can be used to identify the type of boundary each entity is part of. More...
 
class  BoundaryMesh
 The BoundaryMesh is a Mesh in its own right, but it contains a description of the boundary of some other mesh. More...
 
class  BoundaryProjectSolution
 This class implements projecting an arbitrary boundary function to the current mesh. More...
 
class  BoundaryVolumeSolutionTransfer
 SolutionTransfer derived class which is specifically for transferring solutions back and forth between a VolumeMesh and its associated BoundaryMesh. More...
 
class  BoundingBox
 Defines a Cartesian bounding box by the two corner extremum. More...
 
class  BuildProjectionList
 This class builds the send_list of old dof indices whose coefficients are needed to perform a projection. More...
 
class  C0Polygon
 The C0Polygon is an element in 2D with an arbitrary (but fixed) number of first-order (EDGE2) sides. More...
 
class  C0Polyhedron
 The C0Polyhedron is an element in 3D with an arbitrary (but fixed) number of polygonal first-order (C0Polygon) sides. More...
 
class  CachingSetup
 
struct  casting_compare
 
class  Cell
 The Cell is an abstract element type that lives in three dimensions. More...
 
class  CentroidPartitioner
 Partitions the Mesh based on the locations of element vertex averages. More...
 
class  CheckpointIO
 The CheckpointIO class can be used to write simplified restart files that can be used to restart simulations that have crashed. More...
 
class  chunked_mapvector
 This chunked_mapvector templated class is intended to provide the asymptotic performance characteristics of a std::map with an interface more closely resembling that of a std::vector, for use with DistributedMesh. More...
 
class  ClawSystem
 This class encapsulates functionality that allows us to solve conservation laws. More...
 
struct  CompareDofObjectsByID
 Comparison object to use with DofObject pointers. More...
 
struct  CompareDofObjectsByPIDAndThenID
 
struct  CompareElemIdsByLevel
 Specific weak ordering for Elem *'s to be used in a set. More...
 
struct  CompareTypes
 
struct  CompareTypes< MetaPhysicL::DualNumber< T, D, asd >, MetaPhysicL::DualNumber< T, D, asd > >
 
struct  CompareTypes< MetaPhysicL::DualNumber< T, D, asd >, MetaPhysicL::DualNumber< T2, D2, asd > >
 
struct  CompareTypes< MetaPhysicL::DualNumber< T, D, asd >, T2 >
 
struct  CompareTypes< MetaPhysicL::DualNumber< T, T, asd >, MetaPhysicL::DualNumber< T2, T2, asd > >
 
struct  CompareTypes< MetaPhysicL::DualNumber< T, T, asd >, T2 >
 
struct  CompareTypes< MetaPhysicL::DynamicSparseNumberArray< T, IndexType >, T2 >
 
struct  CompareTypes< std::complex< T >, T >
 
struct  CompareTypes< T, MetaPhysicL::DualNumber< T2, D, asd > >
 
struct  CompareTypes< T, MetaPhysicL::DualNumber< T2, T2, asd > >
 
struct  CompareTypes< T, std::complex< T > >
 
struct  CompareTypes< T, T >
 
struct  CompareTypes< TypeVector< T >, TypeVector< T > >
 
struct  CompareTypes< TypeVector< T >, TypeVector< T2 > >
 
struct  CompareTypes< TypeVector< T >, VectorValue< T2 > >
 
struct  CompareTypes< VectorValue< T >, TypeVector< T2 > >
 
struct  CompareTypes< VectorValue< T >, VectorValue< T > >
 
struct  CompareTypes< VectorValue< T >, VectorValue< T2 > >
 
class  CompositeFEMFunction
 FEMFunction which is a function of another function. More...
 
class  CompositeFunction
 A function that returns a vector whose components are defined by multiple functions. More...
 
class  CondensedEigenSystem
 This class extends EigenSystem to allow a simple way of solving (standard or generalized) eigenvalue problems in the case where we want to remove certain degrees of freedom from the system. More...
 
class  ConstCouplingAccessor
 This accessor class allows simple access to CouplingMatrix values. More...
 
class  ConstCouplingRow
 This proxy class acts like a container of indices from a single coupling row. More...
 
class  ConstCouplingRowConstIterator
 
class  ConstFEMFunction
 FEMFunction that returns a single value, regardless of the time and location inputs. More...
 
class  ConstFunction
 Function that returns a single value that never changes. More...
 
class  ConstParameterProxy
 
class  ConstTypeTensorColumn
 
class  ContinuationSystem
 
This class inherits from the FEMSystem. More...
 
class  ConvergenceFailure
 A class representing a solver's failure to converge, to be thrown by "libmesh_convergence_failure();" This should be a last resort; more often, a solve which has failed should be reattempted after switching to a smaller timestep, adding underrelaxation, taking a smaller continuation step, etc. More...
 
class  CouplingAccessor
 This accessor class allows simple setting of CouplingMatrix values. More...
 
class  CouplingMatrix
 This class defines a coupling matrix. More...
 
class  DefaultCoupling
 This class implements the default algebraic coupling in libMesh: elements couple to themselves, but may also couple to neighbors both locally and across periodic boundary conditions. More...
 
class  DenseMatrix
 Defines a dense matrix for use in Finite Element-type computations. More...
 
class  DenseMatrixBase
 Defines an abstract dense matrix base class for use in Finite Element-type computations. More...
 
class  DenseSubMatrix
 Defines a dense submatrix for use in Finite Element-type computations. More...
 
class  DenseSubVector
 Defines a dense subvector for use in finite element computations. More...
 
class  DenseVector
 Defines a dense vector for use in Finite Element-type computations. More...
 
class  DenseVectorBase
 Defines an abstract dense vector base class for use in Finite Element-type computations. More...
 
class  DGFEMContext
 This class extends FEMContext in order to provide extra data required to perform local element residual and Jacobian assembly in the case of a discontinuous Galerkin (DG) discretization. More...
 
class  DiagonalMatrix
 Diagonal matrix class whose underlying storage is a vector. More...
 
class  DiffContext
 This class provides all data required for a physics package (e.g. More...
 
class  DifferentiablePhysics
 This class provides a specific system class. More...
 
class  DifferentiableQoI
 This class provides a specific system class. More...
 
class  DifferentiableSystem
 This class provides a specific system class. More...
 
class  DiffSolver
 This is a generic class that defines a solver to handle ImplicitSystem classes, including NonlinearImplicitSystem and DifferentiableSystem A user can define a solver by deriving from this class and implementing certain functions. More...
 
class  DirectSolutionTransfer
 Implementation of a SolutionTransfer object that only works for transferring the solution but only in the case of: More...
 
class  DirichletBoundaries
 We're using a class instead of a typedef to allow forward declarations and future flexibility. More...
 
class  DirichletBoundary
 This class allows one to associate Dirichlet boundary values with a given set of mesh boundary ids and system variable ids. More...
 
class  DiscontinuityMeasure
 This class measures discontinuities between elements for debugging purposes. More...
 
class  DistributedMesh
 The DistributedMesh class is derived from the MeshBase class, and is intended to provide identical functionality to the user but be distributed rather than replicated across distributed-memory systems. More...
 
class  DistributedVector
 This class provides a simple parallel, distributed vector datatype which is specific to libmesh. More...
 
class  DofConstraints
 The constraint matrix storage format. More...
 
class  DofConstraintValueMap
 Storage for DofConstraint right hand sides for a particular problem. More...
 
class  DofMap
 This class handles the numbering of degrees of freedom on a mesh. More...
 
class  DofMapBase
 This base class provides a minimal set of interfaces for satisfying user requests for. More...
 
class  DofObject
 The DofObject defines an abstract base class for objects that have degrees of freedom associated with them. More...
 
class  DSNAOutput
 
class  DSNAOutput< VectorValue< InnerOutput > >
 
class  DTKAdapter
 The DTKAdapter is used with the DTKSolutionTransfer object to adapt libmesh data to the DTK interface. More...
 
class  DTKEvaluator
 Implements the evaluate() function to compute FE solution values at points requested by DTK. More...
 
class  DTKSolutionTransfer
 Implementation of a SolutionTransfer object that uses the DataTransferKit (https://github.com/CNERG/DataTransferKit) to transfer variables back and forth between systems. More...
 
class  DynaIO
 Reading and writing meshes in (a subset of) LS-DYNA format. More...
 
class  DynamicCastFailure
 A class representing that a dynamic cast failed to produce expected output. More...
 
class  Edge
 The Edge is an element in 1D. More...
 
class  Edge2
 
The Edge2 is an element in 1D composed of 2 nodes. More...
 
class  Edge3
 
The Edge3 is an element in 1D composed of 3 nodes. More...
 
class  Edge4
 
The Edge4 is an element in 1D composed of 4 nodes. More...
 
class  EigenPreconditioner
 This class provides an interface to the suite of preconditioners available from Eigen. More...
 
class  EigenSolver
 This class provides an interface to solvers for eigenvalue problems. More...
 
class  EigenSparseLinearSolver
 This class provides an interface to Eigen iterative solvers that is compatible with the libMesh LinearSolver<> More...
 
class  EigenSparseMatrix
 The EigenSparseMatrix class wraps a sparse matrix object from the Eigen library. More...
 
class  EigenSparseVector
 This class provides a nice interface to the Eigen C++-based data structures for serial vectors. More...
 
class  EigenSystem
 Manages consistently variables, degrees of freedom, and coefficient vectors for eigenvalue problems. More...
 
class  EigenTimeSolver
 The name of this class is confusing...it's meant to refer to the base class (TimeSolver) while still telling one that it's for solving (generalized) EigenValue problems that arise from finite element discretizations. More...
 
struct  EimPointData
 This struct is used to encapsulate the arguments required to specify an EIM point that we may add to our list of interpolation points. More...
 
struct  EIMVarGroupPlottingInfo
 This struct encapsulates data that specifies how we will perform plotting for EIM variable groups. More...
 
class  Elem
 This is the base class from which all geometric element types are derived. More...
 
class  ElemAssembly
 ElemAssembly provides a per-element (interior and boundary) assembly functionality. More...
 
class  ElemCutter
 This class implements cutting a single element into a collection of subelements. More...
 
struct  ElemHashUtils
 The ElemHashUtils struct defines functions used for the "Hash" and "Pred" template arguments of the various "unordered" containers, e.g. More...
 
class  ElemSideBuilder
 Helper for building element sides that minimizes the construction of new elements. More...
 
class  EnsightIO
 This class implements writing meshes and solutions in Ensight's Gold format. More...
 
class  EpetraMatrix
 This class provides a nice interface to the Epetra data structures for parallel, sparse matrices. More...
 
class  EpetraVector
 This class provides a nice interface to the Trilinos Epetra_Vector object. More...
 
class  EquationSystems
 This is the EquationSystems class. More...
 
class  ErrorEstimator
 This class holds functions that will estimate the error in a finite element solution on a given mesh. More...
 
class  ErrorVector
 The ErrorVector is a specialization of the StatisticsVector for error data computed on a finite element mesh. More...
 
class  Euler2Solver
 This class defines a theta-method (defaulting to Backward Euler with theta = 1.0) solver to handle time integration of DifferentiableSystems. More...
 
class  EulerSolver
 This class defines a theta-method Euler (defaulting to Backward Euler with theta = 1.0) solver to handle time integration of DifferentiableSystems. More...
 
class  ExactErrorEstimator
 This class implements an "error estimator" based on the difference between the approximate and exact solution. More...
 
class  ExactSoln
 
class  ExactSolution
 This class handles the computation of the L2 and/or H1 error for the Systems in the EquationSystems object which is passed to it. More...
 
class  ExodusHeaderInfo
 This class is used as both an external data structure for passing around Exodus file header information, and for storing information internally in ExodusII_IO_Helper. More...
 
class  ExodusII_IO
 The ExodusII_IO class implements reading meshes in the ExodusII file format from Sandia National Labs. More...
 
class  ExodusII_IO_Helper
 This is the ExodusII_IO_Helper class. More...
 
class  ExplicitSystem
 Manages consistently variables, degrees of freedom, and coefficient vectors for explicit systems. More...
 
class  Face
 The Face is an abstract element type that lives in two dimensions. More...
 
class  Factory
 Factory class definition. More...
 
class  FactoryImp
 Factory implementation class. More...
 
class  FastPoolAllocator
 An allocator which can be used in standard containers. More...
 
class  FDMGradient
 
class  FE
 A specific instantiation of the FEBase class. More...
 
class  FEAbstract
 This class forms the foundation from which generic finite elements may be derived. More...
 
class  FEClough
 Clough-Tocher finite elements. More...
 
class  FEComputeData
 class FEComputeData hides arbitrary data to be passed to and from children of FEBase through the FEInterface::compute_data() method. More...
 
class  FEGenericBase
 This class forms the foundation from which generic finite elements may be derived. More...
 
class  FEHermite
 Hermite finite elements. More...
 
class  FEHierarchic
 Hierarchic finite elements. More...
 
class  FEHierarchicVec
 FEHierarchicVec objects are used for working with vector-valued high-order finite elements. More...
 
class  FEInterface
 This class provides an encapsulated access to all static public member functions of finite element classes. More...
 
class  FEL2Hierarchic
 Discontinuous Hierarchic finite elements. More...
 
class  FEL2HierarchicVec
 FEHierarchicVec objects are used for working with vector-valued high-order piecewise-continuous finite elements. More...
 
class  FEL2Lagrange
 Discontinuous Lagrange finite elements. More...
 
class  FEL2LagrangeVec
 FEL2LagrangeVec objects are used for working with vector-valued finite elements. More...
 
class  FEL2RaviartThomas
 FEL2RaviartThomas objects are used for working with vector-valued discontinuous Raviart-Thomas finite elements, e.g. More...
 
class  FELagrange
 Lagrange finite elements. More...
 
class  FELagrangeVec
 FELagrangeVec objects are used for working with vector-valued finite elements. More...
 
class  FEMap
 Class contained in FE that encapsulates mapping (i.e. More...
 
class  FEMContext
 This class provides all data required for a physics package (e.g. More...
 
class  FEMFunctionBase
 FEMFunctionBase is a base class from which users can derive in order to define "function-like" objects that can be used within FEMSystem. More...
 
class  FEMFunctionWrapper
 The FEMFunctionWrapper input functor class can be used with a GenericProjector to read values from an FEMFunction. More...
 
class  FEMonomial
 Monomial finite elements. More...
 
class  FEMonomialVec
 FEMonomialVec objects are used for working with vector-valued discontinuous finite elements. More...
 
class  FEMPhysics
 This class provides a specific system class. More...
 
class  FEMSystem
 This class provides a specific system class. More...
 
class  FENedelecOne
 FENedelecOne objects are used for working with vector-valued Nedelec finite elements of the first kind. More...
 
struct  FEOutputType
 Most finite element types in libMesh are scalar-valued. More...
 
struct  FEOutputType< HIERARCHIC_VEC >
 
struct  FEOutputType< L2_HIERARCHIC_VEC >
 
struct  FEOutputType< L2_LAGRANGE_VEC >
 
struct  FEOutputType< L2_RAVIART_THOMAS >
 
struct  FEOutputType< LAGRANGE_VEC >
 Specialize for non-scalar-valued elements. More...
 
struct  FEOutputType< MONOMIAL_VEC >
 
struct  FEOutputType< NEDELEC_ONE >
 
struct  FEOutputType< RAVIART_THOMAS >
 
class  FERaviartThomas
 FERaviartThomas objects are used for working with vector-valued Raviart-Thomas finite elements. More...
 
class  FEScalar
 The FEScalar class is used for working with SCALAR variables. More...
 
class  FESubdivision
 
class  FETransformationBase
 This class handles the computation of the shape functions in the physical domain. More...
 
class  FEType
 class FEType hides (possibly multiple) FEFamily and approximation orders, thereby enabling specialized finite element families. More...
 
class  FEXYZ
 XYZ finite elements. More...
 
class  FEXYZMap
 An implementation of FEMap for "XYZ" elements. More...
 
class  FileError
 A class representing a failed attempt by the library to open a file (or construct an fstream, etc), to be thrown by "libmesh_file_error(filename);" For ease of debugging, "filename" should include any (absolute or relative or implicit) pathname that was part of the failed open. More...
 
class  FileHistoryData
 HistoryData subclass that provides a struct to store history data such as timestamps, mesh, primal and adjoint filenames and timestep sizes. More...
 
class  FileSolutionHistory
 Subclass of Solution History that stores the solutions and other important vectors onto disk. More...
 
class  FirstOrderUnsteadySolver
 Generic class from which first order UnsteadySolvers should subclass. More...
 
class  FloatingPointException
 A class representing a floating point exception. More...
 
struct  FPEDisabler
 The FPEDisabler class puts Floating-Point Exception (FPE) trapping on hold during its lifetime, restoring the FE environment upon destruction. More...
 
class  FrequencySystem
 FrequencySystem provides a specific system class for frequency-dependent (linear) systems. More...
 
class  FroIO
 This class implements writing meshes in the .fro format used by the MIT ACDL. More...
 
class  FunctionBase
 Base class for functors that can be evaluated at a point and (optionally) time. More...
 
class  GenericProjector
 The GenericProjector class implements the core of other projection operations, using two input functors to read values to be projected and an output functor to set degrees of freedom in the result. More...
 
class  GhostingFunctor
 This abstract base class defines the interface by which library code and user code can report associations between elements. More...
 
class  GhostPointNeighbors
 This class implements the original default geometry ghosting requirements in libMesh: point neighbors on the same manifold, including across periodic boundaries, and interior_parent elements. More...
 
class  GmshIO
 Reading and writing meshes in the Gmsh format. More...
 
class  GMVIO
 This class implements writing meshes in the GMV format. More...
 
class  GnuPlotIO
 This class implements writing meshes using GNUplot, designed for use only with 1D meshes. More...
 
class  GradientMeshFunction
 
class  H1FETransformation
 This class handles the computation of the shape functions in the physical domain for H1 conforming elements. More...
 
struct  hash
 
class  HCurlFETransformation
 This class handles the computation of the shape functions in the physical domain for HCurl conforming elements. More...
 
class  HDGProblem
 
class  HDivFETransformation
 This class handles the computation of the shape functions in the physical domain for HDiv conforming elements. More...
 
class  Hex
 The Hex is an element in 3D with 6 sides. More...
 
class  Hex20
 
The Hex20 is an element in 3D composed of 20 nodes. More...
 
class  Hex27
 
The Hex27 is an element in 3D composed of 27 nodes. More...
 
class  Hex8
 
The Hex8 is an element in 3D composed of 8 nodes. More...
 
class  HilbertSFCPartitioner
 The HilbertSFCPartitioner uses a Hilbert space filling curve to partition the elements. More...
 
class  HistoryData
 The History Data classes are companion classes to SolutionHistory and MeshHistory classes. More...
 
class  HPCoarsenTest
 This class uses the error estimate given by different types of derefinement (h coarsening or p reduction) to choose between h refining and p elevation. More...
 
class  HPSelector
 Subclasses of this abstract base class choose between h refining and p elevation. More...
 
class  HPSingularity
 This class uses a user-provided list of singularity locations to choose between h refining and p elevation. More...
 
class  ImplicitSystem
 Manages consistently variables, degrees of freedom, coefficient vectors, and matrices for implicit systems. More...
 
class  InfCell
 The InfCell is an abstract element type that lives in three dimensions. More...
 
class  InfEdge2
 
The InfEdge2 is an infinite element in 1D composed of 2 nodes. More...
 
class  InfElemBuilder
 This class is used to build infinite elements on top of an existing mesh. More...
 
class  InfFE
 A specific instantiation of the FEBase class. More...
 
class  InfFEBase
 This nested class contains most of the static methods related to the base part of an infinite element. More...
 
class  InfFEMap
 Class that encapsulates mapping (i.e. More...
 
class  InfFERadial
 Infinite elements are in some sense directional, compared to conventional finite elements. More...
 
class  InfHex
 The InfHex is an element in 3D with 5 sides. More...
 
class  InfHex16
 
The InfHex16 is an infinite element in 3D composed of 16 nodes. More...
 
class  InfHex18
 
The InfHex18 is an infinite element in 3D composed of 18 nodes. More...
 
class  InfHex8
 
The InfHex8 is an infinite element in 3D composed of 8 nodes. More...
 
class  InfPrism
 The InfPrism is an element in 3D with 4 sides. More...
 
class  InfPrism12
 
The InfPrism12 is an infinite element in 3D composed of 12 nodes. More...
 
class  InfPrism6
 
The InfPrism6 is an infinite element in 3D composed of 6 nodes. More...
 
class  InfQuad
 
The InfQuad is an abstract element type that lives in two dimensions. More...
 
class  InfQuad4
 
The INFQUAD4 is an infinite element in 2D composed of 4 nodes. More...
 
class  InfQuad6
 
The INFQUAD6 is an infinite element in 2D composed of 6 nodes. More...
 
class  InterMeshProjection
 This class implements inter mesh projection, i.e. More...
 
class  IntRange
 The IntRange templated class is intended to make it easy to loop over integers which are indices of a container. More...
 
class  InverseDistanceInterpolation
 Inverse distance interpolation. More...
 
class  JumpErrorEstimator
 This abstract base class implements utility functions for error estimators which are based on integrated jumps between elements. More...
 
class  KellyErrorEstimator
 
This class implements the Kelly error indicator which is based on the flux jumps between elements. More...
 
class  LaplaceMeshSmoother
 This class defines the data structures necessary for Laplace smoothing. More...
 
class  LaplacianErrorEstimator
 This class is an error indicator based on laplacian jumps between elements. More...
 
class  LaspackLinearSolver
 This class provides an interface to Laspack iterative solvers that is compatible with the libMesh LinearSolver<> More...
 
class  LaspackMatrix
 The LaspackMatrix class wraps a QMatrix object from the Laspack library. More...
 
class  LaspackVector
 This class provides a nice interface to the Laspack C-based data structures for serial vectors. More...
 
class  LibMeshInit
 The LibMeshInit class, when constructed, initializes the dependent libraries (e.g. More...
 
class  LinearImplicitSystem
 Manages consistently variables, degrees of freedom, coefficient vectors, matrices and linear solvers for implicit systems. More...
 
class  LinearPartitioner
 The LinearPartitioner simply takes the element list and splits it into equal-sized chunks assigned to each processor. More...
 
class  LinearSolutionMonitor
 Functor for use as callback in solve of nonlinear solver. More...
 
class  LinearSolver
 This base class can be inherited from to provide interfaces to linear solvers from different packages like PETSc and LASPACK. More...
 
class  LocationMap
 Data structures that enable location-based lookups The key is a hash of the Point location. More...
 
class  LogicError
 A class to represent the internal "this should never happen" errors, to be thrown by "libmesh_error();". More...
 
class  LumpedMassMatrix
 Template class used to construct a lumped mass matrix. More...
 
class  MappedSubdomainPartitioner
 The MappedSubdomainPartitioner partitions the elements based on their subdomain ids. More...
 
class  mapvector
 This mapvector templated class is intended to provide the performance characteristics of a std::map with an interface more closely resembling that of a std::vector, for use with DistributedMesh. More...
 
class  MatlabIO
 This class implements reading meshes in the Matlab PDE toolkit in a proprietary format. More...
 
class  MatrixFillAction
 The MatrixFillAction output functor class can be used with GenericProjector to write solution transfer coefficients into a sparse matrix. More...
 
class  MEDITIO
 This class implements writing meshes in the mesh format used by the MEdit visualization tool developed in the Gamma Project at INRIA Roquencourt. More...
 
class  MemoryHistoryData
 MemoryHistoryData provides a data structure to store memory history data. More...
 
class  MemorySolutionHistory
 Subclass of Solution History that stores the solutions and other important vectors in memory. More...
 
class  Mesh
 The Mesh class is a thin wrapper, around the ReplicatedMesh class by default. More...
 
struct  mesh_inserter_iterator
 A class for templated methods that expect output iterator arguments, which adds objects to the Mesh. More...
 
class  MeshBase
 This is the MeshBase class. More...
 
class  MeshCommunication
 This is the MeshCommunication class. More...
 
class  MeshfreeInterpolation
 Base class to support various mesh-free interpolation methods. More...
 
class  MeshfreeInterpolationFunction
 
class  MeshfreeSolutionTransfer
 Implementation of a SolutionTransfer object that utilizes the MeshfreeInterpolation system to interpolate one solution to another. More...
 
class  MeshFunction
 This class provides function-like objects for data distributed over a mesh. More...
 
class  MeshFunctionSolutionTransfer
 Implementation of a SolutionTransfer object that only works for transferring the solution using a MeshFunction. More...
 
class  MeshInput
 This class defines an abstract interface for Mesh input. More...
 
class  MeshOutput
 This class defines an abstract interface for Mesh output. More...
 
class  MeshRefinement
 Implements (adaptive) mesh refinement algorithms for a MeshBase. More...
 
class  MeshSerializer
 Temporarily serialize a DistributedMesh for non-distributed-mesh capable code paths. More...
 
class  MeshSmoother
 This class provides the necessary interface for mesh smoothing. More...
 
class  MeshTetInterface
 Class MeshTetInterface provides an abstract interface for tetrahedralization of meshes by subclasses. More...
 
class  METIS_CSR_Graph
 This utility class provides a convenient implementation for building the compressed-row-storage graph required for the METIS/ParMETIS graph partitioning schemes. More...
 
class  MetisPartitioner
 The MetisPartitioner uses the Metis graph partitioner to partition the elements. More...
 
class  MortonSFCPartitioner
 The MortonSFCPartitioner uses a Morton space filling curve to partition the elements. More...
 
class  NameBasedIO
 This class supports simple reads and writes in any libMesh-supported format, by dispatching to one of the other I/O classes based on filename. More...
 
class  Nemesis_IO
 The Nemesis_IO class implements reading parallel meshes in the Nemesis file format from Sandia National Labs. More...
 
class  Nemesis_IO_Helper
 This is the Nemesis_IO_Helper class. More...
 
class  NetGenMeshInterface
 Class NetGenMeshInterface provides an interface for tetrahedralization of meshes using the NetGen library. More...
 
class  NewmarkSolver
 This class defines a Newmark time integrator for second order (in time) DifferentiableSystems. More...
 
class  NewmarkSystem
 This class contains a specific system class. More...
 
class  NewtonSolver
 This class defines a solver which uses the default libMesh linear solver in a quasiNewton method to handle a DifferentiableSystem. More...
 
class  NloptOptimizationSolver
 This class provides an interface to the NLopt optimization solvers. More...
 
class  Node
 A Node is like a Point, but with more information. More...
 
class  NodeConstraints
 The Node constraint storage format. More...
 
class  NodeElem
 The NodeElem is a point element, generally used as a side of a 1D element. More...
 
class  NonlinearImplicitSystem
 Manages consistently variables, degrees of freedom, coefficient vectors, matrices and non-linear solvers for implicit systems. More...
 
class  NonlinearSolver
 This base class can be inherited from to provide interfaces to nonlinear solvers from different packages like PETSc and Trilinos. More...
 
class  NonManifoldGhostingFunctor
 A GhostingFunctor subclass that uses a SidesToElemMap object to determine when Elem DOFs should be ghosted in non-manifold meshes. More...
 
class  NoSolutionHistory
 'Save nothing' subclass of Solution History, this is the default. More...
 
class  NotImplemented
 A class to stub for features that should be in libMesh, but haven't been written yet, to be thrown by "libmesh_not_implemented();". More...
 
class  NoxNonlinearSolver
 This class provides an interface to nox iterative solvers that is compatible with the libMesh NonlinearSolver<> More...
 
struct  null_output_iterator
 A do-nothing class for templated methods that expect output iterator arguments. More...
 
class  NumericVector
 Provides a uniform interface to vector storage schemes for different linear algebra libraries. More...
 
class  OFFIO
 This class is responsible for reading an unstructured, triangulated surface in the standard OFF OOGL format. More...
 
class  OldSolutionBase
 The OldSolutionBase input functor abstract base class is the root of the OldSolutionValue and OldSolutionCoefs classes which allow a GenericProjector to read old solution values or solution interpolation coefficients for a just-refined-and-coarsened mesh. More...
 
class  OldSolutionCoefs
 The OldSolutionCoefs input functor class can be used with GenericProjector to read solution transfer coefficients on a just-refined-and-coarsened mesh. More...
 
class  OldSolutionValue
 The OldSolutionValue input functor class can be used with GenericProjector to read values from a solution on a just-refined-and-coarsened mesh. More...
 
class  OptimizationSolver
 This base class can be inherited from to provide interfaces to optimization solvers from different packages like PETSc/TAO and nlopt. More...
 
class  OptimizationSystem
 This System subclass enables us to assemble an objective function, gradient, Hessian and bounds for optimization problems. More...
 
class  OrderWrapper
 This provides a shim class that wraps the Order enum. More...
 
class  OverlapCoupling
 This class implements ghosting of elements that overlap or touch at at least one sampled point, even if no topological connection between the elements exists. More...
 
class  ParallelMesh
 
class  ParallelObject
 An object whose state is distributed along a set of processors. More...
 
class  ParameterAccessor
 Accessor object allowing reading and modification of the independent variables in a parameter sensitivity calculation. More...
 
class  ParameterMultiAccessor
 Accessor object allowing reading and modification of the independent variables in a parameter sensitivity calculation. More...
 
class  ParameterMultiPointer
 Accessor object allowing reading and modification of the independent variables in a parameter sensitivity calculation. More...
 
class  ParameterPointer
 Accessor object allowing reading and modification of the independent variables in a parameter sensitivity calculation. More...
 
class  ParameterProxy
 
class  Parameters
 This class provides the ability to map between arbitrary, user-defined strings and several data types. More...
 
class  ParameterVector
 Data structure for specifying which Parameters should be independent variables in a parameter sensitivity calculation. More...
 
class  ParmetisHelper
 The ParmetisHelper class allows us to use a 'pimpl' strategy in the ParmetisPartitioner class. More...
 
class  ParmetisPartitioner
 The ParmetisPartitioner uses the Parmetis graph partitioner to partition the elements. More...
 
class  ParsedFEMFunction
 ParsedFEMFunction provides support for FParser-based parsed functions in FEMSystem. More...
 
class  ParsedFEMFunctionParameter
 Accessor object allowing reading and modification of the independent variables in a parameter sensitivity calculation. More...
 
class  ParsedFunction
 A Function generated (via FParser) by parsing a mathematical expression. More...
 
class  ParsedFunctionParameter
 Accessor object allowing reading and modification of the independent variables in a parameter sensitivity calculation. More...
 
class  Partitioner
 The Partitioner class provides a uniform interface for partitioning algorithms. More...
 
class  Patch
 This class implements useful utility functions for a patch of elements. More...
 
class  PatchRecoveryErrorEstimator
 This class implements the Patch Recovery error indicator. More...
 
class  PerfData
 The PerfData class simply contains the performance data that is recorded for individual events. More...
 
struct  PerfItem
 Used for logging something that naturally lasts as long as some enclosing scope, such as the current function. More...
 
class  PerfLog
 The PerfLog class allows monitoring of specific events. More...
 
class  PerfMon
 PAPI stands for Performance Application Programming Interface. More...
 
class  PeriodicBoundaries
 We're using a class instead of a typedef to allow forward declarations and future flexibility. More...
 
class  PeriodicBoundary
 The definition of a periodic boundary. More...
 
class  PeriodicBoundaryBase
 The base class for defining periodic boundaries. More...
 
class  PetscDiffSolver
 This class defines a solver which uses a PETSc SNES context to handle a DifferentiableSystem. More...
 
struct  PetscDMContext
 Struct to house data regarding where in the mesh hierarchy we are located. More...
 
class  PetscDMWrapper
 This class defines a wrapper around the PETSc DM infrastructure. More...
 
class  PetscLinearSolver
 This class provides an interface to PETSc iterative solvers that is compatible with the libMesh LinearSolver<> More...
 
class  PetscMatrix
 This class provides a nice interface to the PETSc C-based AIJ data structures for parallel, sparse matrices. More...
 
class  PetscMatrixBase
 This class provides a nice interface to the PETSc C-based data structures for parallel, sparse matrices. More...
 
class  PetscMatrixShellMatrix
 This class allows to use a PETSc shell matrix as a PetscMatrix. More...
 
class  PetscMFFDMatrix
 This class allows to use a PETSc shell matrix as a PetscMatrix. More...
 
class  PetscNonlinearSolver
 This class provides an interface to PETSc iterative solvers that is compatible with the libMesh NonlinearSolver<> More...
 
class  PetscPreconditioner
 This class provides an interface to the suite of preconditioners available from PETSc. More...
 
class  PetscShellMatrix
 This class allows to use a PETSc shell matrix. More...
 
class  PetscSolverException
 A specialization of the SolverException class for PETSc. More...
 
class  PetscVector
 This class provides a nice interface to PETSc's Vec object. More...
 
class  Plane
 This class defines a plane. More...
 
class  PltLoader
 This class will read a binary .plt file. More...
 
class  Point
 A Point defines a location in LIBMESH_DIM dimensional Real space. More...
 
class  PointerToPointerIter
 The PointerToPointerIter templated class is intended to wrap pointer-to-pointer iterators in an interface which works more like a standard iterator, by returning a value rather than a pointer. More...
 
class  PointLocatorBase
 This is the base class for point locators. More...
 
class  PointLocatorNanoflann
 This is a PointLocator that uses Nanoflann for its implementation. More...
 
class  PointLocatorTree
 This is a point locator. More...
 
class  PointNeighborCoupling
 This class implements ghosting of point neighbors (elements on the same manifold that share points), ghosting stencils out to a user-configurable number of levels of neighbors. More...
 
class  Poly2TriTriangulator
 A C++ interface between LibMesh and the poly2tri library, with custom code for Steiner point insertion. More...
 
class  Polygon
 The Polygon is an element in 2D with an arbitrary (but fixed) number of sides. More...
 
class  Polyhedron
 The Polyhedron is an element in 3D with an arbitrary number of polygonal faces. More...
 
class  PoolAllocator
 An allocator which can be used in standard containers. More...
 
class  PostscriptIO
 This class implements writing 2D meshes in Postscript. More...
 
class  Preconditioner
 This class provides a uniform interface for preconditioners. More...
 
class  Prism
 The Prism is an element in 3D with 5 sides. More...
 
class  Prism15
 
The Prism15 is an element in 3D composed of 15 nodes. More...
 
class  Prism18
 
The Prism18 is an element in 3D composed of 18 nodes. More...
 
class  Prism20
 
The Prism20 is an element in 3D composed of 20 nodes. More...
 
class  Prism21
 
The Prism21 is an element in 3D composed of 21 nodes. More...
 
class  Prism6
 
The Prism6 is an element in 3D composed of 6 nodes. More...
 
class  Problem_Interface
 
class  PSoln
 
class  Pyramid
 The Pyramid is an element in 3D with 5 sides. More...
 
class  Pyramid13
 
The Pyramid13 is an element in 3D composed of 13 nodes, designed to interface with a QUAD8 element on the base and a TRI6 element on each of the triangular faces. More...
 
class  Pyramid14
 
The Pyramid14 is an element in 3D composed of 14 nodes, designed to interface with a QUAD9 element on the base and a TRI6 element on each of the triangular faces. More...
 
class  Pyramid18
 
The Pyramid18 is an element in 3D composed of 18 nodes, designed to interface with a QUAD9 element on the base and a TRI7 element on each of the triangular faces. More...
 
class  Pyramid5
 
The Pyramid5 is an element in 3D composed of 5 nodes. More...
 
class  QBase
 The QBase class provides the basic functionality from which various quadrature rules can be derived. More...
 
class  QClough
 This class creates a Gaussian quadrature rule duplicated for each subelement of a Clough-Tocher divided macroelement. More...
 
class  QComposite
 This class implements generic composite quadrature rules. More...
 
class  QConical
 This class implements the so-called conical product quadrature rules for Tri and Tet elements. More...
 
class  QGauss
 This class implements specific orders of Gauss quadrature. More...
 
class  QGaussLobatto
 This class implements Gauss-Lobatto quadrature for 1D elements and 2D/3D tensor product elements. More...
 
class  QGrid
 This class creates quadrature points on a uniform grid, with order+1 points on an edge. More...
 
class  QGrundmann_Moller
 
This class implements the Grundmann-Moller quadrature rules for tetrahedra. More...
 
class  QJacobi
 This class implements two (for now) Jacobi-Gauss quadrature rules. More...
 
class  QMonomial
 This class defines alternate quadrature rules on "tensor-product" elements (quadrilaterals and hexahedra) which can be useful when integrating monomial finite element bases. More...
 
class  QNodal
 This class implements nodal quadrature rules for various element types. More...
 
class  QoISet
 Data structure for specifying which Quantities of Interest should be calculated in an adjoint or a parameter sensitivity calculation. More...
 
class  QSimpson
 This class implements Simpson quadrature. More...
 
class  QTrap
 This class implements trapezoidal quadrature. More...
 
class  Quad
 
The QUAD is an element in 2D composed of 4 sides. More...
 
class  Quad4
 
The QUAD4 is an element in 2D composed of 4 nodes. More...
 
class  Quad8
 
The QUAD8 is an element in 2D composed of 8 nodes. More...
 
class  Quad9
 
The QUAD9 is an element in 2D composed of 9 nodes. More...
 
class  QuadShell4
 QuadShell4 is almost identical to Quad4. More...
 
class  QuadShell8
 QuadShell8 is almost identical to Quad8. More...
 
class  QuadShell9
 QuadShell9 is almost identical to Quad9. More...
 
class  RadialBasisInterpolation
 Radial Basis Function interpolation. More...
 
class  RawAccessor
 This class provides single index access to FieldType (i.e. More...
 
class  RawAccessor< TypeNTensor< N, ScalarType > >
 Stub implementations for stub TypeNTensor object. More...
 
struct  RawFieldType
 What underlying data type would we need to access in each field? More...
 
struct  RawFieldType< Gradient >
 
struct  RawFieldType< Number >
 
struct  RawFieldType< Real >
 
struct  RawFieldType< RealGradient >
 
struct  RawFieldType< RealTensor >
 
struct  RawFieldType< Tensor >
 
struct  RawFieldType< TypeNTensor< 3, Number > >
 
struct  RawFieldType< TypeNTensor< 3, Real > >
 
class  RBAssemblyExpansion
 This class stores the set of ElemAssembly functor objects that define the "parameter-independent expansion" of a PDE. More...
 
class  RBConstruction
 This class is part of the rbOOmit framework. More...
 
class  RBConstructionBase
 This class is part of the rbOOmit framework. More...
 
class  RBEIMAssembly
 This class provides functionality required to define an assembly object that arises from an "Empirical Interpolation Method" (EIM) approximation. More...
 
class  RBEIMConstruction
 This class is part of the rbOOmit framework. More...
 
class  RBEIMEvaluation
 This class enables evaluation of an Empirical Interpolation Method (EIM) approximation. More...
 
class  RBEIMTheta
 This class provides functionality required to define an RBTheta object that arises from an "Empirical Interpolation Method" (EIM) approximation. More...
 
class  RBEvaluation
 This class is part of the rbOOmit framework. More...
 
class  RBParameters
 This class is part of the rbOOmit framework. More...
 
class  RBParametrized
 This class is part of the rbOOmit framework. More...
 
class  RBParametrizedFunction
 A simple functor class that provides a RBParameter-dependent function. More...
 
class  RBSCMConstruction
 This class is part of the rbOOmit framework. More...
 
class  RBSCMEvaluation
 This class is part of the rbOOmit framework. More...
 
class  RBTemporalDiscretization
 Define a class that encapsulates the details of a "generalized Euler" temporal discretization to be used in the rbOOmit framework. More...
 
class  RBTheta
 This class is part of the rbOOmit framework. More...
 
class  RBThetaExpansion
 This class stores the set of RBTheta functor objects that define the "parameter-dependent expansion" of a PDE. More...
 
struct  RealTraits
 
struct  RealTraits< MetaPhysicL::DualNumber< T, D, asd > >
 
class  ReferenceCountedObject
 This class implements reference counting. More...
 
class  ReferenceCounter
 This is the base class for enabling reference counting. More...
 
class  RefinementSelector
 This abstract class provides an interface to methods for selecting the type of refinement to be used on each element in a given mesh. More...
 
class  RemoteElem
 In parallel meshes where a ghost element has neighbors which do not exist on the local processor, the ghost element's neighbors are set to point to the singleton RemoteElement instead. More...
 
class  ReplicatedMesh
 The ReplicatedMesh class is derived from the MeshBase class, and is used to store identical copies of a full mesh data structure on each processor. More...
 
class  ResidualContext
 
struct  ScalarTraits
 
struct  ScalarTraits< MetaPhysicL::DualNumber< T, D, asd > >
 
struct  ScalarTraits< MetaPhysicL::DynamicSparseNumberArray< T, IndexType > >
 
struct  ScalarTraits< std::complex< T > >
 
class  SecondOrderUnsteadySolver
 Generic class from which second order UnsteadySolvers should subclass. More...
 
class  SensitivityData
 Data structure for holding completed parameter sensitivity calculations. More...
 
class  SerialMesh
 
class  SFCPartitioner
 The SFCPartitioner uses a Hilbert or Morton-ordered space filling curve to partition the elements. More...
 
class  ShellMatrix
 Generic shell matrix, i.e. More...
 
class  SiblingCoupling
 This class adds coupling (for use in send_list construction) between active elements and all descendants of their parent. More...
 
class  Side
 
class  SimpleRange
 The SimpleRange templated class is intended to make it easy to construct ranges from pairs of iterators. More...
 
class  SimplexRefiner
 A C++ class to refine a simplicial mesh via splitting edges that exceed a given metric. More...
 
class  Singleton
 Base class for all library singleton objects. More...
 
class  SlepcEigenSolver
 This class provides an interface to the SLEPc eigenvalue solver library from http://slepc.upv.es/. More...
 
class  SolutionHistory
 A SolutionHistory class that enables the storage and retrieval of timesteps and (in the future) adaptive steps. More...
 
class  SolutionTransfer
 Base class for objects that allow transferring variable values between different systems with different meshes. More...
 
class  SolverConfiguration
 This class stores solver configuration data, e.g. More...
 
class  SolverException
 A class representing an exception during a solve. More...
 
class  SparseMatrix
 Generic sparse matrix. More...
 
class  SparseShellMatrix
 This class allows to use any SparseMatrix object as a shell matrix. More...
 
class  Sphere
 
This class defines a sphere. More...
 
class  StaticCondensation
 
class  StaticCondensationDofMap
 A class holding degree of freedom information pertinent to static condensation. More...
 
class  StaticCondensationPreconditioner
 
class  StatisticsVector
 The StatisticsVector class is derived from the std::vector<> and therefore has all of its useful features. More...
 
class  SteadySolver
 This class implements a TimeSolver which does a single solve of the steady state problem. More...
 
class  STLIO
 This class implements reading and writing triangle meshes in the STL format. More...
 
class  StoredRange
 The StoredRange class defines a contiguous, divisible set of objects. More...
 
class  SubdomainPartitioner
 The SubdomainPartitioner partitions the elements in "chunks" of user-specified subdomain ids. More...
 
class  SumShellMatrix
 This class combines any number of shell matrices to a single shell matrix by summing them together. More...
 
class  Surface
 The base class for all "surface" related geometric objects. More...
 
struct  SyncElementIntegers
 
struct  SyncLocalIDs
 
struct  SyncNodalPositions
 
struct  SyncRefinementFlags
 
struct  SyncSubdomainIds
 
class  System
 Manages consistently variables, degrees of freedom, and coefficient vectors. More...
 
class  SystemNorm
 This class defines a norm/seminorm to be applied to a NumericVector which contains coefficients in a finite element space. More...
 
class  SystemSubset
 This is a base class for classes which represent subsets of the dofs of a System. More...
 
class  SystemSubsetBySubdomain
 This class represents a subset of the dofs of a System, selected by the subdomain_id and possible the variable numbers. More...
 
class  TaoOptimizationSolver
 This class provides an interface to the Tao optimization solvers. More...
 
class  TecplotIO
 This class implements writing meshes in the Tecplot format. More...
 
class  TensorShellMatrix
 Shell matrix that is given by a tensor product of two vectors, i.e. More...
 
class  TensorValue
 This class defines a tensor in LIBMESH_DIM dimensional Real or Complex space. More...
 
class  TestClass
 
class  Tet
 The Tet is an element in 3D composed of 4 sides. More...
 
class  Tet10
 
The Tet10 is an element in 3D composed of 10 nodes. More...
 
class  Tet14
 
The Tet14 is an element in 3D composed of 14 nodes. More...
 
class  Tet4
 
The Tet4 is an element in 3D composed of 4 nodes. More...
 
class  TetGenIO
 This class implements reading and writing meshes in the TetGen format. More...
 
class  TetGenMeshInterface
 Class TetGenMeshInterface provides an interface for tetrahedralization of meshes using the TetGen library. More...
 
class  TetGenWrapper
 The TetGenWrapper provides an interface for basic access to TetGen data structures and methods. More...
 
class  TimeSolver
 This is a generic class that defines a solver to handle time integration of DifferentiableSystems. More...
 
class  TopologyMap
 Data structures that enable topology-based lookups of nodes created by mesh refinement. More...
 
class  TransientRBAssemblyExpansion
 This extends RBAssemblyExpansion to provide an assembly expansion for the case of time-dependent PDEs. More...
 
class  TransientRBConstruction
 This class is part of the rbOOmit framework. More...
 
class  TransientRBEvaluation
 This class is part of the rbOOmit framework. More...
 
class  TransientRBThetaExpansion
 This class stores the set of RBTheta functor objects that define the "parameter-dependent expansion" of a PDE. More...
 
class  TransientSystem
 Manages storage and variables for transient systems. More...
 
class  Tree
 This class defines a tree that may be used for fast point location in space. More...
 
class  TreeBase
 This is the base class for trees, it allows pointer usage of trees. More...
 
class  TreeNode
 This class defines a node on a tree. More...
 
class  Tri
 
The Tri is an element in 2D composed of 3 sides. More...
 
class  Tri3
 
The Tri3 is an element in 2D composed of 3 nodes. More...
 
class  Tri3Subdivision
 The Tri3Subdivision element is a three-noded subdivision surface shell element used in mechanics calculations. More...
 
class  Tri6
 
The Tri6 is an element in 2D composed of 6 nodes. More...
 
class  Tri7
 
The Tri7 is an element in 2D composed of 7 nodes. More...
 
class  TriangleInterface
 A C++ interface between LibMesh and the Triangle library written by J.R. More...
 
class  TriangulatorInterface
 
class  TrilinosPreconditioner
 This class provides an interface to the suite of preconditioners available from Trilinos. More...
 
class  TriShell3
 TriShell3 is almost identical to Tri3. More...
 
struct  tuple_n
 
struct  tuple_n< 0, T >
 
class  TwostepTimeSolver
 This class wraps another UnsteadySolver derived class, and compares the results of timestepping with deltat and timestepping with 2*deltat to adjust future timestep lengths. More...
 
class  TypeNTensor
 This class will eventually define a rank-N tensor in LIBMESH_DIM dimensional space of type T. More...
 
struct  TypesEqual
 
struct  TypesEqual< T, T >
 
class  TypeTensor
 This class defines a tensor in LIBMESH_DIM dimensional space of type T. More...
 
class  TypeTensorColumn
 
struct  TypeToSend
 For ease of communication, we allow users to translate their own value types to a more easily computable (typically a vector of some fixed-size type) output, by specializing these calls using different types. More...
 
struct  TypeToSend< MetaPhysicL::DynamicSparseNumberArray< T, IndexType > >
 
class  TypeVector
 This class defines a vector in LIBMESH_DIM dimensional space of type T. More...
 
struct  TypeVectorAttributes
 
class  TypeVectorOpFunction
 
class  UCDIO
 This class implements reading & writing meshes in the AVS's UCD format. More...
 
class  UniformRefinementEstimator
 This class implements a `‘brute force’' error estimator which integrates differences between the current solution and the solution on a uniformly refined (in h and/or p, for an arbitrary number of levels) grid. More...
 
class  UnsteadySolver
 This is a generic class that defines a solver to handle time integration of DifferentiableSystems. More...
 
class  UnstructuredMesh
 The UnstructuredMesh class is derived from the MeshBase class. More...
 
class  UNVIO
 The UNVIO class implements the Ideas UNV universal file format. More...
 
class  USoln
 
class  Variable
 This class defines the notion of a variable in the system. More...
 
class  VariableGroup
 This class defines a logically grouped set of variables in the system. More...
 
class  VariationalMeshSmoother
 This is an implementation of Larisa Branets' smoothing algorithms. More...
 
class  VariationalSmootherConstraint
 
class  VariationalSmootherSystem
 
struct  VectorizedEvalInput
 Define a struct for the input to the "vectorized evaluate" functions below. More...
 
class  vectormap
 
This vectormap templated class is intended to provide the performance characteristics of a sorted std::vector with an interface more closely resembling that of a std::map, for use in particular when memory is tight. More...
 
class  VectorOfNodesAdaptor
 
class  VectorSetAction
 The VectorSetAction output functor class can be used with a GenericProjector to set projection values (which must be of type Val) as coefficients of the given NumericVector. More...
 
class  VectorValue
 This class defines a vector in LIBMESH_DIM dimensional Real or Complex space. More...
 
class  VSoln
 
class  VTKIO
 This class implements reading and writing meshes in the VTK format. More...
 
class  WeightedPatchRecoveryErrorEstimator
 This class implements the Patch Recovery error indicator. More...
 
class  WendlandRBF
 Simple radial basis function. More...
 
class  WrappedFunction
 Wrap a libMesh-style function pointer into a FunctionBase object. More...
 
class  WrappedFunctor
 This class provides a wrapper with which to evaluate a (libMesh-style) function pointer in a FunctionBase-compatible interface. More...
 
struct  WrappedPetsc
 
class  Xdr
 This class implements a C++ interface to the XDR (eXternal Data Representation) format. More...
 
class  XdrIO
 MeshIO class used for writing XDR (eXternal Data Representation) and XDA mesh files. More...
 
class  ZeroFunction
 ConstFunction that simply returns 0. More...
 

Typedefs

typedef std::map< dof_id_type, Real, std::less< dof_id_type >, Threads::scalable_allocator< std::pair< const dof_id_type, Real > > > DofConstraintRow
 A row of the Dof constraint matrix. More...
 
typedef std::map< const Node *, Real, std::less< const Node * >, Threads::scalable_allocator< std::pair< const Node *const, Real > > > NodeConstraintRow
 A row of the Node constraint mapping. More...
 
typedef TestClass subdomain_id_type
 Based on the 4-byte comment warning above, this probably doesn't work with exodusII at all... More...
 
typedef int8_t boundary_id_type
 
typedef uint8_t dof_id_type
 
typedef int8_t dof_id_signed_type
 
typedef uint8_t unique_id_type
 
typedef dof_id_type numeric_index_type
 
typedef uint8_t processor_id_type
 
typedef uint64_t largest_id_type
 
typedef subdomain_id_type elemset_id_type
 
typedef std::complex< RealComplex
 
typedef std::complex< RealCOMPLEX
 
typedef Real Number
 
typedef FEGenericBase< RealFEBase
 
typedef TensorValue< NumberNumberTensorValue
 
typedef NumberTensorValue Tensor
 
typedef VectorValue< NumberNumberVectorValue
 
typedef NumberVectorValue Gradient
 
typedef VectorValue< RealRealVectorValue
 Useful typedefs to allow transparent switching between Real and Complex data types. More...
 
typedef TensorValue< RealRealTensorValue
 Useful typedefs to allow transparent switching between Real and Complex data types. More...
 
typedef RealVectorValue RealGradient
 
typedef RealTensorValue RealTensor
 
typedef FEGenericBase< RealGradientFEVectorBase
 
typedef std::unordered_multiset< Elem *, ElemHashUtils, ElemHashUtilsunordered_multiset_elem
 
typedef StoredRange< MeshBase::element_iterator, Elem * > ElemRange
 
typedef StoredRange< MeshBase::const_element_iterator, const Elem * > ConstElemRange
 
typedef StoredRange< MeshBase::node_iterator, Node * > NodeRange
 
typedef StoredRange< MeshBase::const_node_iterator, const Node * > ConstNodeRange
 
typedef DistributedMesh DefaultMesh
 
typedef std::set< const Node * > connected_node_set_type
 
typedef std::set< const Elem *, CompareElemIdsByLevelconnected_elem_set_type
 
typedef int32_t eigen_idx_type
 
typedef Eigen::SparseMatrix< Number, Eigen::RowMajor, eigen_idx_typeEigenSM
 
typedef Eigen::Matrix< Number, Eigen::Dynamic, 1 > EigenSV
 
typedef Eigen::Matrix< Number, Eigen::Dynamic, Eigen::Dynamic > EigenMatrix
 
typedef Eigen::Matrix< Number, Eigen::Dynamic, 1 > EigenVector
 
template<std::size_t Index, typename T >
using tuple_of = typename tuple_n< Index, T >::template type<>
 
using RBParameter = std::vector< Real >
 Typedef for an individual RB parameter. More...
 
typedef LinearImplicitSystem SteadyLinearSystem
 
typedef TransientSystem< LinearImplicitSystemTransientImplicitSystem
 
typedef TransientSystem< LinearImplicitSystemTransientLinearImplicitSystem
 
typedef TransientSystem< NonlinearImplicitSystemTransientNonlinearImplicitSystem
 
typedef TransientSystem< ExplicitSystemTransientExplicitSystem
 
typedef TransientSystem< SystemTransientBaseSystem
 
typedef TransientSystem< EigenSystemTransientEigenSystem
 
typedef BasicOStreamProxy OStreamProxy
 
typedef DynamicSparseNumberArray< Real, dof_id_typeDSNAN
 

Enumerations

enum  VariableIndexing { SYSTEM_VARIABLE_ORDER = 0, LOCAL_VARIABLE_ORDER }
 Dirichlet functions may be indexed either by "system variable order" or "local variable order", depending on how the DirichletBoundary object is constructed. More...
 
enum  LinearConvergenceReason : int {
  CONVERGED_RTOL_NORMAL = 1, CONVERGED_ATOL_NORMAL = 9, CONVERGED_RTOL = 2, CONVERGED_ATOL = 3,
  CONVERGED_ITS = 4, CONVERGED_CG_NEG_CURVE = 5, CONVERGED_CG_CONSTRAINED = 6, CONVERGED_STEP_LENGTH = 7,
  CONVERGED_HAPPY_BREAKDOWN = 8, DIVERGED_NULL = -2, DIVERGED_ITS = -3, DIVERGED_DTOL = -4,
  DIVERGED_BREAKDOWN = -5, DIVERGED_BREAKDOWN_BICG = -6, DIVERGED_NONSYMMETRIC = -7, DIVERGED_INDEFINITE_PC = -8,
  DIVERGED_NAN = -9, DIVERGED_INDEFINITE_MAT = -10, DIVERGED_PCSETUP_FAILED = -11, CONVERGED_ITERATING = 0,
  UNKNOWN_FLAG = -128
}
 Linear solver convergence flags (taken from the PETSc flags). More...
 
enum  EigenSolverType : int {
  POWER =0, LAPACK, SUBSPACE, ARNOLDI,
  LANCZOS, KRYLOVSCHUR, INVALID_EIGENSOLVER
}
 Defines an enum for iterative eigenproblem solver types. More...
 
enum  EigenProblemType : int {
  NHEP =0, HEP, GNHEP, GHEP,
  GHIEP, INVALID_EIGENPROBLEMTYPE
}
 Defines an enum for eigenproblem types. More...
 
enum  PositionOfSpectrum : int {
  LARGEST_MAGNITUDE =0, SMALLEST_MAGNITUDE, TARGET_MAGNITUDE, LARGEST_REAL,
  SMALLEST_REAL, TARGET_REAL, LARGEST_IMAGINARY, SMALLEST_IMAGINARY,
  TARGET_IMAGINARY, INVALID_Postion_of_Spectrum, INVALID_POSITION_OF_SPECTRUM
}
 Defines an enum for the position of the spectrum, i.e. More...
 
enum  ElemQuality : int {
  ASPECT_RATIO =0, SKEW, SHEAR, SHAPE,
  MAX_ANGLE, MIN_ANGLE, CONDITION, DISTORTION,
  TAPER, WARP, STRETCH, DIAGONAL,
  ASPECT_RATIO_BETA, ASPECT_RATIO_GAMMA, SIZE, JACOBIAN,
  TWIST, EDGE_LENGTH_RATIO, MAX_DIHEDRAL_ANGLE, MIN_DIHEDRAL_ANGLE,
  SCALED_JACOBIAN
}
 Defines an enum for element quality metrics. More...
 
enum  ElemType : int {
  EDGE2 = 0, EDGE3 = 1, EDGE4 = 2, TRI3 = 3,
  TRI6 = 4, QUAD4 = 5, QUAD8 = 6, QUAD9 = 7,
  TET4 = 8, TET10 = 9, HEX8 = 10, HEX20 = 11,
  HEX27 = 12, PRISM6 = 13, PRISM15 = 14, PRISM18 = 15,
  PYRAMID5 = 16, PYRAMID13 = 17, PYRAMID14 = 18, INFEDGE2 = 19,
  INFQUAD4 = 20, INFQUAD6 = 21, INFHEX8 = 22, INFHEX16 = 23,
  INFHEX18 = 24, INFPRISM6 = 25, INFPRISM12 = 26, NODEELEM = 27,
  REMOTEELEM = 28, TRI3SUBDIVISION = 29, TRISHELL3 = 30, QUADSHELL4 = 31,
  QUADSHELL8 = 32, TRI7 = 33, TET14 = 34, PRISM20 = 35,
  PRISM21 = 36, PYRAMID18 = 37, QUADSHELL9 = 38, C0POLYGON = 39,
  C0POLYHEDRON = 40, INVALID_ELEM
}
 Defines an enum for geometric element types. More...
 
enum  ElemMappingType : unsigned char { LAGRANGE_MAP = 0, RATIONAL_BERNSTEIN_MAP, INVALID_MAP }
 Enumeration of possible element master->physical mapping types. More...
 
enum  ErrorEstimatorType : int {
  INVALID = -1, ADJOINT_REFINEMENT = 0, ADJOINT_RESIDUAL = 1, DISCONTINUITY_MEASURE = 2,
  EXACT = 3, KELLY = 4, LAPLACIAN = 5, PATCH_RECOVERY = 6,
  WEIGHTED_PATCH_RECOVERY = 7, UNIFORM_REFINEMENT = 8
}
 Defines an enum for the different types of error estimators which are available. More...
 
enum  FEFamily : int {
  LAGRANGE = 0, HIERARCHIC = 1, MONOMIAL = 2, L2_HIERARCHIC = 6,
  L2_LAGRANGE = 7, BERNSTEIN = 3, SZABAB = 4, XYZ = 5,
  INFINITE_MAP = 11, JACOBI_20_00 = 12, JACOBI_30_00 = 13, LEGENDRE = 14,
  CLOUGH = 21, HERMITE = 22, SUBDIVISION = 23, SCALAR = 31,
  LAGRANGE_VEC = 41, NEDELEC_ONE = 42, MONOMIAL_VEC = 43, RAVIART_THOMAS = 44,
  L2_RAVIART_THOMAS = 45, L2_LAGRANGE_VEC = 46, HIERARCHIC_VEC = 47, L2_HIERARCHIC_VEC = 48,
  RATIONAL_BERNSTEIN = 61, SIDE_HIERARCHIC = 71, INVALID_FE = 99
}
 defines an enum for finite element families. More...
 
enum  FEContinuity : int {
  DISCONTINUOUS, C_ZERO, C_ONE, H_CURL,
  H_DIV, SIDE_DISCONTINUOUS
}
 defines an enum for finite element types to libmesh_assert a certain level (or type? Hcurl?) of continuity. More...
 
enum  FEFieldType : int { TYPE_SCALAR = 0, TYPE_VECTOR }
 defines an enum for finite element field types - i.e. More...
 
enum  InfMapType : int { CARTESIAN =0, SPHERICAL, ELLIPSOIDAL, INVALID_INF_MAP }
 defines an enum for the types of coordinate mappings available in infinite elements. More...
 
enum  IOPackage : int {
  TECPLOT, GMV, GMSH, VTK,
  DIVA, TETGEN, UCD, LIBMESH,
  INVALID_IO_PACKAGE
}
 libMesh interfaces with several different software packages for the purposes of creating, reading, and writing mesh files. More...
 
enum  MatrixBuildType { AUTOMATIC, MatrixBuildType::DIAGONAL }
 Defines an enum for matrix build types. More...
 
enum  FEMNormType : int {
  L2 = 0, H1 = 1, H2 = 2, HCURL = 3,
  HDIV = 4, L1 = 5, L_INF = 6, H1_SEMINORM = 10,
  H2_SEMINORM = 11, HCURL_SEMINORM = 12, HDIV_SEMINORM = 13, W1_INF_SEMINORM = 15,
  W2_INF_SEMINORM = 16, DISCRETE_L1 = 20, DISCRETE_L2 = 21, DISCRETE_L_INF = 22,
  H1_X_SEMINORM = 31, H1_Y_SEMINORM = 32, H1_Z_SEMINORM = 33, INVALID_NORM = 42
}
 defines an enum for norms defined on vectors of finite element coefficients More...
 
enum  Order : int {
  CONSTANT = 0, FIRST = 1, SECOND = 2, THIRD = 3,
  FOURTH = 4, FIFTH = 5, SIXTH = 6, SEVENTH = 7,
  EIGHTH = 8, NINTH = 9, TENTH = 10, ELEVENTH = 11,
  TWELFTH = 12, THIRTEENTH = 13, FOURTEENTH = 14, FIFTEENTH = 15,
  SIXTEENTH = 16, SEVENTEENTH = 17, EIGHTTEENTH = 18, EIGHTEENTH = 18,
  NINETEENTH = 19, TWENTIETH = 20, TWENTYFIRST = 21, TWENTYSECOND = 22,
  TWENTYTHIRD = 23, TWENTYFOURTH = 24, TWENTYFIFTH = 25, TWENTYSIXTH = 26,
  TWENTYSEVENTH = 27, TWENTYEIGHTH = 28, TWENTYNINTH = 29, THIRTIETH = 30,
  THIRTYFIRST = 31, THIRTYSECOND = 32, THIRTYTHIRD = 33, THIRTYFOURTH = 34,
  THIRTYFIFTH = 35, THIRTYSIXTH = 36, THIRTYSEVENTH = 37, THIRTYEIGHTH = 38,
  THIRTYNINTH = 39, FORTIETH = 40, FORTYFIRST = 41, FORTYSECOND = 42,
  FORTYTHIRD = 43, MAXIMUM = 255, INVALID_ORDER
}
 defines an enum for polynomial orders. More...
 
enum  ParallelType : int {
  AUTOMATIC =0, AUTOMATIC, SERIAL, PARALLEL,
  GHOSTED, INVALID_PARALLELIZATION
}
 Defines an enum for parallel data structure types. More...
 
enum  PartitionerType : int {
  CENTROID_PARTITIONER =0, LINEAR_PARTITIONER, SFC_PARTITIONER, HILBERT_SFC_PARTITIONER,
  MORTON_SFC_PARTITIONER, METIS_PARTITIONER, PARMETIS_PARTITIONER, SUBDOMAIN_PARTITIONER,
  MAPPED_SUBDOMAIN_PARTITIONER, INVALID_PARTITIONER
}
 Defines an enum for mesh partitioner types. More...
 
enum  PointLocatorType : int {
  TREE = 0, TREE_ELEMENTS, TREE_LOCAL_ELEMENTS, NANOFLANN,
  INVALID_LOCATOR
}
 defines an enum for the types of point locators (given a point with global coordinates, locate the corresponding element in space) available in libMesh. More...
 
enum  PreconditionerType : int {
  IDENTITY_PRECOND =0, JACOBI_PRECOND, BLOCK_JACOBI_PRECOND, SOR_PRECOND,
  SSOR_PRECOND, EISENSTAT_PRECOND, ASM_PRECOND, CHOLESKY_PRECOND,
  ICC_PRECOND, ILU_PRECOND, LU_PRECOND, USER_PRECOND,
  SHELL_PRECOND, AMG_PRECOND, SVD_PRECOND, INVALID_PRECONDITIONER
}
 Defines an enum for preconditioner types. More...
 
enum  QuadratureType : int {
  QGAUSS = 0, QJACOBI_1_0 = 1, QJACOBI_2_0 = 2, QSIMPSON = 3,
  QTRAP = 4, QGRID = 5, QGRUNDMANN_MOLLER = 6, QMONOMIAL = 7,
  QCONICAL = 8, QGAUSS_LOBATTO = 9, QCLOUGH = 21, QCOMPOSITE = 31,
  QNODAL = 32, INVALID_Q_RULE = 127
}
 Defines an enum for currently available quadrature rules. More...
 
enum  SolverPackage : int {
  PETSC_SOLVERS =0, TRILINOS_SOLVERS, LASPACK_SOLVERS, SLEPC_SOLVERS,
  EIGEN_SOLVERS, NLOPT_SOLVERS, DIAGONAL_MATRIX, INVALID_SOLVER_PACKAGE
}
 Defines an enum for various linear solver packages. More...
 
enum  SolverType : int {
  CG =0, CGN, CGS, CR,
  QMR, TCQMR, TFQMR, BICG,
  BICGSTAB, MINRES, GMRES, LSQR,
  JACOBI, SOR_FORWARD, SOR_BACKWARD, SSOR,
  RICHARDSON, CHEBYSHEV, SPARSELU, INVALID_SOLVER
}
 Defines an enum for iterative solver types. More...
 
enum  SubsetSolveMode : int { SUBSET_ZERO = 0, SUBSET_COPY_RHS, SUBSET_DONT_TOUCH }
 defines an enum for the question what happens to the dofs outside the given subset when a system is solved on a subset. More...
 
enum  XdrMODE : int {
  UNKNOWN = -1, ENCODE =0, DECODE, WRITE,
  READ
}
 Defines an enum for read/write mode in Xdr format. More...
 
enum  PetscMatrixType : int { AIJ =0, HYPRE }
 

Functions

FactoryImp< ExampleOneFunction, FunctionBase< Number > > example_one_factory ("example_one")
 
Number compute_error (const Point &p, const Parameters &params, const std::string &, const std::string &unknown_name)
 
template<typename SolnType , typename PhiType >
void compute_qp_soln (std::vector< SolnType > &qp_vec, const unsigned int n_qps, const std::vector< std::vector< PhiType >> &phi, const std::vector< Number > &dof_values)
 
bool initialized ()
 Checks that library initialization has been done. More...
 
bool closed ()
 Checks that the library has been closed. More...
 
void libmesh_terminate_handler ()
 A terminate handler. More...
 
void enableFPE (bool on)
 Toggle hardware trap floating point exceptions. More...
 
void enableSEGV (bool on)
 Toggle libMesh reporting of segmentation faults. More...
 
bool on_command_line (std::string arg)
 
template<typename T >
command_line_value (const std::string &, T)
 
template<typename T >
command_line_value (const std::vector< std::string > &, T)
 
template<typename T >
command_line_next (std::string name, T default_value)
 Use GetPot's search()/next() functions to get following arguments from the command line. More...
 
template<typename T >
void command_line_vector (const std::string &, std::vector< T > &)
 
std::vector< std::string > command_line_names ()
 
void add_command_line_name (const std::string &name)
 Add a name to the set of queried command-line names. More...
 
void add_command_line_names (const GetPot &getpot)
 Merge a GetPot object's requested names into the set of queried command-line names. More...
 
SolverPackage default_solver_package ()
 
constexpr Real operator""_R (const char *r)
 The C++ standard doesn't support literals at higher than long double precision, so if we're in quadruple precision we need our own user-defined literal operator. More...
 
constexpr Real operator""_R (long double r)
 
constexpr Real operator""_R (unsigned long long r)
 
processor_id_type global_n_processors ()
 
processor_id_type global_processor_id ()
 
unsigned int n_threads ()
 
template<typename T >
libmesh_real (T a)
 
template<typename T >
libmesh_imag (T)
 
template<typename T >
libmesh_conj (T a)
 
template<typename T >
libmesh_real (std::complex< T > a)
 
template<typename T >
libmesh_imag (std::complex< T > a)
 
template<typename T >
std::complex< T > libmesh_conj (std::complex< T > a)
 
template<typename T >
bool libmesh_isnan (T x)
 
template<typename T >
bool libmesh_isnan (std::complex< T > a)
 
template<typename T >
bool libmesh_isinf (T x)
 
template<typename T >
bool libmesh_isinf (std::complex< T > a)
 
template<class ... Args>
void libmesh_ignore (const Args &...)
 
template<typename T >
void libmesh_merge_move (T &target, T &source)
 
std::string demangle (const char *name)
 Mostly system independent demangler. More...
 
template<typename Tnew , typename Told >
Tnew cast_ref (Told &oldvar)
 
template<typename Tnew , typename Told >
Tnew cast_ptr (Told *oldvar)
 
template<typename Tnew , typename Told >
Tnew libmesh_cast_ptr (Told *oldvar)
 
template<typename Tnew , typename Told >
Tnew cast_int (Told oldvar)
 
template<typename Tnew , typename Told >
Tnew libmesh_cast_int (Told oldvar)
 
void libmesh_version_stdout ()
 
int get_libmesh_version ()
 
std::string get_io_compatibility_version ()
 Specifier for I/O file compatibility features. More...
 
void print_trace (std::ostream &out_stream=std::cerr)
 Print a stack trace (for code compiled with gcc) More...
 
void write_traceout ()
 Writes a stack trace to a uniquely named file if –enable-tracefiles has been set by configure, otherwise does nothing. More...
 
template<typename T >
Order operator+ (Order o, T p)
 
template<typename T >
Order operator- (Order o, T p)
 
template<typename T >
Order operator+ (T p, Order o)
 
template<typename T >
Orderoperator+= (Order &o, T p)
 
template<typename T >
Orderoperator-= (Order &o, T p)
 
template<typename OutputShape >
OutputShape fe_fdm_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p, const bool add_p_level, OutputShape(*shape_func)(const Elem *, const Order, const unsigned int, const Point &, const bool))
 Helper functions for finite differenced derivatives in cases where analytical calculations haven't been done yet. More...
 
template<typename OutputShape >
OutputShape fe_fdm_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p, OutputShape(*shape_func)(const ElemType, const Order, const unsigned int, const Point &))
 
template<typename OutputShape >
OutputShape fe_fdm_deriv (const ElemType type, const Order order, const Elem *elem, const unsigned int i, const unsigned int j, const Point &p, OutputShape(*shape_func)(const ElemType type, const Order, const Elem *, const unsigned int, const Point &))
 
template<typename OutputShape >
OutputShape fe_fdm_second_deriv (const Elem *elem, const Order order, const unsigned int i, const unsigned int j, const Point &p, const bool add_p_level, OutputShape(*deriv_func)(const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool))
 
template<typename OutputShape >
OutputShape fe_fdm_second_deriv (const ElemType type, const Order order, const unsigned int i, const unsigned int j, const Point &p, OutputShape(*deriv_func)(const ElemType, const Order, const unsigned int, const unsigned int, const Point &))
 
template<typename OutputShape >
OutputShape fe_fdm_second_deriv (const ElemType type, const Order order, const Elem *elem, const unsigned int i, const unsigned int j, const Point &p, OutputShape(*deriv_func)(const ElemType, const Order, const Elem *, const unsigned int, const unsigned int, const Point &))
 
void lagrange_nodal_soln (const Elem *elem, const Order order, const std::vector< Number > &elem_soln, std::vector< Number > &nodal_soln, bool add_p_level=true)
 Helper functions for Lagrange-based basis functions. More...
 
unsigned int monomial_n_dofs (const ElemType t, const Order o)
 Helper functions for Discontinuous-Pn type basis functions. More...
 
unsigned int monomial_n_dofs (const Elem *e, const Order o)
 
void rational_fe_weighted_shapes (const Elem *elem, const FEType underlying_fe_type, std::vector< std::vector< Real >> &shapes, const std::vector< Point > &p, const bool add_p_level)
 Helper functions for rational basis functions. More...
 
void rational_fe_weighted_shapes_derivs (const Elem *elem, const FEType fe_type, std::vector< std::vector< Real >> &shapes, std::vector< std::vector< std::vector< Real >>> &derivs, const std::vector< Point > &p, const bool add_p_level)
 
Real rational_fe_shape (const Elem &elem, const FEType underlying_fe_type, const unsigned int i, const Point &p, const bool add_p_level)
 
Real rational_fe_shape_deriv (const Elem &elem, const FEType underlying_fe_type, const unsigned int i, const unsigned int j, const Point &p, const bool add_p_level)
 
Real rational_fe_shape_second_deriv (const Elem &elem, const FEType underlying_fe_type, const unsigned int i, const unsigned int j, const Point &p, const bool add_p_level)
 
void rational_all_shapes (const Elem &elem, const FEType underlying_fe_type, const std::vector< Point > &p, std::vector< std::vector< Real >> &v, const bool add_p_level)
 
template<typename OutputShape >
void rational_all_shape_derivs (const Elem &elem, const FEType underlying_fe_type, const std::vector< Point > &p, std::vector< std::vector< OutputShape >> *comps[3], const bool add_p_level)
 
Real fe_lagrange_1D_linear_shape (const unsigned int i, const Real xi)
 
Real fe_lagrange_1D_quadratic_shape (const unsigned int i, const Real xi)
 
Real fe_lagrange_1D_cubic_shape (const unsigned int i, const Real xi)
 
Real fe_lagrange_1D_shape (const Order order, const unsigned int i, const Real xi)
 
Real fe_lagrange_1D_linear_shape_deriv (const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real)
 
Real fe_lagrange_1D_quadratic_shape_deriv (const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real xi)
 
Real fe_lagrange_1D_cubic_shape_deriv (const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real xi)
 
Real fe_lagrange_1D_shape_deriv (const Order order, const unsigned int i, const unsigned int j, const Real xi)
 
Real fe_lagrange_1D_quadratic_shape_second_deriv (const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real)
 
Real fe_lagrange_1D_cubic_shape_second_deriv (const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real xi)
 
Real fe_lagrange_1D_shape_second_deriv (const Order order, const unsigned int i, const unsigned int j, const Real xi)
 
bool operator== (const OrderWrapper &lhs, const OrderWrapper &rhs)
 Overload comparison operators for OrderWrapper. More...
 
bool operator!= (const OrderWrapper &lhs, const OrderWrapper &rhs)
 
bool operator< (const OrderWrapper &lhs, const OrderWrapper &rhs)
 
bool operator> (const OrderWrapper &lhs, const OrderWrapper &rhs)
 
bool operator<= (const OrderWrapper &lhs, const OrderWrapper &rhs)
 
bool operator>= (const OrderWrapper &lhs, const OrderWrapper &rhs)
 
 OrderWrapperOperators (int) OrderWrapperOperators(unsigned int) OrderWrapperOperators(std
 
bool operator== (const OrderWrapper &lhs, int rhs)
 
bool operator== (Order lhs, const OrderWrapper &rhs)
 
bool operator== (const OrderWrapper &lhs, Order rhs)
 
bool operator!= (int lhs, const OrderWrapper &rhs)
 
bool operator!= (const OrderWrapper &lhs, int rhs)
 
bool operator!= (Order lhs, const OrderWrapper &rhs)
 
bool operator!= (const OrderWrapper &lhs, Order rhs)
 
bool operator< (int lhs, const OrderWrapper &rhs)
 
bool operator< (const OrderWrapper &lhs, int rhs)
 
bool operator< (Order lhs, const OrderWrapper &rhs)
 
bool operator< (const OrderWrapper &lhs, Order rhs)
 
bool operator> (int lhs, const OrderWrapper &rhs)
 
bool operator> (const OrderWrapper &lhs, int rhs)
 
bool operator> (Order lhs, const OrderWrapper &rhs)
 
bool operator> (const OrderWrapper &lhs, Order rhs)
 
bool operator<= (int lhs, const OrderWrapper &rhs)
 
bool operator<= (const OrderWrapper &lhs, int rhs)
 
bool operator<= (Order lhs, const OrderWrapper &rhs)
 
bool operator<= (const OrderWrapper &lhs, Order rhs)
 
bool operator>= (int lhs, const OrderWrapper &rhs)
 
bool operator>= (const OrderWrapper &lhs, int rhs)
 
bool operator>= (Order lhs, const OrderWrapper &rhs)
 
bool operator>= (const OrderWrapper &lhs, Order rhs)
 
std::ostream & operator<< (std::ostream &os, const OrderWrapper &order)
 Overload stream operators. More...
 
 INSTANTIATE_INF_FE (1, CARTESIAN)
 Collect all 1D explicit instantiations for class InfFE. More...
 
 INSTANTIATE_INF_FE (2, CARTESIAN)
 Collect all 2D explicit instantiations for class InfFE. More...
 
 INSTANTIATE_INF_FE (3, CARTESIAN)
 Collect all 3D explicit instantiations for class InfFE. More...
 
std::ostream & operator<< (std::ostream &os, const Elem &e)
 
std::ostream & operator<< (std::ostream &os, const Node &n)
 
std::unique_ptr< CheckpointIOsplit_mesh (MeshBase &mesh, processor_id_type nsplits)
 split_mesh takes the given initialized/opened mesh and partitions it into nsplits pieces or chunks. More...
 
void query_ghosting_functors (const MeshBase &mesh, processor_id_type pid, MeshBase::const_element_iterator elem_it, MeshBase::const_element_iterator elem_end, connected_elem_set_type &connected_elements)
 
void connect_children (const MeshBase &mesh, MeshBase::const_element_iterator elem_it, MeshBase::const_element_iterator elem_end, connected_elem_set_type &connected_elements)
 
void connect_families (connected_elem_set_type &connected_elements, const MeshBase *mesh=nullptr)
 
void reconnect_nodes (connected_elem_set_type &connected_elements, connected_node_set_type &connected_nodes)
 
void connect_element_dependencies (const MeshBase &mesh, connected_elem_set_type &connected_elements, connected_node_set_type &connected_nodes)
 
std::pair< connected_elem_set_type, connected_node_set_typeconnect_element_dependencies (const MeshBase &mesh, const connected_elem_set_type &connected_elements, const connected_node_set_type &connected_nodes, const connected_elem_set_type &new_connected_elements, const connected_node_set_type &new_connected_nodes)
 
template<typename T >
auto l1_norm (const NumericVector< T > &vec)
 
template<typename T >
auto l1_norm_diff (const NumericVector< T > &vec1, const NumericVector< T > &vec2)
 
template<typename T >
PetscScalar PS (T val)
 
template<typename T >
PetscScalar * pPS (T *ptr)
 
template<typename T >
const PetscScalar * pPS (const T *ptr)
 
template<typename T >
PetscReal * pPR (T *ptr)
 
template<typename T >
const PetscReal * pPR (const T *ptr)
 
template<typename Obj >
void init_shell_mat (Obj &obj, const numeric_index_type m, const numeric_index_type n, const numeric_index_type m_l, const numeric_index_type n_l, const numeric_index_type blocksize_in)
 Initialize a shell matrix object. More...
 
template<typename Obj >
void init_shell_mat (Obj &obj)
 Initialize a shell matrix object using information from the DofMap. More...
 
PetscInt * numeric_petsc_cast (const numeric_index_type *p)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const SparseMatrix< T > &m)
 
template<typename T >
auto l1_norm (const SparseMatrix< T > &mat)
 
template<typename T >
auto l1_norm_diff (const SparseMatrix< T > &mat1, const SparseMatrix< T > &mat2)
 
intnumeric_trilinos_cast (const numeric_index_type *p)
 
template<unsigned int N, typename T , typename Scalar >
boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeNTensor< N, typename CompareTypes< Scalar, T >::supertype > >::type operator* (const Scalar &, const TypeNTensor< N, T > &)
 
template<unsigned int N, typename T , typename Scalar >
boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeNTensor< N, typename CompareTypes< Scalar, T >::supertype > >::type operator/ (const Scalar &, const TypeNTensor< N, T > &)
 
template<typename T , typename Scalar >
boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeTensor< typename CompareTypes< T, Scalar >::supertype > >::type operator* (const Scalar &factor, const TypeTensor< T > &t)
 
template<typename T , typename T2 >
TypeVector< typename CompareTypes< T, T2 >::supertype > operator* (const TypeVector< T > &a, const TypeTensor< T2 > &b)
 
template<typename T , typename T2 >
TypeTensor< typename CompareTypes< T, T2 >::supertype > outer_product (const TypeVector< T > &a, const TypeVector< T2 > &b)
 
template<typename T , typename Scalar >
boostcopy::enable_if_c< ScalarTraits< Scalar >::value, TypeVector< typename CompareTypes< T, Scalar >::supertype > >::type operator* (const Scalar &factor, const TypeVector< T > &v)
 
template<typename T >
triple_product (const TypeVector< T > &a, const TypeVector< T > &b, const TypeVector< T > &c)
 
template<typename T >
solid_angle (const TypeVector< T > &v01, const TypeVector< T > &v02, const TypeVector< T > &v03)
 
template<typename T >
cross_norm_sq (const TypeVector< T > &b, const TypeVector< T > &c)
 Compute |b x c|^2 without creating the extra temporary produced by calling b.cross(c).norm_sq(). More...
 
template<typename T >
cross_norm (const TypeVector< T > &b, const TypeVector< T > &c)
 Calls cross_norm_sq() and takes the square root of the result. More...
 
template<typename T , typename T2 , typename std::enable_if< ScalarTraits< T >::value, int >::type = 0>
TypeVector< typename CompareTypes< T, T2 >::supertype > outer_product (const T &a, const TypeVector< T2 > &b)
 
template<typename T , typename T2 , typename std::enable_if< ScalarTraits< T2 >::value, int >::type = 0>
TypeVector< typename CompareTypes< T, T2 >::supertype > outer_product (const TypeVector< T > &a, const T2 &b)
 
template<typename T >
auto l1_norm (const TypeVector< T > &var)
 
template<typename T , typename T2 >
auto l1_norm_diff (const TypeVector< T > &vec1, const TypeVector< T2 > &vec2)
 
double __libmesh_nlopt_objective (unsigned n, const double *x, double *gradient, void *data)
 
void __libmesh_nlopt_equality_constraints (unsigned m, double *result, unsigned n, const double *x, double *gradient, void *data)
 
void __libmesh_nlopt_inequality_constraints (unsigned m, double *result, unsigned n, const double *x, double *gradient, void *data)
 
void petsc_auto_fieldsplit (PC my_pc, const System &sys)
 
PetscErrorCode libmesh_petsc_recalculate_monitor (SNES snes, PetscInt it, PetscReal norm, void *mctx)
 
PetscErrorCode libmesh_petsc_snes_monitor (SNES, PetscInt its, PetscReal fnorm, void *)
 
PetscErrorCode libmesh_petsc_snes_residual (SNES, Vec x, Vec r, void *ctx)
 
PetscErrorCode libmesh_petsc_snes_fd_residual (SNES, Vec x, Vec r, void *ctx)
 
PetscErrorCode libmesh_petsc_snes_mffd_residual (SNES snes, Vec x, Vec r, void *ctx)
 
PetscErrorCode libmesh_petsc_snes_mffd_interface (void *ctx, Vec x, Vec r)
 
PetscErrorCode libmesh_petsc_snes_jacobian (SNES, Vec x, Mat jac, Mat pc, void *ctx)
 
PetscErrorCode libmesh_petsc_snes_precheck (SNESLineSearch, Vec X, Vec Y, PetscBool *changed, void *context)
 
PetscErrorCode libmesh_petsc_snes_postcheck (SNESLineSearch, Vec x, Vec y, Vec w, PetscBool *changed_y, PetscBool *changed_w, void *context)
 
PetscErrorCode libmesh_petsc_linesearch_shellfunc (SNESLineSearch linesearch, void *ctx)
 
PetscErrorCode __libmesh_petsc_snes_monitor (SNES, PetscInt its, PetscReal fnorm, void *)
 
PetscErrorCode __libmesh_petsc_snes_residual (SNES, Vec x, Vec r, void *ctx)
 
PetscErrorCode __libmesh_petsc_snes_fd_residual (SNES, Vec x, Vec r, void *ctx)
 
PetscErrorCode __libmesh_petsc_snes_mffd_interface (void *ctx, Vec x, Vec r)
 
PetscErrorCode __libmesh_petsc_snes_jacobian (SNES, Vec x, Mat jac, Mat pc, void *ctx)
 
PetscErrorCode __libmesh_petsc_snes_postcheck (SNESLineSearch, Vec x, Vec y, Vec w, PetscBool *changed_y, PetscBool *changed_w, void *context)
 
PetscErrorCode __libmesh_tao_objective (Tao tao, Vec x, PetscReal *objective, void *ctx)
 
PetscErrorCode __libmesh_tao_gradient (Tao tao, Vec x, Vec g, void *ctx)
 
PetscErrorCode __libmesh_tao_hessian (Tao tao, Vec x, Mat h, Mat pc, void *ctx)
 
PetscErrorCode __libmesh_tao_equality_constraints (Tao tao, Vec x, Vec ce, void *ctx)
 
PetscErrorCode __libmesh_tao_equality_constraints_jacobian (Tao tao, Vec x, Mat J, Mat Jpre, void *ctx)
 
PetscErrorCode __libmesh_tao_inequality_constraints (Tao tao, Vec x, Vec cineq, void *ctx)
 
PetscErrorCode __libmesh_tao_inequality_constraints_jacobian (Tao tao, Vec x, Mat J, Mat Jpre, void *ctx)
 
template<typename T >
const TypeToSend< T >::type convert_to_send (const T &in)
 
template<typename SendT , typename T >
void convert_from_receive (SendT &received, T &converted)
 
 ScalarTraits_true (char)
 
 ScalarTraits_true (short)
 
 ScalarTraits_true (int)
 
 ScalarTraits_true (long)
 
 ScalarTraits_true (unsigned char)
 
 ScalarTraits_true (float)
 
 ScalarTraits_true (double)
 
 ScalarTraits_true (Real)
 
 RealTraits_true (float)
 
 RealTraits_true (double)
 
 RealTraits_true (long double)
 
 SUPERTYPE (unsigned char, short)
 
 SUPERTYPE (unsigned char, int)
 
 SUPERTYPE (unsigned char, float)
 
 SUPERTYPE (unsigned char, double)
 
 SUPERTYPE (unsigned char, long double)
 
 SUPERTYPE (char, short)
 
 SUPERTYPE (char, int)
 
 SUPERTYPE (char, float)
 
 SUPERTYPE (char, double)
 
 SUPERTYPE (char, long double)
 
 SUPERTYPE (short, int)
 
 SUPERTYPE (short, float)
 
 SUPERTYPE (short, double)
 
 SUPERTYPE (short, long double)
 
 SUPERTYPE (int, float)
 
 SUPERTYPE (int, double)
 
 SUPERTYPE (int, long double)
 
 SUPERTYPE (float, double)
 
 SUPERTYPE (float, long double)
 
 SUPERTYPE (double, long double)
 
 SUPERTYPE (unsigned char, Real)
 
 SUPERTYPE (char, Real)
 
 SUPERTYPE (short, Real)
 
 SUPERTYPE (int, Real)
 
 SUPERTYPE (float, Real)
 
 SUPERTYPE (double, Real)
 
 SUPERTYPE (long double, Real)
 
template<typename T , typename std::enable_if< ScalarTraits< T >::value, int >::type = 0>
auto l1_norm (const T &var)
 Computes the L1 norm. More...
 
template<typename T , typename T2 , typename std::enable_if< ScalarTraits< T >::value &&ScalarTraits< T2 >::value, int >::type = 0>
auto l1_norm_diff (const T &var1, const T2 &var2)
 Computes the L1 norm of the diff between var1 and var2. More...
 
template<typename T , typename T2 >
bool absolute_fuzzy_equals (const T &var1, const T2 &var2, const Real tol=TOLERANCE *TOLERANCE)
 Function to check whether two variables are equal within an absolute tolerance. More...
 
template<typename T , typename T2 >
bool relative_fuzzy_equals (const T &var1, const T2 &var2, const Real tol=TOLERANCE *TOLERANCE)
 Function to check whether two variables are equal within a relative tolerance. More...
 
template<typename T >
auto index_range (const T &sizable)
 Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in vector-like object (i.e. More...
 
template<typename T >
IntRange< numeric_index_typeindex_range (const NumericVector< T > &vec)
 Same thing but for NumericVector. More...
 
template<typename T >
IntRange< T > make_range (T beg, T end)
 The 2-parameter make_range() helper function returns an IntRange<T> when both input parameters are of type T. More...
 
template<typename T >
IntRange< T > make_range (T end)
 The 1-parameter version of make_range() saves even more typing in the common case of a 0 starting point. More...
 
template<typename P >
void print_helper (std::ostream &os, const P *param)
 Helper functions for printing scalar, vector, vector<vector> and vector<vector<vector>> types. More...
 
template<typename P >
void print_helper (std::ostream &os, const std::vector< P > *param)
 
template<typename P >
void print_helper (std::ostream &os, const std::vector< std::vector< P >> *param)
 
template<typename P >
void print_helper (std::ostream &os, const std::vector< std::vector< std::vector< P >>> *param)
 
template<typename P1 , typename P2 , typename C , typename A >
void print_helper (std::ostream &os, const std::map< P1, P2, C, A > *param)
 
std::ostream & operator<< (std::ostream &os, const Parameters &p)
 
template<>
void print_helper (std::ostream &os, const char *param)
 
template<>
void print_helper (std::ostream &os, const unsigned char *param)
 
template<typename IndexType >
SimpleRange< IndexType > as_range (const std::pair< IndexType, IndexType > &p)
 Helper function that allows us to treat a homogenous pair as a range. More...
 
template<typename IndexType >
SimpleRange< IndexType > as_range (const IndexType &first, const IndexType &second)
 As above, but can be used in cases where a std::pair is not otherwise involved. More...
 
OStreamProxy out (std::cout)
 
OStreamProxy err (std::cerr)
 
bool warned_about_auto_ptr (false)
 
PerfLog perflog ("libMesh", #ifdef LIBMESH_ENABLE_PERFORMANCE_LOGGING true #else false #endif)
 
const Number imaginary (0., 1.)
 
template LIBMESH_EXPORT unsigned char command_line_value< unsigned char > (const std::string &, unsigned char)
 
template LIBMESH_EXPORT unsigned short command_line_value< unsigned short > (const std::string &, unsigned short)
 
template LIBMESH_EXPORT unsigned int command_line_value< unsigned int > (const std::string &, unsigned int)
 
template LIBMESH_EXPORT char command_line_value< char > (const std::string &, char)
 
template LIBMESH_EXPORT short command_line_value< short > (const std::string &, short)
 
template LIBMESH_EXPORT int command_line_value< int > (const std::string &, int)
 
template LIBMESH_EXPORT float command_line_value< float > (const std::string &, float)
 
template LIBMESH_EXPORT double command_line_value< double > (const std::string &, double)
 
template LIBMESH_EXPORT long double command_line_value< long double > (const std::string &, long double)
 
template LIBMESH_EXPORT std::string command_line_value< std::string > (const std::string &, std::string)
 
template LIBMESH_EXPORT unsigned char command_line_value< unsigned char > (const std::vector< std::string > &, unsigned char)
 
template LIBMESH_EXPORT unsigned short command_line_value< unsigned short > (const std::vector< std::string > &, unsigned short)
 
template LIBMESH_EXPORT unsigned int command_line_value< unsigned int > (const std::vector< std::string > &, unsigned int)
 
template LIBMESH_EXPORT char command_line_value< char > (const std::vector< std::string > &, char)
 
template LIBMESH_EXPORT short command_line_value< short > (const std::vector< std::string > &, short)
 
template LIBMESH_EXPORT int command_line_value< int > (const std::vector< std::string > &, int)
 
template LIBMESH_EXPORT float command_line_value< float > (const std::vector< std::string > &, float)
 
template LIBMESH_EXPORT double command_line_value< double > (const std::vector< std::string > &, double)
 
template LIBMESH_EXPORT long double command_line_value< long double > (const std::vector< std::string > &, long double)
 
template LIBMESH_EXPORT std::string command_line_value< std::string > (const std::vector< std::string > &, std::string)
 
template LIBMESH_EXPORT unsigned char command_line_next< unsigned char > (std::string, unsigned char)
 
template LIBMESH_EXPORT unsigned short command_line_next< unsigned short > (std::string, unsigned short)
 
template LIBMESH_EXPORT unsigned int command_line_next< unsigned int > (std::string, unsigned int)
 
template LIBMESH_EXPORT char command_line_next< char > (std::string, char)
 
template LIBMESH_EXPORT short command_line_next< short > (std::string, short)
 
template LIBMESH_EXPORT int command_line_next< int > (std::string, int)
 
template LIBMESH_EXPORT float command_line_next< float > (std::string, float)
 
template LIBMESH_EXPORT double command_line_next< double > (std::string, double)
 
template LIBMESH_EXPORT long double command_line_next< long double > (std::string, long double)
 
template LIBMESH_EXPORT std::string command_line_next< std::string > (std::string, std::string)
 
template LIBMESH_EXPORT void command_line_vector< unsigned char > (const std::string &, std::vector< unsigned char > &)
 
template LIBMESH_EXPORT void command_line_vector< unsigned short > (const std::string &, std::vector< unsigned short > &)
 
template LIBMESH_EXPORT void command_line_vector< unsigned int > (const std::string &, std::vector< unsigned int > &)
 
template LIBMESH_EXPORT void command_line_vector< char > (const std::string &, std::vector< char > &)
 
template LIBMESH_EXPORT void command_line_vector< short > (const std::string &, std::vector< short > &)
 
template LIBMESH_EXPORT void command_line_vector< int > (const std::string &, std::vector< int > &)
 
template LIBMESH_EXPORT void command_line_vector< float > (const std::string &, std::vector< float > &)
 
template LIBMESH_EXPORT void command_line_vector< double > (const std::string &, std::vector< double > &)
 
template LIBMESH_EXPORT void command_line_vector< long double > (const std::string &, std::vector< long double > &)
 
template LIBMESH_EXPORT Real command_line_value< Real > (const std::string &, Real)
 
template LIBMESH_EXPORT Real command_line_value< Real > (const std::vector< std::string > &, Real)
 
template LIBMESH_EXPORT Real command_line_next< Real > (std::string, Real)
 
template LIBMESH_EXPORT void command_line_vector< Real > (const std::string &, std::vector< Real > &)
 
template<typename OutputShape >
OutputShape fe_fdm_deriv (const ElemType type, const Order order, const Elem *elem, const unsigned int i, const unsigned int j, const Point &p, OutputShape(*shape_func)(const ElemType, const Order, const Elem *, const unsigned int, const Point &))
 
template Real fe_fdm_deriv< Real > (const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool, Real(*shape_func)(const Elem *, const Order, const unsigned int, const Point &, const bool))
 
template Real fe_fdm_deriv< Real > (const ElemType, const Order, const unsigned int, const unsigned int, const Point &, Real(*shape_func)(const ElemType, const Order, const unsigned int, const Point &))
 
template Real fe_fdm_deriv< Real > (const ElemType, const Order, const Elem *, const unsigned int, const unsigned int, const Point &, Real(*shape_func)(const ElemType, const Order, const Elem *, const unsigned int, const Point &))
 
template RealGradient fe_fdm_deriv< RealGradient > (const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool, RealGradient(*shape_func)(const Elem *, const Order, const unsigned int, const Point &, const bool))
 
template Real fe_fdm_second_deriv< Real > (const ElemType, const Order, const unsigned int, const unsigned int, const Point &, Real(*shape_func)(const ElemType, const Order, const unsigned int, const unsigned int, const Point &))
 
template Real fe_fdm_second_deriv< Real > (const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool, Real(*shape_func)(const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool))
 
template Real fe_fdm_second_deriv< Real > (const ElemType, const Order, const Elem *, const unsigned int, const unsigned int, const Point &, Real(*shape_func)(const ElemType, const Order, const Elem *, const unsigned int, const unsigned int, const Point &))
 
template RealGradient fe_fdm_second_deriv< RealGradient > (const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool, RealGradient(*shape_func)(const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool))
 
 INSTANTIATE_FE (0)
 
 INSTANTIATE_FE (1)
 
 INSTANTIATE_FE (2)
 
 INSTANTIATE_FE (3)
 
template LIBMESH_EXPORT void rational_all_shape_derivs< Real > (const Elem &elem, const FEType underlying_fe_type, const std::vector< Point > &p, std::vector< std::vector< Real >> *comps[3], const bool add_p_level)
 
std::ostream & operator<< (std::ostream &os, const FEAbstract &fe)
 
 LIBMESH_FE_NODAL_SOLN (LIBMESH_FE_SIDE_NODAL_SOLN() LIBMESH_DEFAULT_NDOFS(BERNSTEIN) template<> FEContinuity FE< 0 BERNSTEIN, bernstein_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, BERNSTEIN)
 
 LIBMESH_ERRORS_IN_LOW_D (CLOUGH)
 
 SIDEMAP_ERROR (1, NEDELEC_ONE, side_map)
 
 REINIT_ERROR (1, RAVIART_THOMAS, reinit)
 
 SIDEMAP_ERROR (1, RAVIART_THOMAS, side_map)
 
 REINIT_ERROR (1, L2_RAVIART_THOMAS, reinit)
 
 SIDEMAP_ERROR (1, L2_RAVIART_THOMAS, side_map)
 
 LIBMESH_FE_NODAL_SOLN (LIBMESH_FE_SIDE_NODAL_SOLN() LIBMESH_DEFAULT_NDOFS(CLOUGH) template<> FEContinuity FE< 0 CLOUGH, clough_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, CLOUGH)
 
 LIBMESH_FE_NODAL_SOLN (LIBMESH_FE_SIDE_NODAL_SOLN() LIBMESH_DEFAULT_NDOFS(HERMITE) template<> FEContinuity FE< 0 HERMITE, hermite_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, HERMITE)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (1, HERMITE)
 
 LIBMESH_FE_NODAL_SOLN (LIBMESH_FE_SIDE_NODAL_SOLN() LIBMESH_DEFAULT_NDOFS(HIERARCHIC) template<> FEContinuity FE< 0 HIERARCHIC, hierarchic_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (LIBMESH_DEFAULT_VECTORIZED_FE(0, HIERARCHIC)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (0, HIERARCHIC_VEC)
 
 LIBMESH_FE_NODAL_SOLN_DIM (LIBMESH_FE_NODAL_SOLN_DIM(HIERARCHIC_VEC,(FE< 0, HIERARCHIC >::nodal_soln), 0)
 
 LIBMESH_FE_SIDE_NODAL_SOLN (HIERARCHIC_VEC)
 
 LIBMESH_DEFAULT_VEC_NDOFS (HIERARCHIC)
 
 LIBMESH_FE_NODAL_SOLN (L2_HIERARCHIC, l2_hierarchic_nodal_soln)
 
 LIBMESH_FE_NODAL_SOLN (L2_LAGRANGE, lagrange_nodal_soln)
 
 LIBMESH_FE_NODAL_SOLN (LAGRANGE, lagrange_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (LIBMESH_DEFAULT_VECTORIZED_FE(0, LAGRANGE)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>void FE< 3, L2_LAGRANGE)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (0, LAGRANGE_VEC)
 
 LIBMESH_FE_NODAL_SOLN_DIM (LIBMESH_FE_NODAL_SOLN_DIM(LAGRANGE_VEC,(FE< 0, LAGRANGE >::nodal_soln), 0)
 
 LIBMESH_FE_SIDE_NODAL_SOLN (LAGRANGE_VEC)
 
 LIBMESH_FE_NODAL_SOLN (MONOMIAL, monomial_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, MONOMIAL)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (0, MONOMIAL_VEC)
 
 LIBMESH_FE_NODAL_SOLN_DIM (LIBMESH_FE_NODAL_SOLN_DIM(MONOMIAL_VEC,(FE< 0, MONOMIAL >::nodal_soln), 0)
 
 LIBMESH_FE_SIDE_NODAL_SOLN (MONOMIAL_VEC)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (0, NEDELEC_ONE)
 
 LIBMESH_FE_SIDE_NODAL_SOLN (NEDELEC_ONE)
 
 LIBMESH_FE_NODAL_SOLN (RATIONAL_BERNSTEIN, rational_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, RATIONAL_BERNSTEIN)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (0, RAVIART_THOMAS)
 
 LIBMESH_FE_SIDE_NODAL_SOLN (RAVIART_THOMAS)
 
 LIBMESH_FE_NODAL_SOLN (SCALAR, scalar_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, SCALAR)
 
 LIBMESH_FE_NODAL_SOLN (SIDE_HIERARCHIC, side_hierarchic_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (2, SUBDIVISION)
 
 LIBMESH_FE_NODAL_SOLN (SZABAB, szabab_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, SZABAB)
 
 LIBMESH_FE_NODAL_SOLN (XYZ, xyz_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, XYZ)
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, edge_reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, edge_reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, edge_reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, init_face_shape_functions(const std::vector< Point > &, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, init_face_shape_functions(const std::vector< Point > &, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, init_face_shape_functions(const std::vector< Point > &, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, compute_face_functions())
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, compute_face_functions())
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, compute_face_functions())
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, unsigned int, n_dofs(const FEType &, const ElemType))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, unsigned int, n_dofs(const FEType &, const ElemType))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, unsigned int, n_dofs(const FEType &, const ElemType))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, unsigned int, n_dofs_per_elem(const FEType &, const ElemType))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, unsigned int, n_dofs_per_elem(const FEType &, const ElemType))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, unsigned int, n_dofs_per_elem(const FEType &, const ElemType))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, unsigned int, n_dofs_at_node(const FEType &, const ElemType, const unsigned int))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, unsigned int, n_dofs_at_node(const FEType &, const ElemType, const unsigned int))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, unsigned int, n_dofs_at_node(const FEType &, const ElemType, const unsigned int))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, compute_shape_indices(const FEType &, const ElemType, const unsigned int, unsigned int &, unsigned int &))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, compute_shape_indices(const FEType &, const ElemType, const unsigned int, unsigned int &, unsigned int &))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, compute_shape_indices(const FEType &, const ElemType, const unsigned int, unsigned int &, unsigned int &))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, compute_node_indices(const ElemType, const unsigned int, unsigned int &, unsigned int &))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, compute_node_indices(const ElemType, const unsigned int, unsigned int &, unsigned int &))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, compute_node_indices(const ElemType, const unsigned int, unsigned int &, unsigned int &))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, Real, shape(const FEType &, const ElemType, const unsigned int, const Point &))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, Real, shape(const FEType &, const ElemType, const unsigned int, const Point &))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, Real, shape(const FEType &, const ElemType, const unsigned int, const Point &))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, Real, shape_deriv(const FEType &, const ElemType, const unsigned int, const unsigned int, const Point &))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, Real, shape_deriv(const FEType &, const ElemType, const unsigned int, const unsigned int, const Point &))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, Real, shape_deriv(const FEType &, const ElemType, const unsigned int, const unsigned int, const Point &))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, unsigned int, n_dofs(const FEType &, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, unsigned int, n_dofs(const FEType &, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, unsigned int, n_dofs(const FEType &, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, unsigned int, n_dofs_per_elem(const FEType &, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, unsigned int, n_dofs_per_elem(const FEType &, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, unsigned int, n_dofs_per_elem(const FEType &, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, unsigned int, n_dofs_at_node(const FEType &, const Elem *, const unsigned int))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, unsigned int, n_dofs_at_node(const FEType &, const Elem *, const unsigned int))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, unsigned int, n_dofs_at_node(const FEType &, const Elem *, const unsigned int))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, compute_shape_indices(const FEType &, const Elem *, const unsigned int, unsigned int &, unsigned int &))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, compute_shape_indices(const FEType &, const Elem *, const unsigned int, unsigned int &, unsigned int &))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, compute_shape_indices(const FEType &, const Elem *, const unsigned int, unsigned int &, unsigned int &))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, Real, shape(const FEType &, const Elem *, const unsigned int, const Point &p))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, Real, shape(const FEType &, const Elem *, const unsigned int, const Point &p))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, Real, shape(const FEType &, const Elem *, const unsigned int, const Point &p))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, Real, shape(const FEType, const Elem *, const unsigned int, const Point &, const bool))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, Real, shape(const FEType, const Elem *, const unsigned int, const Point &, const bool))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, Real, shape(const FEType, const Elem *, const unsigned int, const Point &, const bool))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, Real, shape_deriv(const FEType &, const Elem *, const unsigned int, const unsigned int, const Point &))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, Real, shape_deriv(const FEType &, const Elem *, const unsigned int, const unsigned int, const Point &))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, Real, shape_deriv(const FEType &, const Elem *, const unsigned int, const unsigned int, const Point &))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, Real, shape_deriv(const FEType, const Elem *, const unsigned int, const unsigned int, const Point &, const bool))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, Real, shape_deriv(const FEType, const Elem *, const unsigned int, const unsigned int, const Point &, const bool))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, Real, shape_deriv(const FEType, const Elem *, const unsigned int, const unsigned int, const Point &, const bool))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, compute_data(const FEType &, const Elem *, FEComputeData &))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, compute_data(const FEType &, const Elem *, FEComputeData &))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, compute_data(const FEType &, const Elem *, FEComputeData &))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, nodal_soln(const FEType &, const Elem *, const std::vector< Number > &, std::vector< Number > &))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, nodal_soln(const FEType &, const Elem *, const std::vector< Number > &, std::vector< Number > &))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, nodal_soln(const FEType &, const Elem *, const std::vector< Number > &, std::vector< Number > &))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, inf_compute_constraints(DofConstraints &, DofMap &, const unsigned int, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, inf_compute_constraints(DofConstraints &, DofMap &, const unsigned int, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, inf_compute_constraints(DofConstraints &, DofMap &, const unsigned int, const Elem *))
 
 INSTANTIATE_INF_FE_MBRF (1, CARTESIAN, void, inf_compute_node_constraints(NodeConstraints &constraints, const Elem *elem))
 
 INSTANTIATE_INF_FE_MBRF (2, CARTESIAN, void, inf_compute_node_constraints(NodeConstraints &constraints, const Elem *elem))
 
 INSTANTIATE_INF_FE_MBRF (3, CARTESIAN, void, inf_compute_node_constraints(NodeConstraints &constraints, const Elem *elem))
 
bool is_between (Real min, Real check, Real max)
 
std::ostream & operator<< (std::ostream &os, const MeshBase &m)
 
template LIBMESH_EXPORT void MeshCommunication::find_global_indices< MeshBase::const_node_iterator > (const Parallel::Communicator &, const libMesh::BoundingBox &, const MeshBase::const_node_iterator &, const MeshBase::const_node_iterator &, std::vector< dof_id_type > &) const
 
template LIBMESH_EXPORT void MeshCommunication::find_global_indices< MeshBase::const_element_iterator > (const Parallel::Communicator &, const libMesh::BoundingBox &, const MeshBase::const_element_iterator &, const MeshBase::const_element_iterator &, std::vector< dof_id_type > &) const
 
template LIBMESH_EXPORT void MeshCommunication::find_global_indices< MeshBase::node_iterator > (const Parallel::Communicator &, const libMesh::BoundingBox &, const MeshBase::node_iterator &, const MeshBase::node_iterator &, std::vector< dof_id_type > &) const
 
template LIBMESH_EXPORT void MeshCommunication::find_global_indices< MeshBase::element_iterator > (const Parallel::Communicator &, const libMesh::BoundingBox &, const MeshBase::element_iterator &, const MeshBase::element_iterator &, std::vector< dof_id_type > &) const
 
template LIBMESH_EXPORT void MeshCommunication::find_local_indices< MeshBase::const_element_iterator > (const libMesh::BoundingBox &, const MeshBase::const_element_iterator &, const MeshBase::const_element_iterator &, std::unordered_map< dof_id_type, dof_id_type > &) const
 
 LIBMESH_VMA_INSTANTIATE (Real, int, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, float, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, double, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, int, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, int, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, int, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, float, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, float, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, float, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, std::complex< float >, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, std::complex< float >, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, std::complex< float >, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, double, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, double, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, double, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, std::complex< double >, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, std::complex< double >, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, std::complex< double >, Real)
 
template void init_shell_mat (PetscShellMatrix< Number > &obj)
 
template void init_shell_mat (PetscMatrixShellMatrix< Number > &obj)
 
template void init_shell_mat (PetscShellMatrix< Number > &obj, const numeric_index_type m, const numeric_index_type n, const numeric_index_type m_l, const numeric_index_type n_l, const numeric_index_type blocksize_in)
 
template void init_shell_mat (PetscMatrixShellMatrix< Number > &obj, const numeric_index_type m, const numeric_index_type n, const numeric_index_type m_l, const numeric_index_type n_l, const numeric_index_type blocksize_in)
 
std::ostream & operator<< (std::ostream &os, const QBase &q)
 
std::ostream & operator<< (std::ostream &os, const MeshfreeInterpolation &mfi)
 
template<typename T >
SIGN (T a, T b)
 
PetscErrorCode __libmesh_petsc_diff_solver_monitor (SNES snes, PetscInt its, PetscReal fnorm, void *ctx)
 
PetscErrorCode __libmesh_petsc_diff_solver_residual (SNES, Vec x, Vec r, void *ctx)
 
PetscErrorCode __libmesh_petsc_diff_solver_jacobian (SNES, Vec x, Mat libmesh_dbg_var(j), Mat libmesh_dbg_var(pc), void *ctx)
 
DiffSolver::SolveResult convert_solve_result (SNESConvergedReason r)
 
PetscErrorCode libmesh_petsc_DMCreateSubDM (DM dm, PetscInt numFields, PetscInt fields[], IS *is, DM *subdm) PetscErrorCode libmesh_petsc_DMCreateSubDM(DM dm
 Help PETSc create a subDM given a global dm when using fieldsplit. More...
 
 LibmeshPetscCallQ (DMShellGetContext(dm, &ctx))
 
 libmesh_assert (ctx)
 
 if (subdm)
 
 PetscFunctionReturn (LIBMESH_PETSC_SUCCESS)
 
PetscErrorCode libmesh_petsc_DMRefine (DM dmc, MPI_Comm, DM *dmf)
 Help PETSc identify the finer DM given a dmc. More...
 
PetscErrorCode libmesh_petsc_DMCoarsen (DM dmf, MPI_Comm, DM *dmc)
 Help PETSc identify the coarser DM dmc given the fine DM dmf. More...
 
PetscErrorCode libmesh_petsc_DMCreateInterpolation (DM dmc, DM dmf, Mat *mat, Vec *vec)
 Function to give PETSc that sets the Interpolation Matrix between two DMs. More...
 
PetscErrorCode libmesh_petsc_DMCreateRestriction (DM dmc, DM dmf, Mat *mat)
 Function to give PETSc that sets the Restriction Matrix between two DMs. More...
 
PetscErrorCode libmesh_petsc_preconditioner_setup (PC pc)
 This function is called by PETSc to initialize the preconditioner. More...
 
PetscErrorCode libmesh_petsc_preconditioner_apply (PC pc, Vec x, Vec y)
 This function is called by PETSc to actually apply the preconditioner. More...
 
PetscErrorCode __libmesh_petsc_preconditioner_setup (PC pc)
 This function is called by PETSc to initialize the preconditioner. More...
 
PetscErrorCode __libmesh_petsc_preconditioner_apply (PC pc, Vec x, Vec y)
 This function is called by PETSc to actually apply the preconditioner. More...
 
ResidualContext libmesh_petsc_snes_residual_helper (SNES snes, Vec x, void *ctx)
 
std::ostream & operator<< (std::ostream &os, const EquationSystems &es)
 
template<typename T , typename IndexType >
const std::vector< std::pair< IndexType, T > > convert_to_send (MetaPhysicL::DynamicSparseNumberArray< T, IndexType > &in)
 
template<typename SendT , typename T , typename IndexType >
void convert_from_receive (SendT &received, MetaPhysicL::DynamicSparseNumberArray< T, IndexType > &converted)
 
template LIBMESH_EXPORT void Xdr::data< std::complex< float > > (std::complex< float > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::complex< double > > (std::complex< double > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::complex< long double > > (std::complex< long double > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::string > (std::string &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< int > > (std::vector< int > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< unsigned int > > (std::vector< unsigned int > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< short int > > (std::vector< short int > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< unsigned short int > > (std::vector< unsigned short int > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< long int > > (std::vector< long int > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< long long > > (std::vector< long long > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< unsigned long int > > (std::vector< unsigned long int > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< unsigned long long > > (std::vector< unsigned long long > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< char > > (std::vector< char > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< signed char > > (std::vector< signed char > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< unsigned char > > (std::vector< unsigned char > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< float > > (std::vector< float > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< double > > (std::vector< double > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< long double > > (std::vector< long double > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< std::complex< float > > > (std::vector< std::complex< float >> &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< std::complex< double > > > (std::vector< std::complex< double >> &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< std::complex< long double > > > (std::vector< std::complex< long double >> &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< std::string > > (std::vector< std::string > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::complex< Real > > (std::complex< Real > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< Real > > (std::vector< Real > &, std::string_view)
 
template LIBMESH_EXPORT void Xdr::data< std::vector< std::complex< Real > > > (std::vector< std::complex< Real >> &, std::string_view)
 

Variables

DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
 
DIE A HORRIBLE DEATH HERE typedef float ErrorVectorReal
 
FactoryImp< ExampleOneFunction, FunctionBase< Number > > example_one_factory ("example_one")
 
const Number imaginary
 The imaginary unit, \sqrt{-1} . More...
 
const Real pi = 3.1415926535897932384626433832795029_R
  \pi=3.14159... . More...
 
const Number zero = 0.
  zero=0. . More...
 
const unsigned int invalid_uint = static_cast<unsigned int>(-1)
 A number which is used quite often to represent an invalid or uninitialized value for an unsigned integer. More...
 
const int invalid_int = std::numeric_limits<int>::max()
 A number which is used quite often to represent an invalid or uninitialized value for an integer. More...
 
OStreamProxy out
 
OStreamProxy err
 
static constexpr Real TOLERANCE = 2.5e-3
 
MPI_Comm GLOBAL_COMM_WORLD = MPI_COMM_NULL
 MPI Communicator used to initialize libMesh. More...
 
bool warned_about_auto_ptr
 
template<class T >
constexpr std::false_type always_false {}
 This is a helper variable template for cases when we want to use a default compile-time error with constexpr-based if conditions. More...
 
static constexpr std::size_t libmesh_dim = LIBMESH_DIM
 
PerfLog perflog
 A PerfLog object to log performance. More...
 
const RemoteElemremote_elem = nullptr
 
const unsigned char triangular_number_row []
 
const unsigned char triangular_number_column []
 
const unsigned char square_number_row []
 
const unsigned char square_number_column []
 
const unsigned char cube_number_row []
 
const unsigned char cube_number_column []
 
const unsigned char cube_number_page []
 
const unsigned char tetrahedral_number_row []
 
const unsigned char tetrahedral_number_column []
 
const unsigned char tetrahedral_number_page []
 
const unsigned char prism_number_triangle []
 
const unsigned char prism_number_page []
 
MPI_Errhandler libmesh_errhandler
 
std::terminate_handler old_terminate_handler
 
static const bool * caching = nullptr
 
libMesh::CachingSetup caching_setup
 
 INSTANTIATE_SUBDIVISION_FE
 
template class LIBMESH_EXPORT FEGenericBase< Real >
 
template class LIBMESH_EXPORT FEGenericBase< RealGradient >
 
 INSTANTIATE_SUBDIVISION_MAPS
 
template class LIBMESH_EXPORT FETransformationBase< Real >
 
template class LIBMESH_EXPORT FETransformationBase< RealGradient >
 
template class LIBMESH_EXPORT FEXYZ< 2 >
 
template class LIBMESH_EXPORT FEXYZ< 3 >
 
template class LIBMESH_EXPORT H1FETransformation< Real >
 
template class LIBMESH_EXPORT H1FETransformation< RealGradient >
 
template class LIBMESH_EXPORT HCurlFETransformation< RealGradient >
 
template class LIBMESH_EXPORT HDivFETransformation< RealGradient >
 
Threads::spin_mutex parent_indices_mutex
 
Threads::spin_mutex parent_bracketing_nodes_mutex
 
template class LIBMESH_EXPORT MeshOutput< MeshBase >
 
template class LIBMESH_EXPORT MeshOutput< UnstructuredMesh >
 
template class LIBMESH_EXPORT MeshOutput< DistributedMesh >
 
template class LIBMESH_EXPORT DenseMatrix< Real >
 
template class LIBMESH_EXPORT DenseMatrix< Complex >
 
template class LIBMESH_EXPORT DenseMatrixBase< Real >
 
template class LIBMESH_EXPORT DenseMatrixBase< Complex >
 
template class LIBMESH_EXPORT DenseSubMatrix< Real >
 
template class LIBMESH_EXPORT DenseSubMatrix< Complex >
 
template class LIBMESH_EXPORT DenseSubVector< Real >
 
template class LIBMESH_EXPORT DenseSubVector< Complex >
 
template class LIBMESH_EXPORT DenseVector< Real >
 
template class LIBMESH_EXPORT DenseVector< Complex >
 
template class LIBMESH_EXPORT DenseVectorBase< Real >
 
template class LIBMESH_EXPORT DenseVectorBase< Complex >
 
template class LIBMESH_EXPORT DiagonalMatrix< Number >
 
template class LIBMESH_EXPORT DistributedVector< Number >
 
template class LIBMESH_EXPORT EigenPreconditioner< Number >
 
template class LIBMESH_EXPORT EigenSparseMatrix< Number >
 
template class LIBMESH_EXPORT EigenSparseVector< Number >
 
template class LIBMESH_EXPORT LaspackMatrix< Number >
 
template class LIBMESH_EXPORT LaspackVector< Number >
 
template class LIBMESH_EXPORT LumpedMassMatrix< Number >
 
template class LIBMESH_EXPORT NumericVector< Number >
 
template class LIBMESH_EXPORT PetscMatrix< Number >
 
template class LIBMESH_EXPORT PetscMatrixBase< Number >
 
template class LIBMESH_EXPORT PetscMatrixShellMatrix< Number >
 
template class LIBMESH_EXPORT PetscPreconditioner< Number >
 
template class LIBMESH_EXPORT PetscShellMatrix< Number >
 
template class LIBMESH_EXPORT PetscVector< Number >
 
template class LIBMESH_EXPORT Preconditioner< Number >
 
template class LIBMESH_EXPORT ShellMatrix< Number >
 
template class LIBMESH_EXPORT SparseMatrix< Number >
 
template class LIBMESH_EXPORT SparseShellMatrix< Number >
 
template class LIBMESH_EXPORT SumShellMatrix< Number >
 
template class LIBMESH_EXPORT TensorShellMatrix< Number >
 
template class LIBMESH_EXPORT EpetraMatrix< Number >
 
template class LIBMESH_EXPORT EpetraVector< Number >
 
template class LIBMESH_EXPORT TrilinosPreconditioner< Number >
 
template class LIBMESH_EXPORT TypeTensor< Real >
 
template class LIBMESH_EXPORT TypeTensor< Complex >
 
template class LIBMESH_EXPORT TypeVector< Real >
 
template class LIBMESH_EXPORT TypeVector< Complex >
 
const unsigned int MIN_ELEM_PER_PROC = 4
 
template class LIBMESH_EXPORT QComposite< QGauss >
 
template class LIBMESH_EXPORT QComposite< QTrap >
 
template class LIBMESH_EXPORT QComposite< QSimpson >
 
template class LIBMESH_EXPORT RBConstructionBase< CondensedEigenSystem >
 
template class LIBMESH_EXPORT RBConstructionBase< LinearImplicitSystem >
 
template class LIBMESH_EXPORT RBConstructionBase< System >
 
template class LIBMESH_EXPORT InverseDistanceInterpolation< 1 >
 
template class LIBMESH_EXPORT InverseDistanceInterpolation< 2 >
 
template class LIBMESH_EXPORT InverseDistanceInterpolation< 3 >
 
template class LIBMESH_EXPORT RadialBasisInterpolation< 3, WendlandRBF< 3, 0 > >
 
template class LIBMESH_EXPORT RadialBasisInterpolation< 3, WendlandRBF< 3, 2 > >
 
template class LIBMESH_EXPORT RadialBasisInterpolation< 3, WendlandRBF< 3, 4 > >
 
template class LIBMESH_EXPORT RadialBasisInterpolation< 3, WendlandRBF< 3, 8 > >
 
template class LIBMESH_EXPORT EigenSolver< Number >
 
template class LIBMESH_EXPORT EigenSparseLinearSolver< Number >
 
template class LIBMESH_EXPORT LaspackLinearSolver< Number >
 
template class LIBMESH_EXPORT LinearSolver< Number >
 
template class LIBMESH_EXPORT NloptOptimizationSolver< Number >
 
template class LIBMESH_EXPORT NonlinearSolver< Number >
 
template class LIBMESH_EXPORT OptimizationSolver< Number >
 
PetscErrorCode PetscInt numFields
 
PetscErrorCode PetscInt const PetscInt fields []
 
PetscErrorCode PetscInt const PetscInt IS * is
 
PetscErrorCode PetscInt const PetscInt IS DM * subdm
 
void * ctx = nullptr
 
PetscDMContextp_ctx = static_cast<PetscDMContext * >(ctx)
 
template class LIBMESH_EXPORT PetscLinearSolver< Number >
 
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
 
template class LIBMESH_EXPORT SlepcEigenSolver< Number >
 
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
 
template class LIBMESH_EXPORT AztecLinearSolver< Number >
 
template class LIBMESH_EXPORT NoxNonlinearSolver< Number >
 
template class LIBMESH_EXPORT TransientSystem< LinearImplicitSystem >
 
template class LIBMESH_EXPORT TransientSystem< NonlinearImplicitSystem >
 
template class LIBMESH_EXPORT TransientSystem< ExplicitSystem >
 
template class LIBMESH_EXPORT TransientSystem< System >
 
template class LIBMESH_EXPORT TransientSystem< RBConstruction >
 
template class LIBMESH_EXPORT TransientSystem< EigenSystem >
 
template class LIBMESH_EXPORT LocationMap< Elem >
 
template class LIBMESH_EXPORT LocationMap< Node >
 
template class LIBMESH_EXPORT StatisticsVector< float >
 
template class LIBMESH_EXPORT StatisticsVector< double >
 
template class LIBMESH_EXPORT StatisticsVector< long double >
 
template class LIBMESH_EXPORT StatisticsVector< Real >
 
template class LIBMESH_EXPORT StatisticsVector< int >
 
template class LIBMESH_EXPORT StatisticsVector< unsigned int >
 
template class LIBMESH_EXPORT Tree< 2 >
 
template class LIBMESH_EXPORT Tree< 4 >
 
template class LIBMESH_EXPORT Tree< 8 >
 
template class LIBMESH_EXPORT TreeNode< 2 >
 
template class LIBMESH_EXPORT TreeNode< 4 >
 
template class LIBMESH_EXPORT TreeNode< 8 >
 

Detailed Description

The libMesh namespace provides an interface to certain functionality in the library.

Sanity check, without prior inclusion of libmesh_config.h.

Here, it provides a LibMeshInit class which uses the RAII (Resource Acquisition Is Initialization) idiom to ensure initialization of any other dependent libraries (e.g. MPI or PETSC), and to close those libraries when it goes out of scope. It also provides a centralized place for performance logging and other functionality.

This file is no typical header file. It is only to be included at the end of an implementation file, so that the proper variations of the InfFE class are instantiated.

Typedef Documentation

◆ boundary_id_type

typedef int16_t libMesh::boundary_id_type

Definition at line 51 of file id_types.h.

◆ Complex

typedef std::complex<Real> libMesh::Complex

Definition at line 180 of file libmesh_common.h.

◆ COMPLEX

typedef std::complex<Real> libMesh::COMPLEX

Definition at line 181 of file libmesh_common.h.

◆ connected_elem_set_type

Definition at line 261 of file mesh_communication.h.

◆ connected_node_set_type

typedef std::set<const Node *> libMesh::connected_node_set_type

Definition at line 260 of file mesh_communication.h.

◆ ConstElemRange

Definition at line 34 of file elem_range.h.

◆ ConstNodeRange

Definition at line 34 of file node_range.h.

◆ DefaultMesh

Definition at line 27 of file mesh.h.

◆ dof_id_signed_type

typedef int32_t libMesh::dof_id_signed_type

Definition at line 68 of file id_types.h.

◆ dof_id_type

typedef uint32_t libMesh::dof_id_type

Definition at line 67 of file id_types.h.

◆ DofConstraintRow

A row of the Dof constraint matrix.

Definition at line 100 of file dof_map.h.

◆ DSNAN

typedef DynamicSparseNumberArray<Real, dof_id_type> libMesh::DSNAN

Definition at line 131 of file system_projection.C.

◆ eigen_idx_type

typedef int32_t libMesh::eigen_idx_type

Definition at line 66 of file eigen_core_support.h.

◆ EigenMatrix

typedef Eigen::Matrix<Number, Eigen::Dynamic, Eigen::Dynamic> libMesh::EigenMatrix

Definition at line 55 of file static_condensation.h.

◆ EigenSM

typedef Eigen::SparseMatrix<Number, Eigen::RowMajor, eigen_idx_type> libMesh::EigenSM

Definition at line 78 of file eigen_core_support.h.

◆ EigenSV

typedef Eigen::Matrix<Number, Eigen::Dynamic, 1> libMesh::EigenSV

Definition at line 79 of file eigen_core_support.h.

◆ EigenVector

typedef Eigen::Matrix<Number, Eigen::Dynamic, 1> libMesh::EigenVector

Definition at line 58 of file static_condensation.h.

◆ ElemRange

Definition at line 31 of file elem_range.h.

◆ elemset_id_type

Definition at line 166 of file id_types.h.

◆ FEBase

Definition at line 39 of file exact_error_estimator.h.

◆ FEVectorBase

Definition at line 818 of file fe_base.h.

◆ Gradient

Definition at line 51 of file exact_solution.h.

◆ largest_id_type

typedef uint8_t libMesh::largest_id_type

Definition at line 148 of file id_types.h.

◆ NodeConstraintRow

typedef std::map<const Node *, Real, std::less<const Node *>, Threads::scalable_allocator<std::pair<const Node * const, Real> > > libMesh::NodeConstraintRow

A row of the Node constraint mapping.

Currently this just stores the topology of the constrained Nodes, but for forward compatibility we also include coefficients, so we could add Lagrange-positioned-node constraints later.

Definition at line 148 of file dof_map.h.

◆ NodeRange

Definition at line 31 of file node_range.h.

◆ Number

Definition at line 219 of file libmesh_common.h.

◆ NumberTensorValue

Definition at line 47 of file exact_solution.h.

◆ NumberVectorValue

Definition at line 50 of file exact_solution.h.

◆ numeric_index_type

Definition at line 99 of file id_types.h.

◆ OStreamProxy

Definition at line 243 of file ostream_proxy.h.

◆ processor_id_type

typedef uint64_t libMesh::processor_id_type

Definition at line 104 of file id_types.h.

◆ RBParameter

using libMesh::RBParameter = typedef std::vector<Real>

Typedef for an individual RB parameter.

Each parameter is now stored as a vector of values (different from the vector of samples).

Definition at line 39 of file rb_parameters.h.

◆ RealGradient

Definition at line 49 of file hp_coarsentest.h.

◆ RealTensor

Definition at line 50 of file hp_coarsentest.h.

◆ RealTensorValue

Useful typedefs to allow transparent switching between Real and Complex data types.

Definition at line 48 of file hp_coarsentest.h.

◆ RealVectorValue

Useful typedefs to allow transparent switching between Real and Complex data types.

Definition at line 46 of file hp_coarsentest.h.

◆ SteadyLinearSystem

Definition at line 34 of file steady_system.h.

◆ subdomain_id_type

typedef uint16_t libMesh::subdomain_id_type

Based on the 4-byte comment warning above, this probably doesn't work with exodusII at all...

Note
subdomain_id_type should be a positive integer, but due to a limitation in the exodusII API, we are forced to use a signed integer here to represent subdomains. This gives us 2^31 possible unique blocks.

Definition at line 43 of file id_types.h.

◆ Tensor

Definition at line 49 of file exact_solution.h.

◆ TransientBaseSystem

Definition at line 161 of file transient_system.h.

◆ TransientEigenSystem

Definition at line 163 of file transient_system.h.

◆ TransientExplicitSystem

Definition at line 160 of file transient_system.h.

◆ TransientImplicitSystem

Definition at line 157 of file transient_system.h.

◆ TransientLinearImplicitSystem

Definition at line 158 of file transient_system.h.

◆ TransientNonlinearImplicitSystem

Definition at line 159 of file transient_system.h.

◆ tuple_of

template<std::size_t Index, typename T >
using libMesh::tuple_of = typedef typename tuple_n<Index,T>::template type<>

Definition at line 22 of file tuple_of.h.

◆ unique_id_type

typedef uint64_t libMesh::unique_id_type

Definition at line 86 of file id_types.h.

◆ unordered_multiset_elem

typedef std::unordered_multiset<Elem *, ElemHashUtils, ElemHashUtils> libMesh::unordered_multiset_elem

Definition at line 77 of file elem_hash.h.

Enumeration Type Documentation

◆ EigenProblemType

Defines an enum for eigenproblem types.

This can be Hermitian (HEP), generalized Hermitian (GHEP), non-Hermitian (NHEP), generalized non-Hermitian (GNHEP), or generalized indefinite Hermitian (GHIEP).

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum EigenProblemType : int; reducing header file dependencies.

Enumerator
NHEP 
HEP 
GNHEP 
GHEP 
GHIEP 
INVALID_EIGENPROBLEMTYPE 

Definition at line 54 of file enum_eigen_solver_type.h.

◆ EigenSolverType

Defines an enum for iterative eigenproblem solver types.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum EigenSolverType : int; reducing header file dependencies.

Enumerator
POWER 
LAPACK 
SUBSPACE 
ARNOLDI 
LANCZOS 
KRYLOVSCHUR 
INVALID_EIGENSOLVER 

Definition at line 33 of file enum_eigen_solver_type.h.

◆ ElemMappingType

enum libMesh::ElemMappingType : unsigned char

Enumeration of possible element master->physical mapping types.

We don't just directly store FEType for this because we want to be certain our options all pack into a single char in an Elem.

Enumerator
LAGRANGE_MAP 
RATIONAL_BERNSTEIN_MAP 
INVALID_MAP 

Definition at line 94 of file enum_elem_type.h.

◆ ElemQuality

Defines an enum for element quality metrics.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum ElemQuality : int; reducing header file dependencies.

Enumerator
ASPECT_RATIO 
SKEW 
SHEAR 
SHAPE 
MAX_ANGLE 
MIN_ANGLE 
CONDITION 
DISTORTION 
TAPER 
WARP 
STRETCH 
DIAGONAL 
ASPECT_RATIO_BETA 
ASPECT_RATIO_GAMMA 
SIZE 
JACOBIAN 
TWIST 
EDGE_LENGTH_RATIO 
MAX_DIHEDRAL_ANGLE 
MIN_DIHEDRAL_ANGLE 
SCALED_JACOBIAN 

Definition at line 34 of file enum_elem_quality.h.

34  : int {
35  ASPECT_RATIO=0,
36  SKEW,
37  SHEAR,
38  SHAPE,
39  MAX_ANGLE,
40  MIN_ANGLE,
41  CONDITION,
42  DISTORTION,
43  TAPER,
44  WARP,
45  STRETCH,
46  DIAGONAL,
49  SIZE,
50  JACOBIAN,
51  TWIST,

◆ ElemType

Defines an enum for geometric element types.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum ElemType : int; reducing header file dependencies.

Enumerator
EDGE2 
EDGE3 
EDGE4 
TRI3 
TRI6 
QUAD4 
QUAD8 
QUAD9 
TET4 
TET10 
HEX8 
HEX20 
HEX27 
PRISM6 
PRISM15 
PRISM18 
PYRAMID5 
PYRAMID13 
PYRAMID14 
INFEDGE2 
INFQUAD4 
INFQUAD6 
INFHEX8 
INFHEX16 
INFHEX18 
INFPRISM6 
INFPRISM12 
NODEELEM 
REMOTEELEM 
TRI3SUBDIVISION 
TRISHELL3 
QUADSHELL4 
QUADSHELL8 
TRI7 
TET14 
PRISM20 
PRISM21 
PYRAMID18 
QUADSHELL9 
C0POLYGON 
C0POLYHEDRON 
INVALID_ELEM 

Definition at line 33 of file enum_elem_type.h.

33  : int {
34  // 1D
35  EDGE2 = 0,
36  EDGE3 = 1,
37  EDGE4 = 2,
38  // 2D
39  TRI3 = 3,
40  TRI6 = 4,
41  QUAD4 = 5,
42  QUAD8 = 6,
43  QUAD9 = 7,
44  // 3D
45  TET4 = 8,
46  TET10 = 9,
47  HEX8 = 10,
48  HEX20 = 11,
49  HEX27 = 12,
50  PRISM6 = 13,
51  PRISM15 = 14,
52  PRISM18 = 15,
53  PYRAMID5 = 16,
54  PYRAMID13 = 17,
55  PYRAMID14 = 18,
56  // Infinite Elems
57  INFEDGE2 = 19,
58  INFQUAD4 = 20,
59  INFQUAD6 = 21,
60  INFHEX8 = 22,
61  INFHEX16 = 23,
62  INFHEX18 = 24,
63  INFPRISM6 = 25,
64  INFPRISM12 = 26,
65  // 0D
66  NODEELEM = 27,
67  // Miscellaneous Elems
68  REMOTEELEM = 28,
69  TRI3SUBDIVISION = 29,
70  // Shell Elems
71  TRISHELL3 = 30,
72  QUADSHELL4 = 31,
73  QUADSHELL8 = 32,
74  // Elems with Tri7 (Tri with mid-face node) faces
75  TRI7 = 33,
76  TET14 = 34,
77  PRISM20 = 35,
78  PRISM21 = 36,
79  PYRAMID18 = 37,
80  // Another shell elem
81  QUADSHELL9 = 38,
82  // An arbitrary polygon with N EDGE2 sides
83  C0POLYGON = 39,
84  // An arbitrary polyhedron with C0POLYGON sides
85  C0POLYHEDRON = 40,
86  // Invalid
87  INVALID_ELEM}; // should always be last

◆ ErrorEstimatorType

Defines an enum for the different types of error estimators which are available.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum ErrorEstimatorType : int; reducing header file dependencies.

Enumerator
INVALID 
ADJOINT_REFINEMENT 
ADJOINT_RESIDUAL 
DISCONTINUITY_MEASURE 
EXACT 
KELLY 
LAPLACIAN 
PATCH_RECOVERY 
WEIGHTED_PATCH_RECOVERY 
UNIFORM_REFINEMENT 

Definition at line 33 of file enum_error_estimator_type.h.

◆ FEContinuity

defines an enum for finite element types to libmesh_assert a certain level (or type? Hcurl?) of continuity.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum FEContinuity : int; reducing header file dependencies.

Enumerator
DISCONTINUOUS 
C_ZERO 
C_ONE 
H_CURL 
H_DIV 
SIDE_DISCONTINUOUS 

Definition at line 84 of file enum_fe_family.h.

◆ FEFamily

defines an enum for finite element families.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum FEFamily : int; reducing header file dependencies.

Enumerator
LAGRANGE 
HIERARCHIC 
MONOMIAL 
L2_HIERARCHIC 
L2_LAGRANGE 
BERNSTEIN 
SZABAB 
XYZ 
INFINITE_MAP 
JACOBI_20_00 
JACOBI_30_00 
LEGENDRE 
CLOUGH 
HERMITE 
SUBDIVISION 
SCALAR 
LAGRANGE_VEC 
NEDELEC_ONE 
MONOMIAL_VEC 
RAVIART_THOMAS 
L2_RAVIART_THOMAS 
L2_LAGRANGE_VEC 
HIERARCHIC_VEC 
L2_HIERARCHIC_VEC 
RATIONAL_BERNSTEIN 
SIDE_HIERARCHIC 
INVALID_FE 

Definition at line 34 of file enum_fe_family.h.

34  : int {
35  // C0
36  LAGRANGE = 0,
37  HIERARCHIC = 1,
38  // discontinuous, in local coordinates
39  MONOMIAL = 2,
40  L2_HIERARCHIC = 6,
41  L2_LAGRANGE = 7,
42  // higher-order
43  BERNSTEIN = 3,
44  SZABAB = 4,
45  // discontinuous, in global coordinates
46  XYZ = 5,
47  // infinite element stuff
48  INFINITE_MAP = 11, // for 1/r-map
49  JACOBI_20_00 = 12, // i_max = 19
50  JACOBI_30_00 = 13, // i_max = 19
51  LEGENDRE = 14, // i_max = 19
52  // C1 elements
53  CLOUGH = 21,
54  HERMITE = 22,
55  SUBDIVISION = 23,
56  // A scalar variable that couples to
57  // all other DOFs in the system
58  SCALAR = 31,
59  // Vector-valued elements
60  LAGRANGE_VEC = 41,
61  NEDELEC_ONE = 42,
62  MONOMIAL_VEC = 43,
63  RAVIART_THOMAS = 44,
64  L2_RAVIART_THOMAS = 45,
65  L2_LAGRANGE_VEC = 46,
66  HIERARCHIC_VEC = 47,
67  L2_HIERARCHIC_VEC = 48,
68  // Rational basis functions
69  RATIONAL_BERNSTEIN = 61,
70  // Side-supported basis functions
71  SIDE_HIERARCHIC = 71,
72  // Invalid
73  INVALID_FE = 99};

◆ FEFieldType

defines an enum for finite element field types - i.e.

is it a scalar element, vector, tensor, etc.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum FEFieldType : int; reducing header file dependencies.

Enumerator
TYPE_SCALAR 
TYPE_VECTOR 

Definition at line 101 of file enum_fe_family.h.

◆ FEMNormType

defines an enum for norms defined on vectors of finite element coefficients

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum FEMNormType : int; reducing header file dependencies.

Enumerator
L2 
H1 
H2 
HCURL 
HDIV 
L1 
L_INF 
H1_SEMINORM 
H2_SEMINORM 
HCURL_SEMINORM 
HDIV_SEMINORM 
W1_INF_SEMINORM 
W2_INF_SEMINORM 
DISCRETE_L1 
DISCRETE_L2 
DISCRETE_L_INF 
H1_X_SEMINORM 
H1_Y_SEMINORM 
H1_Z_SEMINORM 
INVALID_NORM 

Definition at line 34 of file enum_norm_type.h.

34  : int {
35  // Hilbert norms and seminorms in FE space
36  L2 = 0,
37  H1 = 1,
38  H2 = 2,
39  HCURL = 3,
40  HDIV = 4,
41  L1 = 5,
42  L_INF = 6,
43  H1_SEMINORM = 10,
44  H2_SEMINORM = 11,
45  // Vector FE norms
46  HCURL_SEMINORM = 12,
47  HDIV_SEMINORM = 13,
48  // Sobolev infinity seminorms
49  W1_INF_SEMINORM = 15,
50  W2_INF_SEMINORM = 16,
51  // discrete norms on coefficient vectors
52  DISCRETE_L1 = 20,
53  DISCRETE_L2 = 21,
54  DISCRETE_L_INF = 22,
55  // Seminorms based on only individual gradient
56  // directional components
57  H1_X_SEMINORM = 31,
58  H1_Y_SEMINORM = 32,
59  H1_Z_SEMINORM = 33,
60  // Invalid
61  INVALID_NORM = 42};

◆ InfMapType

defines an enum for the types of coordinate mappings available in infinite elements.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum InfMapType : int; reducing header file dependencies.

Enumerator
CARTESIAN 
SPHERICAL 
ELLIPSOIDAL 
INVALID_INF_MAP 

Definition at line 34 of file enum_inf_map_type.h.

◆ IOPackage

libMesh interfaces with several different software packages for the purposes of creating, reading, and writing mesh files.

These enumerations give an easy way of selecting one or the other.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum IOPackage : int; reducing header file dependencies.

Enumerator
TECPLOT 
GMV 
GMSH 
VTK 
DIVA 
TETGEN 
UCD 
LIBMESH 
INVALID_IO_PACKAGE 

Definition at line 37 of file enum_io_package.h.

◆ LinearConvergenceReason

Linear solver convergence flags (taken from the PETSc flags).

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum LinearConvergenceReason : int; reducing header file dependencies.

Enumerator
CONVERGED_RTOL_NORMAL 
CONVERGED_ATOL_NORMAL 
CONVERGED_RTOL 
CONVERGED_ATOL 
CONVERGED_ITS 
CONVERGED_CG_NEG_CURVE 
CONVERGED_CG_CONSTRAINED 
CONVERGED_STEP_LENGTH 
CONVERGED_HAPPY_BREAKDOWN 
DIVERGED_NULL 
DIVERGED_ITS 
DIVERGED_DTOL 
DIVERGED_BREAKDOWN 
DIVERGED_BREAKDOWN_BICG 
DIVERGED_NONSYMMETRIC 
DIVERGED_INDEFINITE_PC 
DIVERGED_NAN 
DIVERGED_INDEFINITE_MAT 
DIVERGED_PCSETUP_FAILED 
CONVERGED_ITERATING 
UNKNOWN_FLAG 

Definition at line 33 of file enum_convergence_flags.h.

33  : int {
34  // converged
37  CONVERGED_RTOL = 2,
38  CONVERGED_ATOL = 3,
39  CONVERGED_ITS = 4,
44  // diverged
45  DIVERGED_NULL = -2,
46  DIVERGED_ITS = -3,
47  DIVERGED_DTOL = -4,
48  DIVERGED_BREAKDOWN = -5,
52  DIVERGED_NAN = -9,
55  // still running
57  // Invalid
58  UNKNOWN_FLAG = -128};

◆ MatrixBuildType

Defines an enum for matrix build types.

This is useful for telling System derived objects what type of matrix to build

Enumerator
AUTOMATIC 
DIAGONAL 

Definition at line 29 of file enum_matrix_build_type.h.

◆ Order

defines an enum for polynomial orders.

Fixing each label to a specific int, since InfFE and p refinement may cast between them.

Note
It is possible to safely cast integral values larger than 43 to Order, provided that the cast value fits in the range of int. A potential use case for such a cast is when employing the QGrid class at extremely high order.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum Order : int; reducing header file dependencies.

Enumerator
CONSTANT 
FIRST 
SECOND 
THIRD 
FOURTH 
FIFTH 
SIXTH 
SEVENTH 
EIGHTH 
NINTH 
TENTH 
ELEVENTH 
TWELFTH 
THIRTEENTH 
FOURTEENTH 
FIFTEENTH 
SIXTEENTH 
SEVENTEENTH 
EIGHTTEENTH 
EIGHTEENTH 
NINETEENTH 
TWENTIETH 
TWENTYFIRST 
TWENTYSECOND 
TWENTYTHIRD 
TWENTYFOURTH 
TWENTYFIFTH 
TWENTYSIXTH 
TWENTYSEVENTH 
TWENTYEIGHTH 
TWENTYNINTH 
THIRTIETH 
THIRTYFIRST 
THIRTYSECOND 
THIRTYTHIRD 
THIRTYFOURTH 
THIRTYFIFTH 
THIRTYSIXTH 
THIRTYSEVENTH 
THIRTYEIGHTH 
THIRTYNINTH 
FORTIETH 
FORTYFIRST 
FORTYSECOND 
FORTYTHIRD 
MAXIMUM 
INVALID_ORDER 

Definition at line 40 of file enum_order.h.

40  : int {
41  CONSTANT = 0,
42  FIRST = 1,
43  SECOND = 2,
44  THIRD = 3,
45  FOURTH = 4,
46  FIFTH = 5,
47  SIXTH = 6,
48  SEVENTH = 7,
49  EIGHTH = 8,
50  NINTH = 9,
51  TENTH = 10,
52  ELEVENTH = 11,
53  TWELFTH = 12,
54  THIRTEENTH = 13,
55  FOURTEENTH = 14,
56  FIFTEENTH = 15,
57  SIXTEENTH = 16,
58  SEVENTEENTH = 17,
59  EIGHTTEENTH = 18, // misspelling, deprecated
60  EIGHTEENTH = 18,
61  NINETEENTH = 19,
62  TWENTIETH = 20,
63  TWENTYFIRST = 21,
64  TWENTYSECOND = 22,
65  TWENTYTHIRD = 23,
66  TWENTYFOURTH = 24,
67  TWENTYFIFTH = 25,
68  TWENTYSIXTH = 26,
69  TWENTYSEVENTH = 27,
70  TWENTYEIGHTH = 28,
71  TWENTYNINTH = 29,
72  THIRTIETH = 30,
73  THIRTYFIRST = 31,
74  THIRTYSECOND = 32,
75  THIRTYTHIRD = 33,
76  THIRTYFOURTH = 34,
77  THIRTYFIFTH = 35,
78  THIRTYSIXTH = 36,
79  THIRTYSEVENTH = 37,
80  THIRTYEIGHTH = 38,
81  THIRTYNINTH = 39,
82  FORTIETH = 40,
83  FORTYFIRST = 41,
84  FORTYSECOND = 42,
85  FORTYTHIRD = 43,
86  MAXIMUM = 255,
87  // Invalid

◆ ParallelType

Defines an enum for parallel data structure types.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum ParallelType : int; reducing header file dependencies.

Enumerator
AUTOMATIC 
AUTOMATIC 
SERIAL 
PARALLEL 
GHOSTED 
INVALID_PARALLELIZATION 

Definition at line 33 of file enum_parallel_type.h.

◆ PartitionerType

Defines an enum for mesh partitioner types.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum EigenSolverType : int; reducing header file dependencies.

Enumerator
CENTROID_PARTITIONER 
LINEAR_PARTITIONER 
SFC_PARTITIONER 
HILBERT_SFC_PARTITIONER 
MORTON_SFC_PARTITIONER 
METIS_PARTITIONER 
PARMETIS_PARTITIONER 
SUBDOMAIN_PARTITIONER 
MAPPED_SUBDOMAIN_PARTITIONER 
INVALID_PARTITIONER 

Definition at line 33 of file enum_partitioner_type.h.

◆ PetscMatrixType

Enumerator
AIJ 
HYPRE 

Definition at line 47 of file petsc_matrix.h.

47  : int {
48  AIJ=0,
49  HYPRE};

◆ PointLocatorType

defines an enum for the types of point locators (given a point with global coordinates, locate the corresponding element in space) available in libMesh.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum PointLocatorType : int; reducing header file dependencies.

Enumerator
TREE 
TREE_ELEMENTS 
TREE_LOCAL_ELEMENTS 
NANOFLANN 
INVALID_LOCATOR 

Definition at line 35 of file enum_point_locator_type.h.

◆ PositionOfSpectrum

Defines an enum for the position of the spectrum, i.e.

the eigenvalues to be computed.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum PositionOfSpectrum : int; reducing header file dependencies.

Enumerator
LARGEST_MAGNITUDE 
SMALLEST_MAGNITUDE 
TARGET_MAGNITUDE 
LARGEST_REAL 
SMALLEST_REAL 
TARGET_REAL 
LARGEST_IMAGINARY 
SMALLEST_IMAGINARY 
TARGET_IMAGINARY 
INVALID_Postion_of_Spectrum 
INVALID_POSITION_OF_SPECTRUM 

Definition at line 74 of file enum_eigen_solver_type.h.

◆ PreconditionerType

Defines an enum for preconditioner types.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum PreconditionerType : int; reducing header file dependencies.

Enumerator
IDENTITY_PRECOND 
JACOBI_PRECOND 
BLOCK_JACOBI_PRECOND 
SOR_PRECOND 
SSOR_PRECOND 
EISENSTAT_PRECOND 
ASM_PRECOND 
CHOLESKY_PRECOND 
ICC_PRECOND 
ILU_PRECOND 
LU_PRECOND 
USER_PRECOND 
SHELL_PRECOND 
AMG_PRECOND 
SVD_PRECOND 
INVALID_PRECONDITIONER 

Definition at line 33 of file enum_preconditioner_type.h.

◆ QuadratureType

Defines an enum for currently available quadrature rules.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum QuadratureType : int; reducing header file dependencies.

Enumerator
QGAUSS 
QJACOBI_1_0 
QJACOBI_2_0 
QSIMPSON 
QTRAP 
QGRID 
QGRUNDMANN_MOLLER 
QMONOMIAL 
QCONICAL 
QGAUSS_LOBATTO 
QCLOUGH 
QCOMPOSITE 
QNODAL 
INVALID_Q_RULE 

Definition at line 33 of file enum_quadrature_type.h.

◆ SolverPackage

Defines an enum for various linear solver packages.

This allows for run-time switching between solver packages

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum SolverPackage : int; reducing header file dependencies.

Enumerator
PETSC_SOLVERS 
TRILINOS_SOLVERS 
LASPACK_SOLVERS 
SLEPC_SOLVERS 
EIGEN_SOLVERS 
NLOPT_SOLVERS 
DIAGONAL_MATRIX 
INVALID_SOLVER_PACKAGE 

Definition at line 34 of file enum_solver_package.h.

◆ SolverType

Defines an enum for iterative solver types.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum SolverType : int; reducing header file dependencies.

Enumerator
CG 
CGN 
CGS 
CR 
QMR 
TCQMR 
TFQMR 
BICG 
BICGSTAB 
MINRES 
GMRES 
LSQR 
JACOBI 
SOR_FORWARD 
SOR_BACKWARD 
SSOR 
RICHARDSON 
CHEBYSHEV 
SPARSELU 
INVALID_SOLVER 

Definition at line 33 of file enum_solver_type.h.

◆ SubsetSolveMode

defines an enum for the question what happens to the dofs outside the given subset when a system is solved on a subset.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum SubsetSolveMode : int; reducing header file dependencies.

Enumerator
SUBSET_ZERO 
SUBSET_COPY_RHS 
SUBSET_DONT_TOUCH 

Definition at line 35 of file enum_subset_solve_mode.h.

35  : int {
36  // Set dofs outside the subset to zero.
37  SUBSET_ZERO = 0,
38  // Set dofs outside the subset to the value of the corresponding
39  // dofs of the right hand side.
41  // Leaves dofs outside the subset unchanged. This is fastest, but
42  // also most confusing because it abandons the property that the
43  // solution vector is (theoretically) independent of the initial
44  // guess.
46 };

◆ VariableIndexing

Dirichlet functions may be indexed either by "system variable order" or "local variable order", depending on how the DirichletBoundary object is constructed.

For example, suppose a system has variables {a, b, c, d}, and a DirichletBoundary is set for variables {b, d} (i.e. variables_in is {1, 3}). If the boundary is constructed to use "system variable order", input function(s) will be queried for components 1 and 3; this is useful for reusing input functions as both exact solutions and Dirichlet boundaries in benchmark problems. If the boundary is constructed to use "local variable order", input function(s) will be queried for components 0 and 1; this is useful for flexibly constructing Dirichlet boundaries in multiphysics codes or from user input files.

Enumerator
SYSTEM_VARIABLE_ORDER 
LOCAL_VARIABLE_ORDER 

Definition at line 61 of file dirichlet_boundaries.h.

◆ XdrMODE

Defines an enum for read/write mode in Xdr format.

READ, WRITE perform reading and writing in ASCII format, and DECODE, ENCODE do the same in binary format.

The fixed type, i.e. ": int", enumeration syntax used here allows this enum to be forward declared as enum XdrMODE : int; reducing header file dependencies.

Enumerator
UNKNOWN 
ENCODE 
DECODE 
WRITE 
READ 

Definition at line 35 of file enum_xdr_mode.h.

35  : int
36  {
37  UNKNOWN = -1,
38  ENCODE=0,
39  DECODE,
40  WRITE,
41  READ
42  };

Function Documentation

◆ __libmesh_nlopt_equality_constraints()

void libMesh::__libmesh_nlopt_equality_constraints ( unsigned  m,
double *  result,
unsigned  n,
const double *  x,
double *  gradient,
void *  data 
)

Definition at line 107 of file nlopt_optimization_solver.C.

References libMesh::OptimizationSystem::ComputeEqualityConstraints::equality_constraints(), libMesh::OptimizationSystem::ComputeEqualityConstraintsJacobian::equality_constraints_jacobian(), libMesh::OptimizationSolver< T >::equality_constraints_jacobian_object, libMesh::OptimizationSolver< T >::equality_constraints_object, index_range(), libmesh_assert(), and libMesh::OptimizationSolver< T >::system().

Referenced by libMesh::NloptOptimizationSolver< T >::solve().

113 {
114  LOG_SCOPE("equality_constraints()", "NloptOptimizationSolver");
115 
116  libmesh_assert(data);
117 
118  // data should be a pointer to the solver (it was passed in as void *)
120  static_cast<NloptOptimizationSolver<Number> *> (data);
121 
122  OptimizationSystem & sys = solver->system();
123 
124  // We'll use current_local_solution below, so let's ensure that it's consistent
125  // with the vector x that was passed in.
126  libmesh_error_msg_if(sys.solution->size() != n,
127  "Error: Input vector x has different length than sys.solution!");
128 
129  for (auto i : index_range(*sys.solution))
130  sys.solution->set(i, x[i]);
131  sys.solution->close();
132 
133  // Impose constraints on the solution vector
134  sys.get_dof_map().enforce_constraints_exactly(sys);
135 
136  // Update sys.current_local_solution based on the solution vector
137  sys.update();
138 
139  // Call the user's equality constraints function if there is one.
140  OptimizationSystem::ComputeEqualityConstraints * eco = solver->equality_constraints_object;
141  if (eco)
142  {
143  eco->equality_constraints(*sys.current_local_solution,
144  *sys.C_eq,
145  sys);
146 
147  sys.C_eq->close();
148 
149  // Copy the values out of eq_constraints into 'result'.
150  // TODO: Even better would be if we could use 'result' directly
151  // as the storage of eq_constraints. Perhaps a serial-only
152  // NumericVector variant which supports this option?
153  for (unsigned int i = 0; i < m; ++i)
154  result[i] = (*sys.C_eq)(i);
155 
156  // If gradient != nullptr, then the Jacobian matrix of the equality
157  // constraints has been requested. The incoming 'gradient'
158  // array is of length m*n and d(c_i)/d(x_j) = gradient[n*i+j].
159  if (gradient)
160  {
161  OptimizationSystem::ComputeEqualityConstraintsJacobian * eco_jac =
162  solver->equality_constraints_jacobian_object;
163 
164  if (eco_jac)
165  {
166  eco_jac->equality_constraints_jacobian(*sys.current_local_solution,
167  *sys.C_eq_jac,
168  sys);
169 
170  sys.C_eq_jac->close();
171 
172  // copy the Jacobian data to the gradient array
173  for (numeric_index_type i=0; i<m; i++)
174  for (const auto & dof_index : sys.eq_constraint_jac_sparsity[i])
175  gradient[n*i+dof_index] = (*sys.C_eq_jac)(i,dof_index);
176  }
177  else
178  libmesh_error_msg("Jacobian function not defined in __libmesh_nlopt_equality_constraints");
179  }
180 
181  }
182  else
183  libmesh_error_msg("Constraints function not defined in __libmesh_nlopt_equality_constraints");
184 }
template class LIBMESH_EXPORT NloptOptimizationSolver< Number >
dof_id_type numeric_index_type
Definition: id_types.h:99
libmesh_assert(ctx)
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:117

◆ __libmesh_nlopt_inequality_constraints()

void libMesh::__libmesh_nlopt_inequality_constraints ( unsigned  m,
double *  result,
unsigned  n,
const double *  x,
double *  gradient,
void *  data 
)

Definition at line 187 of file nlopt_optimization_solver.C.

References index_range(), libMesh::OptimizationSystem::ComputeInequalityConstraints::inequality_constraints(), libMesh::OptimizationSystem::ComputeInequalityConstraintsJacobian::inequality_constraints_jacobian(), libMesh::OptimizationSolver< T >::inequality_constraints_jacobian_object, libMesh::OptimizationSolver< T >::inequality_constraints_object, libmesh_assert(), and libMesh::OptimizationSolver< T >::system().

Referenced by libMesh::NloptOptimizationSolver< T >::solve().

193 {
194  LOG_SCOPE("inequality_constraints()", "NloptOptimizationSolver");
195 
196  libmesh_assert(data);
197 
198  // data should be a pointer to the solver (it was passed in as void *)
200  static_cast<NloptOptimizationSolver<Number> *> (data);
201 
202  OptimizationSystem & sys = solver->system();
203 
204  // We'll use current_local_solution below, so let's ensure that it's consistent
205  // with the vector x that was passed in.
206  libmesh_error_msg_if(sys.solution->size() != n, "Error: Input vector x has different length than sys.solution!");
207 
208  for (auto i : index_range(*sys.solution))
209  sys.solution->set(i, x[i]);
210  sys.solution->close();
211 
212  // Impose constraints on the solution vector
213  sys.get_dof_map().enforce_constraints_exactly(sys);
214 
215  // Update sys.current_local_solution based on the solution vector
216  sys.update();
217 
218  // Call the user's inequality constraints function if there is one.
219  OptimizationSystem::ComputeInequalityConstraints * ineco = solver->inequality_constraints_object;
220  if (ineco)
221  {
222  ineco->inequality_constraints(*sys.current_local_solution,
223  *sys.C_ineq,
224  sys);
225 
226  sys.C_ineq->close();
227 
228  // Copy the values out of ineq_constraints into 'result'.
229  // TODO: Even better would be if we could use 'result' directly
230  // as the storage of ineq_constraints. Perhaps a serial-only
231  // NumericVector variant which supports this option?
232  for (unsigned int i = 0; i < m; ++i)
233  result[i] = (*sys.C_ineq)(i);
234 
235  // If gradient != nullptr, then the Jacobian matrix of the equality
236  // constraints has been requested. The incoming 'gradient'
237  // array is of length m*n and d(c_i)/d(x_j) = gradient[n*i+j].
238  if (gradient)
239  {
240  OptimizationSystem::ComputeInequalityConstraintsJacobian * ineco_jac =
241  solver->inequality_constraints_jacobian_object;
242 
243  if (ineco_jac)
244  {
245  ineco_jac->inequality_constraints_jacobian(*sys.current_local_solution,
246  *sys.C_ineq_jac,
247  sys);
248 
249  sys.C_ineq_jac->close();
250 
251  // copy the Jacobian data to the gradient array
252  for (numeric_index_type i=0; i<m; i++)
253  for (const auto & dof_index : sys.ineq_constraint_jac_sparsity[i])
254  gradient[n*i+dof_index] = (*sys.C_ineq_jac)(i,dof_index);
255  }
256  else
257  libmesh_error_msg("Jacobian function not defined in __libmesh_nlopt_inequality_constraints");
258  }
259 
260  }
261  else
262  libmesh_error_msg("Constraints function not defined in __libmesh_nlopt_inequality_constraints");
263 }
template class LIBMESH_EXPORT NloptOptimizationSolver< Number >
dof_id_type numeric_index_type
Definition: id_types.h:99
libmesh_assert(ctx)
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:117

◆ __libmesh_nlopt_objective()

double libMesh::__libmesh_nlopt_objective ( unsigned  n,
const double *  x,
double *  gradient,
void *  data 
)

Definition at line 37 of file nlopt_optimization_solver.C.

References libMesh::NloptOptimizationSolver< T >::get_iteration_count(), libMesh::OptimizationSystem::ComputeGradient::gradient(), libMesh::OptimizationSolver< T >::gradient_object, index_range(), libmesh_assert(), libMesh::OptimizationSystem::ComputeObjective::objective(), libMesh::OptimizationSolver< T >::objective_object, out, Real, libMesh::OptimizationSolver< T >::system(), and libMesh::OptimizationSolver< T >::verbose.

Referenced by libMesh::NloptOptimizationSolver< T >::solve().

41 {
42  LOG_SCOPE("objective()", "NloptOptimizationSolver");
43 
44  // ctx should be a pointer to the solver (it was passed in as void *)
46  static_cast<NloptOptimizationSolver<Number> *> (data);
47 
48  OptimizationSystem & sys = solver->system();
49 
50  // We'll use current_local_solution below, so let's ensure that it's consistent
51  // with the vector x that was passed in.
52  for (auto i : index_range(*sys.solution))
53  sys.solution->set(i, x[i]);
54 
55  // Make sure the solution vector is parallel-consistent
56  sys.solution->close();
57 
58  // Impose constraints on X
59  sys.get_dof_map().enforce_constraints_exactly(sys);
60 
61  // Update sys.current_local_solution based on X
62  sys.update();
63 
64  Real objective;
65  if (solver->objective_object != nullptr)
66  {
67  objective =
68  solver->objective_object->objective(*(sys.current_local_solution), sys);
69  }
70  else
71  {
72  libmesh_error_msg("Objective function not defined in __libmesh_nlopt_objective");
73  }
74 
75  // If the gradient has been requested, fill it in
76  if (gradient)
77  {
78  if (solver->gradient_object != nullptr)
79  {
80  solver->gradient_object->gradient(*(sys.current_local_solution), *(sys.rhs), sys);
81 
82  // we've filled up sys.rhs with the gradient data, now copy it
83  // to the nlopt data structure
84  libmesh_assert(sys.rhs->size() == n);
85 
86  std::vector<double> grad;
87  sys.rhs->localize_to_one(grad);
88  for (unsigned int i = 0; i < n; ++i)
89  gradient[i] = grad[i];
90  }
91  else
92  libmesh_error_msg("Gradient function not defined in __libmesh_nlopt_objective");
93  }
94 
95  // Increment the iteration count.
96  solver->get_iteration_count()++;
97 
98  // Possibly print the current value of the objective function
99  if (solver->verbose)
100  libMesh::out << objective << std::endl;
101 
102  return objective;
103 }
template class LIBMESH_EXPORT NloptOptimizationSolver< Number >
libmesh_assert(ctx)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
OStreamProxy out
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:117

◆ __libmesh_petsc_diff_solver_jacobian()

PetscErrorCode libMesh::__libmesh_petsc_diff_solver_jacobian ( SNES  ,
Vec  x,
Mat   libmesh_dbg_varj,
Mat   libmesh_dbg_varpc,
void *  ctx 
)

Definition at line 134 of file petsc_diff_solver.C.

References libMesh::ImplicitSystem::assembly(), libMesh::ParallelObject::comm(), ctx, libMesh::System::current_local_solution, libMesh::DofMap::enforce_constraints_exactly(), libMesh::DiffSolver::exact_constraint_enforcement(), libMesh::System::get_dof_map(), libmesh_assert(), libMesh::ImplicitSystem::matrix, out, PetscFunctionReturn(), libMesh::System::solution, libMesh::DiffSolver::system(), libMesh::System::update(), and libMesh::DiffSolver::verbose.

Referenced by libMesh::PetscDiffSolver::solve().

139  {
140  PetscFunctionBegin;
141 
142  libmesh_assert(x);
143  libmesh_assert(j);
144  // libmesh_assert_equal_to (pc, j); // We don't use separate preconditioners yet
146 
147  PetscDiffSolver & solver =
148  *(static_cast<PetscDiffSolver*> (ctx));
149  ImplicitSystem & sys = solver.system();
150 
151  if (solver.verbose)
152  libMesh::out << "Assembling the Jacobian" << std::endl;
153 
154  PetscVector<Number> & X_system =
155  *cast_ptr<PetscVector<Number> *>(sys.solution.get());
156  PetscVector<Number> X_input(x, sys.comm());
157 
158  PetscMatrixBase<Number> & J_system =
159  *cast_ptr<PetscMatrixBase<Number> *>(sys.matrix);
160  libmesh_assert(J_system.mat() == pc);
161 
162  // DiffSystem assembles from the solution and into the jacobian, so
163  // swap those with our input vectors before assembling. They'll
164  // probably already be references to the same vectors, but PETSc
165  // might do something tricky.
166  X_input.swap(X_system);
167 
168  // We may need to localize a parallel solution
169  sys.update();
170 
171  // We may need to correct a non-conforming solution
172  if (solver.exact_constraint_enforcement())
173  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
174 
175  // Do DiffSystem assembly
176  sys.assembly(false, true, !solver.exact_constraint_enforcement());
177  J_system.close();
178 
179  // Swap back
180  X_input.swap(X_system);
181 
182  // No errors, we hope
183  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
184  }
template class LIBMESH_EXPORT PetscMatrixBase< Number >
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
OStreamProxy out
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_diff_solver_monitor()

PetscErrorCode libMesh::__libmesh_petsc_diff_solver_monitor ( SNES  snes,
PetscInt  its,
PetscReal  fnorm,
void *  ctx 
)

Definition at line 44 of file petsc_diff_solver.C.

References libMesh::PetscVector< T >::close(), libMesh::ParallelObject::comm(), ctx, libMesh::DiffSolver::linear_solution_monitor, out, PetscFunctionReturn(), and libMesh::DiffSolver::verbose.

Referenced by libMesh::PetscDiffSolver::setup_petsc_data().

48  {
49  PetscFunctionBegin;
50 
51  PetscDiffSolver & solver =
52  *(static_cast<PetscDiffSolver *> (ctx));
53 
54  if (solver.verbose)
55  libMesh::out << " PetscDiffSolver step " << its
56  << ", |residual|_2 = " << fnorm << std::endl;
57  if (solver.linear_solution_monitor.get())
58  {
59  Vec petsc_delta_u;
60  LibmeshPetscCall2(solver.comm(), SNESGetSolutionUpdate(snes, &petsc_delta_u));
61  PetscVector<Number> delta_u(petsc_delta_u, solver.comm());
62  delta_u.close();
63 
64  Vec petsc_u;
65  LibmeshPetscCall2(solver.comm(), SNESGetSolution(snes, &petsc_u));
66  PetscVector<Number> u(petsc_u, solver.comm());
67  u.close();
68 
69  Vec petsc_res;
70  LibmeshPetscCall2(solver.comm(), SNESGetFunction(snes, &petsc_res, nullptr, nullptr));
71  PetscVector<Number> res(petsc_res, solver.comm());
72  res.close();
73 
74  (*solver.linear_solution_monitor)(
75  delta_u, delta_u.l2_norm(),
76  u, u.l2_norm(),
77  res, res.l2_norm(), its);
78  }
79  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
80  }
template class LIBMESH_EXPORT PetscVector< Number >
OStreamProxy out
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_diff_solver_residual()

PetscErrorCode libMesh::__libmesh_petsc_diff_solver_residual ( SNES  ,
Vec  x,
Vec  r,
void *  ctx 
)

Definition at line 85 of file petsc_diff_solver.C.

References libMesh::ImplicitSystem::assembly(), libMesh::ParallelObject::comm(), ctx, libMesh::System::current_local_solution, libMesh::DofMap::enforce_constraints_exactly(), libMesh::DiffSolver::exact_constraint_enforcement(), libMesh::System::get_dof_map(), libmesh_assert(), out, PetscFunctionReturn(), libMesh::ExplicitSystem::rhs, libMesh::System::solution, libMesh::PetscVector< T >::swap(), libMesh::DiffSolver::system(), libMesh::System::update(), and libMesh::DiffSolver::verbose.

Referenced by libMesh::PetscDiffSolver::solve().

86  {
87  PetscFunctionBegin;
88 
89  libmesh_assert(x);
90  libmesh_assert(r);
92 
93  PetscDiffSolver & solver =
94  *(static_cast<PetscDiffSolver*> (ctx));
95  ImplicitSystem & sys = solver.system();
96 
97  if (solver.verbose)
98  libMesh::out << "Assembling the residual" << std::endl;
99 
100  PetscVector<Number> & X_system =
101  *cast_ptr<PetscVector<Number> *>(sys.solution.get());
102  PetscVector<Number> & R_system =
103  *cast_ptr<PetscVector<Number> *>(sys.rhs);
104  PetscVector<Number> X_input(x, sys.comm()), R_input(r, sys.comm());
105 
106  // DiffSystem assembles from the solution and into the rhs, so swap
107  // those with our input vectors before assembling. They'll probably
108  // already be references to the same vectors, but PETSc might do
109  // something tricky.
110  X_input.swap(X_system);
111  R_input.swap(R_system);
112 
113  // We may need to localize a parallel solution
114  sys.update();
115 
116  // We may need to correct a non-conforming solution
117  if (solver.exact_constraint_enforcement())
118  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
119 
120  // Do DiffSystem assembly
121  sys.assembly(true, false, !solver.exact_constraint_enforcement());
122  R_system.close();
123 
124  // Swap back
125  X_input.swap(X_system);
126  R_input.swap(R_system);
127 
128  // No errors, we hope
129  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
130  }
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
OStreamProxy out
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_preconditioner_apply()

PetscErrorCode libMesh::__libmesh_petsc_preconditioner_apply ( PC  ,
Vec  x,
Vec  y 
)

This function is called by PETSc to actually apply the preconditioner.

ctx will hold the Preconditioner.

Definition at line 93 of file petsc_linear_solver.C.

References libmesh_petsc_preconditioner_apply(), and PetscFunctionReturn().

94  {
95  PetscFunctionBegin;
96  libmesh_deprecated();
98  }
PetscErrorCode libmesh_petsc_preconditioner_apply(PC, Vec x, Vec y)
This function is called by PETSc to actually apply the preconditioner.
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_preconditioner_setup()

PetscErrorCode libMesh::__libmesh_petsc_preconditioner_setup ( PC  )

This function is called by PETSc to initialize the preconditioner.

ctx will hold the Preconditioner.

Definition at line 86 of file petsc_linear_solver.C.

References libmesh_petsc_preconditioner_setup(), and PetscFunctionReturn().

87  {
88  PetscFunctionBegin;
89  libmesh_deprecated();
91  }
PetscErrorCode libmesh_petsc_preconditioner_setup(PC)
This function is called by PETSc to initialize the preconditioner.
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_snes_fd_residual()

PetscErrorCode libMesh::__libmesh_petsc_snes_fd_residual ( SNES  snes,
Vec  x,
Vec  r,
void *  ctx 
)

Definition at line 297 of file petsc_nonlinear_solver.C.

References ctx, libmesh_petsc_snes_fd_residual(), and PetscFunctionReturn().

298  {
299  PetscFunctionBegin;
300  libmesh_deprecated();
302  }
PetscErrorCode libmesh_petsc_snes_fd_residual(SNES, Vec x, Vec r, void *ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_snes_jacobian()

PetscErrorCode libMesh::__libmesh_petsc_snes_jacobian ( SNES  snes,
Vec  x,
Mat  jac,
Mat  pc,
void *  ctx 
)

Definition at line 583 of file petsc_nonlinear_solver.C.

References ctx, libmesh_petsc_snes_jacobian(), and PetscFunctionReturn().

584  {
585  PetscFunctionBegin;
586  libmesh_deprecated();
588  }
PetscErrorCode libmesh_petsc_snes_jacobian(SNES, Vec x, Mat jac, Mat pc, void *ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_snes_mffd_interface()

PetscErrorCode libMesh::__libmesh_petsc_snes_mffd_interface ( void *  ctx,
Vec  x,
Vec  r 
)

Definition at line 431 of file petsc_nonlinear_solver.C.

References ctx, libmesh_petsc_snes_mffd_interface(), and PetscFunctionReturn().

432  {
433  PetscFunctionBegin;
434  libmesh_deprecated();
436  }
PetscErrorCode libmesh_petsc_snes_mffd_interface(void *ctx, Vec x, Vec r)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_snes_monitor()

PetscErrorCode libMesh::__libmesh_petsc_snes_monitor ( SNES  ,
PetscInt  its,
PetscReal  fnorm,
void *   
)

Definition at line 155 of file petsc_nonlinear_solver.C.

References libmesh_petsc_snes_monitor(), and PetscFunctionReturn().

156  {
157  PetscFunctionBegin;
158  libmesh_deprecated();
159  PetscFunctionReturn(libmesh_petsc_snes_monitor(nullptr, its, fnorm, nullptr));
160  }
PetscErrorCode libmesh_petsc_snes_monitor(SNES, PetscInt its, PetscReal fnorm, void *)
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_snes_postcheck()

PetscErrorCode libMesh::__libmesh_petsc_snes_postcheck ( SNESLineSearch  ,
Vec  x,
Vec  y,
Vec  w,
PetscBool *  changed_y,
PetscBool *  changed_w,
void *  context 
)

Definition at line 674 of file petsc_nonlinear_solver.C.

References libmesh_petsc_snes_postcheck(), and PetscFunctionReturn().

675  {
676  PetscFunctionBegin;
677  libmesh_deprecated();
678  PetscFunctionReturn(libmesh_petsc_snes_postcheck(nullptr, x, y, w, changed_y, changed_w, context));
679  }
PetscErrorCode libmesh_petsc_snes_postcheck(SNESLineSearch, Vec x, Vec y, Vec w, PetscBool *changed_y, PetscBool *changed_w, void *context)
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_petsc_snes_residual()

PetscErrorCode libMesh::__libmesh_petsc_snes_residual ( SNES  snes,
Vec  x,
Vec  r,
void *  ctx 
)

Definition at line 242 of file petsc_nonlinear_solver.C.

References ctx, libmesh_petsc_snes_residual(), and PetscFunctionReturn().

243  {
244  PetscFunctionBegin;
245  libmesh_deprecated();
247  }
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)
PetscErrorCode libmesh_petsc_snes_residual(SNES, Vec x, Vec r, void *ctx)

◆ __libmesh_tao_equality_constraints()

PetscErrorCode libMesh::__libmesh_tao_equality_constraints ( Tao  tao,
Vec  x,
Vec  ce,
void *  ctx 
)

Definition at line 206 of file tao_optimization_solver.C.

References libMesh::ParallelObject::comm(), ctx, libMesh::OptimizationSystem::ComputeEqualityConstraints::equality_constraints(), libMesh::OptimizationSolver< T >::equality_constraints_object, libmesh_assert(), PetscFunctionReturn(), libMesh::PetscVector< T >::swap(), libMesh::OptimizationSolver< T >::system(), and libMesh::PetscVector< T >::zero().

Referenced by libMesh::TaoOptimizationSolver< T >::solve().

207  {
208  PetscFunctionBegin;
209 
210  LOG_SCOPE("equality_constraints()", "TaoOptimizationSolver");
211 
212  libmesh_assert(x);
213  libmesh_assert(ce);
215 
216  // ctx should be a pointer to the solver (it was passed in as void *)
218  static_cast<TaoOptimizationSolver<Number> *> (ctx);
219 
220  OptimizationSystem & sys = solver->system();
221 
222  // We'll use current_local_solution below, so let's ensure that it's consistent
223  // with the vector x that was passed in.
224  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
225  PetscVector<Number> X(x, sys.comm());
226 
227  // Perform a swap so that sys.solution points to the input vector
228  // "x", update sys.current_local_solution based on "x", then swap
229  // back.
230  X.swap(X_sys);
231  sys.update();
232  X.swap(X_sys);
233 
234  // We'll also pass the constraints vector ce into the assembly routine
235  // so let's make a PETSc vector for that too.
236  PetscVector<Number> eq_constraints(ce, sys.comm());
237 
238  // Clear the gradient prior to assembly
239  eq_constraints.zero();
240 
241  // Enforce constraints exactly on the current_local_solution.
242  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
243 
244  if (solver->equality_constraints_object != nullptr)
245  solver->equality_constraints_object->equality_constraints(*(sys.current_local_solution), eq_constraints, sys);
246  else
247  libmesh_error_msg("Constraints function not defined in __libmesh_tao_equality_constraints");
248 
249  eq_constraints.close();
250 
251  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
252  }
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_tao_equality_constraints_jacobian()

PetscErrorCode libMesh::__libmesh_tao_equality_constraints_jacobian ( Tao  tao,
Vec  x,
Mat  J,
Mat  Jpre,
void *  ctx 
)

Definition at line 258 of file tao_optimization_solver.C.

References libMesh::ParallelObject::comm(), ctx, libMesh::OptimizationSystem::ComputeEqualityConstraintsJacobian::equality_constraints_jacobian(), libMesh::OptimizationSolver< T >::equality_constraints_jacobian_object, libmesh_assert(), PetscFunctionReturn(), libMesh::PetscVector< T >::swap(), and libMesh::OptimizationSolver< T >::system().

Referenced by libMesh::TaoOptimizationSolver< T >::solve().

259  {
260  PetscFunctionBegin;
261 
262  LOG_SCOPE("equality_constraints_jacobian()", "TaoOptimizationSolver");
263 
264  libmesh_assert(x);
265  libmesh_assert(J);
266  libmesh_assert(Jpre);
267 
268  // ctx should be a pointer to the solver (it was passed in as void *)
270  static_cast<TaoOptimizationSolver<Number> *> (ctx);
271 
272  OptimizationSystem & sys = solver->system();
273 
274  // We'll use current_local_solution below, so let's ensure that it's consistent
275  // with the vector x that was passed in.
276  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
277  PetscVector<Number> X(x, sys.comm());
278 
279  // Perform a swap so that sys.solution points to the input vector
280  // "x", update sys.current_local_solution based on "x", then swap
281  // back.
282  X.swap(X_sys);
283  sys.update();
284  X.swap(X_sys);
285 
286  // Let's also wrap J and Jpre in PetscMatrix objects for convenience
287  PetscMatrix<Number> J_petsc(J, sys.comm());
288  PetscMatrix<Number> Jpre_petsc(Jpre, sys.comm());
289 
290  // Enforce constraints exactly on the current_local_solution.
291  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
292 
293  if (solver->equality_constraints_jacobian_object != nullptr)
294  solver->equality_constraints_jacobian_object->equality_constraints_jacobian(*(sys.current_local_solution), J_petsc, sys);
295  else
296  libmesh_error_msg("Constraints function not defined in __libmesh_tao_equality_constraints_jacobian");
297 
298  J_petsc.close();
299  Jpre_petsc.close();
300 
301  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
302  }
template class LIBMESH_EXPORT PetscMatrix< Number >
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_tao_gradient()

PetscErrorCode libMesh::__libmesh_tao_gradient ( Tao  tao,
Vec  x,
Vec  g,
void *  ctx 
)

Definition at line 98 of file tao_optimization_solver.C.

References libMesh::ParallelObject::comm(), ctx, libMesh::OptimizationSystem::ComputeGradient::gradient(), libMesh::OptimizationSolver< T >::gradient_object, libmesh_assert(), PetscFunctionReturn(), libMesh::PetscVector< T >::swap(), libMesh::OptimizationSolver< T >::system(), and libMesh::PetscVector< T >::zero().

Referenced by libMesh::TaoOptimizationSolver< T >::solve().

99  {
100  PetscFunctionBegin;
101 
102  LOG_SCOPE("gradient()", "TaoOptimizationSolver");
103 
104  libmesh_assert(x);
105  libmesh_assert(g);
107 
108  // ctx should be a pointer to the solver (it was passed in as void *)
110  static_cast<TaoOptimizationSolver<Number> *> (ctx);
111 
112  OptimizationSystem & sys = solver->system();
113 
114  // We'll use current_local_solution below, so let's ensure that it's consistent
115  // with the vector x that was passed in.
116  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
117  PetscVector<Number> X(x, sys.comm());
118 
119  // Perform a swap so that sys.solution points to the input vector
120  // "x", update sys.current_local_solution based on "x", then swap
121  // back.
122  X.swap(X_sys);
123  sys.update();
124  X.swap(X_sys);
125 
126  // We'll also pass the gradient in to the assembly routine
127  // so let's make a PETSc vector for that too.
128  PetscVector<Number> gradient(g, sys.comm());
129 
130  // Clear the gradient prior to assembly
131  gradient.zero();
132 
133  // Enforce constraints exactly on the current_local_solution.
134  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
135 
136  if (solver->gradient_object != nullptr)
137  solver->gradient_object->gradient(*(sys.current_local_solution), gradient, sys);
138  else
139  libmesh_error_msg("Gradient function not defined in __libmesh_tao_gradient");
140 
141  gradient.close();
142 
143  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
144  }
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_tao_hessian()

PetscErrorCode libMesh::__libmesh_tao_hessian ( Tao  tao,
Vec  x,
Mat  h,
Mat  pc,
void *  ctx 
)

Definition at line 149 of file tao_optimization_solver.C.

References libMesh::SparseMatrix< T >::attach_dof_map(), libMesh::ParallelObject::comm(), ctx, libMesh::OptimizationSystem::ComputeHessian::hessian(), libMesh::OptimizationSolver< T >::hessian_object, libmesh_assert(), PetscFunctionReturn(), libMesh::PetscVector< T >::swap(), and libMesh::OptimizationSolver< T >::system().

Referenced by libMesh::TaoOptimizationSolver< T >::solve().

150  {
151  PetscFunctionBegin;
152 
153  LOG_SCOPE("hessian()", "TaoOptimizationSolver");
154 
155  libmesh_assert(x);
156  libmesh_assert(h);
157  libmesh_assert(pc);
159 
160  // ctx should be a pointer to the solver (it was passed in as void *)
162  static_cast<TaoOptimizationSolver<Number> *> (ctx);
163 
164  OptimizationSystem & sys = solver->system();
165 
166  // We'll use current_local_solution below, so let's ensure that it's consistent
167  // with the vector x that was passed in.
168  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
169  PetscVector<Number> X(x, sys.comm());
170 
171  // Perform a swap so that sys.solution points to the input vector
172  // "x", update sys.current_local_solution based on "x", then swap
173  // back.
174  X.swap(X_sys);
175  sys.update();
176  X.swap(X_sys);
177 
178  // Let's also wrap pc and h in PetscMatrix objects for convenience
179  PetscMatrix<Number> PC(pc, sys.comm());
180  PetscMatrix<Number> hessian(h, sys.comm());
181  PC.attach_dof_map(sys.get_dof_map());
182  hessian.attach_dof_map(sys.get_dof_map());
183 
184  // Enforce constraints exactly on the current_local_solution.
185  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
186 
187  if (solver->hessian_object != nullptr)
188  {
189  // Following PetscNonlinearSolver by passing in PC. It's not clear
190  // why we pass in PC and not hessian though?
191  solver->hessian_object->hessian(*(sys.current_local_solution), PC, sys);
192  }
193  else
194  libmesh_error_msg("Hessian function not defined in __libmesh_tao_hessian");
195 
196  PC.close();
197  hessian.close();
198 
199  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
200  }
template class LIBMESH_EXPORT PetscMatrix< Number >
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_tao_inequality_constraints()

PetscErrorCode libMesh::__libmesh_tao_inequality_constraints ( Tao  tao,
Vec  x,
Vec  cineq,
void *  ctx 
)

Definition at line 307 of file tao_optimization_solver.C.

References libMesh::ParallelObject::comm(), ctx, libMesh::OptimizationSystem::ComputeInequalityConstraints::inequality_constraints(), libMesh::OptimizationSolver< T >::inequality_constraints_object, libmesh_assert(), PetscFunctionReturn(), libMesh::PetscVector< T >::swap(), libMesh::OptimizationSolver< T >::system(), and libMesh::PetscVector< T >::zero().

Referenced by libMesh::TaoOptimizationSolver< T >::solve().

308  {
309  PetscFunctionBegin;
310 
311  LOG_SCOPE("inequality_constraints()", "TaoOptimizationSolver");
312 
313  libmesh_assert(x);
314  libmesh_assert(cineq);
316 
317  // ctx should be a pointer to the solver (it was passed in as void *)
319  static_cast<TaoOptimizationSolver<Number> *> (ctx);
320 
321  OptimizationSystem & sys = solver->system();
322 
323  // We'll use current_local_solution below, so let's ensure that it's consistent
324  // with the vector x that was passed in.
325  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
326  PetscVector<Number> X(x, sys.comm());
327 
328  // Perform a swap so that sys.solution points to the input vector
329  // "x", update sys.current_local_solution based on "x", then swap
330  // back.
331  X.swap(X_sys);
332  sys.update();
333  X.swap(X_sys);
334 
335  // We'll also pass the constraints vector ce into the assembly routine
336  // so let's make a PETSc vector for that too.
337  PetscVector<Number> ineq_constraints(cineq, sys.comm());
338 
339  // Clear the gradient prior to assembly
340  ineq_constraints.zero();
341 
342  // Enforce constraints exactly on the current_local_solution.
343  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
344 
345  if (solver->inequality_constraints_object != nullptr)
346  solver->inequality_constraints_object->inequality_constraints(*(sys.current_local_solution), ineq_constraints, sys);
347  else
348  libmesh_error_msg("Constraints function not defined in __libmesh_tao_inequality_constraints");
349 
350  ineq_constraints.close();
351 
352  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
353  }
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_tao_inequality_constraints_jacobian()

PetscErrorCode libMesh::__libmesh_tao_inequality_constraints_jacobian ( Tao  tao,
Vec  x,
Mat  J,
Mat  Jpre,
void *  ctx 
)

Definition at line 359 of file tao_optimization_solver.C.

References libMesh::ParallelObject::comm(), ctx, libMesh::OptimizationSystem::ComputeInequalityConstraintsJacobian::inequality_constraints_jacobian(), libMesh::OptimizationSolver< T >::inequality_constraints_jacobian_object, libmesh_assert(), PetscFunctionReturn(), libMesh::PetscVector< T >::swap(), and libMesh::OptimizationSolver< T >::system().

Referenced by libMesh::TaoOptimizationSolver< T >::solve().

360  {
361  PetscFunctionBegin;
362 
363  LOG_SCOPE("inequality_constraints_jacobian()", "TaoOptimizationSolver");
364 
365  libmesh_assert(x);
366  libmesh_assert(J);
367  libmesh_assert(Jpre);
368 
369  // ctx should be a pointer to the solver (it was passed in as void *)
371  static_cast<TaoOptimizationSolver<Number> *> (ctx);
372 
373  OptimizationSystem & sys = solver->system();
374 
375  // We'll use current_local_solution below, so let's ensure that it's consistent
376  // with the vector x that was passed in.
377  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
378  PetscVector<Number> X(x, sys.comm());
379 
380  // Perform a swap so that sys.solution points to the input vector
381  // "x", update sys.current_local_solution based on "x", then swap
382  // back.
383  X.swap(X_sys);
384  sys.update();
385  X.swap(X_sys);
386 
387  // Let's also wrap J and Jpre in PetscMatrix objects for convenience
388  PetscMatrix<Number> J_petsc(J, sys.comm());
389  PetscMatrix<Number> Jpre_petsc(Jpre, sys.comm());
390 
391  // Enforce constraints exactly on the current_local_solution.
392  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
393 
394  if (solver->inequality_constraints_jacobian_object != nullptr)
395  solver->inequality_constraints_jacobian_object->inequality_constraints_jacobian(*(sys.current_local_solution), J_petsc, sys);
396  else
397  libmesh_error_msg("Constraints function not defined in __libmesh_tao_inequality_constraints_jacobian");
398 
399  J_petsc.close();
400  Jpre_petsc.close();
401 
402  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
403  }
template class LIBMESH_EXPORT PetscMatrix< Number >
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ __libmesh_tao_objective()

PetscErrorCode libMesh::__libmesh_tao_objective ( Tao  tao,
Vec  x,
PetscReal *  objective,
void *  ctx 
)

Definition at line 50 of file tao_optimization_solver.C.

References libMesh::ParallelObject::comm(), ctx, libmesh_assert(), libMesh::OptimizationSystem::ComputeObjective::objective(), libMesh::OptimizationSolver< T >::objective_object, PetscFunctionReturn(), PS(), libMesh::PetscVector< T >::swap(), and libMesh::OptimizationSolver< T >::system().

Referenced by libMesh::TaoOptimizationSolver< T >::solve().

51  {
52  PetscFunctionBegin;
53 
54  LOG_SCOPE("objective()", "TaoOptimizationSolver");
55 
56  libmesh_assert(x);
57  libmesh_assert(objective);
59 
60  // ctx should be a pointer to the solver (it was passed in as void *)
62  static_cast<TaoOptimizationSolver<Number> *> (ctx);
63 
64  OptimizationSystem & sys = solver->system();
65 
66  // We'll use current_local_solution below, so let's ensure that it's consistent
67  // with the vector x that was passed in.
68  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
69  PetscVector<Number> X(x, sys.comm());
70 
71  // Perform a swap so that sys.solution points to the input vector
72  // "x", update sys.current_local_solution based on "x", then swap
73  // back.
74  X.swap(X_sys);
75  sys.update();
76  X.swap(X_sys);
77 
78  // Enforce constraints (if any) exactly on the
79  // current_local_solution. This is the solution vector that is
80  // actually used in the computation of the objective function
81  // below, and is not locked by debug-enabled PETSc the way that
82  // the solution vector is.
83  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
84 
85  if (solver->objective_object != nullptr)
86  (*objective) = PS(solver->objective_object->objective(*(sys.current_local_solution), sys));
87  else
88  libmesh_error_msg("Objective function not defined in __libmesh_tao_objective");
89 
90  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
91  }
template class LIBMESH_EXPORT PetscVector< Number >
PetscScalar PS(T val)
Definition: petsc_macro.h:168
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ absolute_fuzzy_equals()

template<typename T , typename T2 >
bool libMesh::absolute_fuzzy_equals ( const T &  var1,
const T2 &  var2,
const Real  tol = TOLERANCE * TOLERANCE 
)

Function to check whether two variables are equal within an absolute tolerance.

Parameters
var1The first variable to be checked
var2The second variable to be checked
tolThe tolerance to be used
Returns
true if var1 and var2 are equal within tol

Definition at line 64 of file fuzzy_equals.h.

References l1_norm_diff().

Referenced by libMesh::TypeVector< Real >::absolute_fuzzy_equals(), and relative_fuzzy_equals().

65 {
66  return MetaPhysicL::raw_value(l1_norm_diff(var1, var2)) <= tol;
67 }
auto l1_norm_diff(const T &var1, const T2 &var2)
Computes the L1 norm of the diff between var1 and var2.
Definition: fuzzy_equals.h:49

◆ add_command_line_name()

void libMesh::add_command_line_name ( const std::string &  name)

Add a name to the set of queried command-line names.

Definition at line 956 of file libmesh.C.

References libmesh_assert(), and libMesh::Quality::name().

Referenced by add_command_line_names(), command_line_next(), command_line_value(), command_line_vector(), and on_command_line().

957 {
958  // Users had better not be asking about an empty string
959  libmesh_assert(!name.empty());
960 
961  static std::mutex command_line_names_mutex;
962  std::scoped_lock lock(command_line_names_mutex);
963 
964  command_line_name_set.insert(name);
965 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:42
libmesh_assert(ctx)

◆ add_command_line_names()

void libMesh::add_command_line_names ( const GetPot &  getpot)

Merge a GetPot object's requested names into the set of queried command-line names.

Definition at line 969 of file libmesh.C.

References add_command_line_name(), and libMesh::Quality::name().

Referenced by main().

970 {
971  for (auto & getter : {&GetPot::get_requested_arguments,
972  &GetPot::get_requested_variables,
973  &GetPot::get_requested_sections})
974  for (const std::string & name : (getpot.*getter)())
976 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:42
void add_command_line_name(const std::string &name)
Add a name to the set of queried command-line names.
Definition: libmesh.C:956

◆ as_range() [1/2]

template<typename IndexType >
SimpleRange<IndexType> libMesh::as_range ( const std::pair< IndexType, IndexType > &  p)

Helper function that allows us to treat a homogenous pair as a range.

Useful for writing range-based for loops over the pair returned by std::equal_range() and std::map::equal_range().

Definition at line 57 of file simple_range.h.

Referenced by ContrivedPartitioner::_do_partition(), libMesh::MeshRefinement::_refine_elements(), libMesh::BoundaryInfo::add_edge(), libMesh::BoundaryInfo::add_node(), libMesh::BoundaryInfo::add_shellface(), libMesh::BoundaryInfo::add_side(), libMesh::DofMap::allgather_recursive_constraints(), assemble_poisson(), libMesh::AbaqusIO::assign_sideset_ids(), libMesh::BoundaryInfo::boundary_ids(), libMesh::Partitioner::build_graph(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_side_list_from_node_list(), libMesh::Singleton::cleanup(), libMesh::CentroidPartitioner::compute_vertex_avgs(), connect_children(), libMesh::UnstructuredMesh::contract(), libMesh::UnstructuredMesh::create_submesh(), libMesh::MeshCommunication::delete_remote_elements(), DMCreateFieldDecomposition_libMesh(), libMesh::DTKAdapter::DTKAdapter(), libMesh::BoundaryInfo::edge_boundary_ids(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::LocationMap< T >::find(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::RBConstructionBase< CondensedEigenSystem >::get_params_from_training_set(), libMesh::DTKAdapter::get_semi_local_nodes(), libMesh::UNVIO::groups_in(), libMesh::BoundaryInfo::has_boundary_id(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::join(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_remote_elems(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::DofMap::merge_ghost_functor_outputs(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshTools::n_active_levels(), libMesh::CheckpointIO::n_active_levels_in(), libMesh::MeshTools::n_levels(), libMesh::MeshTools::n_local_levels(), libMesh::MeshTools::n_non_subactive_elem_of_type_at_level(), libMesh::MeshTools::n_p_levels(), libMesh::SiblingCoupling::operator()(), OverlappingCouplingFunctor::operator()(), AugmentSparsityOnInterface::operator()(), AugmentSparsityOnNodes::operator()(), libMesh::OverlapCoupling::operator()(), libMesh::GhostPointNeighbors::operator()(), libMesh::NonManifoldGhostingFunctor::operator()(), libMesh::DefaultCoupling::operator()(), libMesh::PointNeighborCoupling::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::MetisPartitioner::partition_range(), libMesh::LinearPartitioner::partition_range(), libMesh::SFCPartitioner::partition_range(), libMesh::MappedSubdomainPartitioner::partition_range(), libMesh::Partitioner::partition_unpartitioned_elements(), query_ghosting_functors(), libMesh::BoundaryInfo::raw_boundary_ids(), libMesh::BoundaryInfo::raw_edge_boundary_ids(), libMesh::BoundaryInfo::raw_shellface_boundary_ids(), libMesh::GmshIO::read_mesh(), libMesh::MeshBase::redistribute(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), libMesh::DofMap::scatter_constraints(), libMesh::Partitioner::set_node_processor_ids(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::BoundaryInfo::shellface_boundary_ids(), libMesh::BoundaryInfo::side_with_boundary_id(), libMesh::BoundaryInfo::sides_with_boundary_id(), libMesh::Partitioner::single_partition_range(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), libMesh::Parallel::sync_node_data_by_element_id_once(), RBParametersTest::testIteratorsWithSamples(), libMesh::BoundaryInfo::transfer_boundary_ids_from_children(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::MeshTools::volume(), libMesh::TecplotIO::write_binary(), libMesh::XdrIO::write_serialized_bcs_helper(), and libMesh::XdrIO::write_serialized_connectivity().

58 {
59  return {p.first, p.second};
60 }

◆ as_range() [2/2]

template<typename IndexType >
SimpleRange<IndexType> libMesh::as_range ( const IndexType &  first,
const IndexType &  second 
)

As above, but can be used in cases where a std::pair is not otherwise involved.

Definition at line 69 of file simple_range.h.

71 {
72  return {first, second};
73 }

◆ cast_int()

template<typename Tnew , typename Told >
Tnew libMesh::cast_int ( Told  oldvar)
inline

Definition at line 616 of file libmesh_common.h.

617 {
618  libmesh_assert_equal_to
619  (oldvar, static_cast<Told>(static_cast<Tnew>(oldvar)));
620 
621  return(static_cast<Tnew>(oldvar));
622 }

◆ cast_ptr()

template<typename Tnew , typename Told >
Tnew libMesh::cast_ptr ( Told *  oldvar)
inline

Definition at line 575 of file libmesh_common.h.

References demangle(), err, and libMesh::Quality::name().

Referenced by libMesh::Parameters::have_parameter(), and main().

576 {
577 #if !defined(NDEBUG) && defined(LIBMESH_HAVE_RTTI)
578  Tnew newvar = dynamic_cast<Tnew>(oldvar);
579  if (!newvar)
580  {
581  libMesh::err << "Failed to convert " << demangle(typeid(Told).name())
582  << " pointer to " << demangle(typeid(Tnew).name())
583  << std::endl;
584  libMesh::err << "The " << demangle(typeid(Told).name())
585  << " appears to be a "
586  << demangle(typeid(*oldvar).name()) << std::endl;
587  libmesh_error();
588  }
589  return newvar;
590 #else
591  return(static_cast<Tnew>(oldvar));
592 #endif
593 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:42
OStreamProxy err
std::string demangle(const char *name)
Mostly system independent demangler.

◆ cast_ref()

template<typename Tnew , typename Told >
Tnew libMesh::cast_ref ( Told &  oldvar)
inline

Definition at line 549 of file libmesh_common.h.

References demangle(), err, and libMesh::Quality::name().

550 {
551 #if !defined(NDEBUG) && defined(LIBMESH_HAVE_RTTI) && defined(LIBMESH_ENABLE_EXCEPTIONS)
552  try
553  {
554  Tnew newvar = dynamic_cast<Tnew>(oldvar);
555  return newvar;
556  }
557  catch (std::bad_cast &)
558  {
559  libMesh::err << "Failed to convert " << demangle(typeid(Told).name())
560  << " reference to " << demangle(typeid(Tnew).name())
561  << std::endl;
562  libMesh::err << "The " << demangle(typeid(Told).name())
563  << " appears to be a "
564  << demangle(typeid(*(&oldvar)).name()) << std::endl;
565  libmesh_error();
566  }
567 #else
568  return(static_cast<Tnew>(oldvar));
569 #endif
570 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:42
OStreamProxy err
std::string demangle(const char *name)
Mostly system independent demangler.

◆ closed()

bool libMesh::closed ( )

Checks that the library has been closed.

This should always return false when called from a library object. It is useful to libmesh_assert(!libMeshclosed()) in library object destructors.

Definition at line 283 of file libmesh.C.

References libMesh::libMeshPrivateData::_is_initialized.

Referenced by libMesh::PetscMatrix< T >::_get_submatrix(), libMesh::PetscMatrix< T >::add_sparse_matrix(), libMesh::PetscMatrix< T >::clone(), libMesh::PetscMatrix< T >::copy_from_hash(), libMesh::PetscMatrix< T >::create_submatrix_nosort(), libMesh::PetscMatrix< T >::get_row(), libMesh::LaspackVector< T >::l1_norm(), libMesh::EigenSparseVector< T >::l1_norm(), libMesh::EpetraVector< T >::l1_norm(), libMesh::LaspackVector< T >::l2_norm(), libMesh::EigenSparseVector< T >::l2_norm(), libMesh::EpetraVector< T >::l2_norm(), libMesh::LaspackVector< T >::linfty_norm(), libMesh::EigenSparseVector< T >::linfty_norm(), libMesh::EpetraVector< T >::linfty_norm(), libMesh::DistributedVector< T >::max(), libMesh::DistributedVector< T >::min(), libMesh::PetscMatrix< T >::norm(), libMesh::PetscVector< libMesh::Number >::norm(), libMesh::PetscMatrix< T >::operator()(), libMesh::EigenSparseVector< T >::operator*=(), libMesh::EpetraVector< T >::operator*=(), libMesh::DistributedVector< T >::operator+=(), libMesh::LaspackVector< T >::operator+=(), libMesh::EigenSparseVector< T >::operator+=(), libMesh::EpetraVector< T >::operator+=(), libMesh::PetscVector< libMesh::Number >::operator+=(), libMesh::DistributedVector< T >::operator-=(), libMesh::LaspackVector< T >::operator-=(), libMesh::EigenSparseVector< T >::operator-=(), libMesh::EpetraVector< T >::operator-=(), libMesh::PetscVector< libMesh::Number >::operator-=(), libMesh::EigenSparseVector< T >::operator/=(), libMesh::EpetraVector< T >::operator/=(), libMesh::LaspackVector< T >::operator=(), libMesh::EigenSparseVector< T >::operator=(), libMesh::PetscVector< libMesh::Number >::operator=(), libMesh::PetscMatrix< T >::print_matlab(), libMesh::PetscVector< libMesh::Number >::print_matlab(), libMesh::PetscMatrix< T >::print_personal(), libMesh::NumericVector< Number >::readable(), libMesh::PetscMatrix< T >::scale(), libMesh::SparseMatrix< ValOut >::scale(), libMesh::LaspackVector< T >::sum(), libMesh::EigenSparseVector< T >::sum(), libMesh::EpetraVector< T >::sum(), libMesh::PetscVector< libMesh::Number >::sum(), libMesh::DistributedVector< T >::zero(), libMesh::LaspackVector< T >::zero(), libMesh::EigenSparseVector< T >::zero(), libMesh::EpetraVector< T >::zero(), libMesh::PetscVector< libMesh::Number >::zero(), libMesh::PetscMatrix< T >::zero_clone(), libMesh::LibMeshInit::~LibMeshInit(), libMesh::MeshBase::~MeshBase(), libMesh::System::~System(), and libMesh::UnstructuredMesh::~UnstructuredMesh().

284 {
286 }
bool _is_initialized
Flag that tells if init() has been called.
Definition: libmesh.C:257

◆ command_line_names()

std::vector< std::string > libMesh::command_line_names ( )
Returns
The set of names which this program has queried or expected to query via the libMesh command line interface.

This is useful for detecting any future conflicts with other packages (such as PETSc) which manage command line values, and for avoiding UFO warnings from such packages.

Definition at line 979 of file libmesh.C.

Referenced by libMesh::LibMeshInit::~LibMeshInit().

980 {
981  return std::vector<std::string>(command_line_name_set.begin(),
982  command_line_name_set.end());
983 }

◆ command_line_next()

template<typename T >
T libMesh::command_line_next ( std::string  name,
default_value 
)

Use GetPot's search()/next() functions to get following arguments from the command line.

For backwards compatibility with past option naming conventions, libMesh searches for the given argument first in its original form, then with all underscores changed to dashes, then with all dashes (except any leading dashes) changed to underscores, and returns true if any of the above finds a match.

This routine manipulates the command_line cursor and should not be called concurrently with similar utilities in multiple threads.

Definition at line 1078 of file libmesh.C.

References add_command_line_name(), libmesh_assert(), libMesh::Quality::name(), on_command_line(), and value.

Referenced by assert_argument(), libMesh::NloptOptimizationSolver< T >::init(), libMesh::PetscDMWrapper::init_petscdm(), main(), GetPotTest::testCommandLine(), and libMesh::DofMap::use_coupled_neighbor_dofs().

1079 {
1080  // Make sure the command line parser is ready for use
1081  libmesh_assert(command_line.get());
1082 
1083  // Keep track of runtime queries, for later
1085 
1086  // on_command_line also puts the command_line cursor in the spot we
1087  // need
1088  if (on_command_line(name))
1089  return command_line->next(value);
1090 
1091  return value;
1092 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:42
libmesh_assert(ctx)
void add_command_line_name(const std::string &name)
Add a name to the set of queried command-line names.
Definition: libmesh.C:956
static const bool value
Definition: xdr_io.C:54
bool on_command_line(std::string arg)
Definition: libmesh.C:987

◆ command_line_next< char >()

template LIBMESH_EXPORT char libMesh::command_line_next< char > ( std::string  ,
char   
)

◆ command_line_next< double >()

template LIBMESH_EXPORT double libMesh::command_line_next< double > ( std::string  ,
double   
)

◆ command_line_next< float >()

template LIBMESH_EXPORT float libMesh::command_line_next< float > ( std::string  ,
float   
)

◆ command_line_next< int >()

template LIBMESH_EXPORT int libMesh::command_line_next< int > ( std::string  ,
int   
)

◆ command_line_next< long double >()

template LIBMESH_EXPORT long double libMesh::command_line_next< long double > ( std::string  ,
long  double 
)

◆ command_line_next< Real >()

template LIBMESH_EXPORT Real libMesh::command_line_next< Real > ( std::string  ,
Real   
)

◆ command_line_next< short >()

template LIBMESH_EXPORT short libMesh::command_line_next< short > ( std::string  ,
short   
)

◆ command_line_next< std::string >()

template LIBMESH_EXPORT std::string libMesh::command_line_next< std::string > ( std::string  ,
std::string   
)

◆ command_line_next< unsigned char >()

template LIBMESH_EXPORT unsigned char libMesh::command_line_next< unsigned char > ( std::string  ,
unsigned  char 
)

◆ command_line_next< unsigned int >()

template LIBMESH_EXPORT unsigned int libMesh::command_line_next< unsigned int > ( std::string  ,
unsigned  int 
)

◆ command_line_next< unsigned short >()

template LIBMESH_EXPORT unsigned short libMesh::command_line_next< unsigned short > ( std::string  ,
unsigned  short 
)

◆ command_line_value() [1/2]

template<typename T >
T libMesh::command_line_value ( const std::string &  name,
value 
)
Returns
The value associated with name on the command line if it is specified, otherwise return the default, provided value. A second template function is provided to support recognizing multiple variations of a given option

This routine manipulates the command_line cursor and should not be called concurrently with similar utilities in multiple threads.

Definition at line 1024 of file libmesh.C.

References add_command_line_name(), libmesh_assert(), libMesh::Quality::name(), and value.

Referenced by Biharmonic::Biharmonic(), libMesh::DistributedMesh::DistributedMesh(), main(), petsc_auto_fieldsplit(), and libMesh::ReplicatedMesh::ReplicatedMesh().

1025 {
1026  // Make sure the command line parser is ready for use
1027  libmesh_assert(command_line.get());
1028 
1029  // only if the variable exists in the file
1030  if (command_line->have_variable(name))
1031  {
1032  value = (*command_line)(name, value);
1033 
1034  // Keep track of runtime queries, for later. GetPot splits
1035  // foo=bar into a separate name=value, so we can query for the
1036  // name, but as far as PETSc is concerned that's one CLI
1037  // argument. We'll store it that way.
1038  const std::string stringvalue =
1039  (*command_line)(name, std::string());
1040  add_command_line_name(name+"="+stringvalue);
1041  }
1042 
1043  return value;
1044 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:42
libmesh_assert(ctx)
void add_command_line_name(const std::string &name)
Add a name to the set of queried command-line names.
Definition: libmesh.C:956
static const bool value
Definition: xdr_io.C:54

◆ command_line_value() [2/2]

template<typename T >
T libMesh::command_line_value ( const std::vector< std::string > &  names,
value 
)

Definition at line 1047 of file libmesh.C.

References add_command_line_name(), libmesh_assert(), and value.

1048 {
1049  // Make sure the command line parser is ready for use
1050  libmesh_assert(command_line.get());
1051 
1052  // Keep track of runtime queries, for later
1053  for (const auto & entry : names)
1054  {
1055  // Keep track of runtime queries, for later. GetPot splits
1056  // foo=bar into a separate name=value, so we can query for the
1057  // name, but as far as PETSc is concerned that's one CLI
1058  // argument. We'll store it that way.
1059  const std::string stringvalue =
1060  (*command_line)(entry, std::string());
1061  add_command_line_name(entry+"="+stringvalue);
1062  }
1063 
1064  // Check for multiple options (return the first that matches)
1065  for (const auto & entry : names)
1066  if (command_line->have_variable(entry))
1067  {
1068  value = (*command_line)(entry, value);
1069  break;
1070  }
1071 
1072  return value;
1073 }
libmesh_assert(ctx)
void add_command_line_name(const std::string &name)
Add a name to the set of queried command-line names.
Definition: libmesh.C:956
static const bool value
Definition: xdr_io.C:54

◆ command_line_value< char >() [1/2]

template LIBMESH_EXPORT char libMesh::command_line_value< char > ( const std::string &  ,
char   
)

◆ command_line_value< char >() [2/2]

template LIBMESH_EXPORT char libMesh::command_line_value< char > ( const std::vector< std::string > &  ,
char   
)

◆ command_line_value< double >() [1/2]

template LIBMESH_EXPORT double libMesh::command_line_value< double > ( const std::string &  ,
double   
)

◆ command_line_value< double >() [2/2]

template LIBMESH_EXPORT double libMesh::command_line_value< double > ( const std::vector< std::string > &  ,
double   
)

◆ command_line_value< float >() [1/2]

template LIBMESH_EXPORT float libMesh::command_line_value< float > ( const std::string &  ,
float   
)

◆ command_line_value< float >() [2/2]

template LIBMESH_EXPORT float libMesh::command_line_value< float > ( const std::vector< std::string > &  ,
float   
)

◆ command_line_value< int >() [1/2]

template LIBMESH_EXPORT int libMesh::command_line_value< int > ( const std::string &  ,
int   
)

◆ command_line_value< int >() [2/2]

template LIBMESH_EXPORT int libMesh::command_line_value< int > ( const std::vector< std::string > &  ,
int   
)

◆ command_line_value< long double >() [1/2]

template LIBMESH_EXPORT long double libMesh::command_line_value< long double > ( const std::string &  ,
long  double 
)

◆ command_line_value< long double >() [2/2]

template LIBMESH_EXPORT long double libMesh::command_line_value< long double > ( const std::vector< std::string > &  ,
long  double 
)

◆ command_line_value< Real >() [1/2]

template LIBMESH_EXPORT Real libMesh::command_line_value< Real > ( const std::string &  ,
Real   
)

◆ command_line_value< Real >() [2/2]

template LIBMESH_EXPORT Real libMesh::command_line_value< Real > ( const std::vector< std::string > &  ,
Real   
)

◆ command_line_value< short >() [1/2]

template LIBMESH_EXPORT short libMesh::command_line_value< short > ( const std::string &  ,
short   
)

◆ command_line_value< short >() [2/2]

template LIBMESH_EXPORT short libMesh::command_line_value< short > ( const std::vector< std::string > &  ,
short   
)

◆ command_line_value< std::string >() [1/2]

template LIBMESH_EXPORT std::string libMesh::command_line_value< std::string > ( const std::string &  ,
std::string   
)

◆ command_line_value< std::string >() [2/2]

template LIBMESH_EXPORT std::string libMesh::command_line_value< std::string > ( const std::vector< std::string > &  ,
std::string   
)

◆ command_line_value< unsigned char >() [1/2]

template LIBMESH_EXPORT unsigned char libMesh::command_line_value< unsigned char > ( const std::string &  ,
unsigned  char 
)

◆ command_line_value< unsigned char >() [2/2]

template LIBMESH_EXPORT unsigned char libMesh::command_line_value< unsigned char > ( const std::vector< std::string > &  ,
unsigned  char 
)

◆ command_line_value< unsigned int >() [1/2]

template LIBMESH_EXPORT unsigned int libMesh::command_line_value< unsigned int > ( const std::string &  ,
unsigned  int 
)

◆ command_line_value< unsigned int >() [2/2]

template LIBMESH_EXPORT unsigned int libMesh::command_line_value< unsigned int > ( const std::vector< std::string > &  ,
unsigned  int 
)

◆ command_line_value< unsigned short >() [1/2]

template LIBMESH_EXPORT unsigned short libMesh::command_line_value< unsigned short > ( const std::string &  ,
unsigned  short 
)

◆ command_line_value< unsigned short >() [2/2]

template LIBMESH_EXPORT unsigned short libMesh::command_line_value< unsigned short > ( const std::vector< std::string > &  ,
unsigned  short 
)

◆ command_line_vector()

template<typename T >
void libMesh::command_line_vector ( const std::string &  name,
std::vector< T > &  vec 
)
Returns
The array of values associated with name on the command line if it is specified, otherwise return the default, provided array.

This routine manipulates the command_line cursor and should not be called concurrently with similar utilities in multiple threads.

Definition at line 1097 of file libmesh.C.

References add_command_line_name(), libmesh_assert(), and libMesh::Quality::name().

Referenced by Biharmonic::Biharmonic(), and main().

1098 {
1099  // Make sure the command line parser is ready for use
1100  libmesh_assert(command_line.get());
1101 
1102  // Keep track of runtime queries, for later
1104 
1105  // only if the variable exists on the command line
1106  if (command_line->have_variable(name))
1107  {
1108  unsigned size = command_line->vector_variable_size(name);
1109  vec.resize(size);
1110 
1111  for (unsigned i=0; i<size; ++i)
1112  vec[i] = (*command_line)(name, vec[i], i);
1113  }
1114 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:42
libmesh_assert(ctx)
void add_command_line_name(const std::string &name)
Add a name to the set of queried command-line names.
Definition: libmesh.C:956

◆ command_line_vector< char >()

template LIBMESH_EXPORT void libMesh::command_line_vector< char > ( const std::string &  ,
std::vector< char > &   
)

◆ command_line_vector< double >()

template LIBMESH_EXPORT void libMesh::command_line_vector< double > ( const std::string &  ,
std::vector< double > &   
)

◆ command_line_vector< float >()

template LIBMESH_EXPORT void libMesh::command_line_vector< float > ( const std::string &  ,
std::vector< float > &   
)

◆ command_line_vector< int >()

template LIBMESH_EXPORT void libMesh::command_line_vector< int > ( const std::string &  ,
std::vector< int > &   
)

◆ command_line_vector< long double >()

template LIBMESH_EXPORT void libMesh::command_line_vector< long double > ( const std::string &  ,
std::vector< long double > &   
)

◆ command_line_vector< Real >()

template LIBMESH_EXPORT void libMesh::command_line_vector< Real > ( const std::string &  ,
std::vector< Real > &   
)

◆ command_line_vector< short >()

template LIBMESH_EXPORT void libMesh::command_line_vector< short > ( const std::string &  ,
std::vector< short > &   
)

◆ command_line_vector< unsigned char >()

template LIBMESH_EXPORT void libMesh::command_line_vector< unsigned char > ( const std::string &  ,
std::vector< unsigned char > &   
)

◆ command_line_vector< unsigned int >()

template LIBMESH_EXPORT void libMesh::command_line_vector< unsigned int > ( const std::string &  ,
std::vector< unsigned int > &   
)

◆ command_line_vector< unsigned short >()

template LIBMESH_EXPORT void libMesh::command_line_vector< unsigned short > ( const std::string &  ,
std::vector< unsigned short > &   
)

◆ compute_error()

Number libMesh::compute_error ( const Point p,
const Parameters params,
const std::string &  ,
const std::string &  unknown_name 
)
inline

Definition at line 36 of file exact_soln.h.

References libMesh::Parameters::get().

Referenced by main().

40 {
41  const auto * const error_obj = params.get<const ExactSoln *>(unknown_name + "_exact_sol");
42  return (*error_obj)(p);
43 }

◆ compute_qp_soln()

template<typename SolnType , typename PhiType >
void libMesh::compute_qp_soln ( std::vector< SolnType > &  qp_vec,
const unsigned int  n_qps,
const std::vector< std::vector< PhiType >> &  phi,
const std::vector< Number > &  dof_values 
)

Definition at line 36 of file hdg_problem.C.

References index_range(), libmesh_assert(), and make_range().

Referenced by alternative_fe_assembly(), compute_enriched_soln(), libMesh::HDGProblem::jacobian(), and libMesh::HDGProblem::residual().

40 {
41  libmesh_assert(dof_values.size() == phi.size());
42  qp_vec.resize(n_qps);
43  for (auto & val : qp_vec)
44  val = {};
45  for (const auto i : index_range(phi))
46  {
47  const auto & qp_phis = phi[i];
48  libmesh_assert(qp_phis.size() == n_qps);
49  const auto sol = dof_values[i];
50  for (const auto qp : make_range(n_qps))
51  qp_vec[qp] += qp_phis[qp] * sol;
52  }
53 }
libmesh_assert(ctx)
IntRange< T > make_range(T beg, T end)
The 2-parameter make_range() helper function returns an IntRange<T> when both input parameters are of...
Definition: int_range.h:140
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:117

◆ connect_children()

void libMesh::connect_children ( const MeshBase mesh,
MeshBase::const_element_iterator  elem_it,
MeshBase::const_element_iterator  elem_end,
connected_elem_set_type connected_elements 
)

Definition at line 329 of file mesh_communication.C.

References as_range(), libMesh::Elem::child_ref_range(), libMesh::Elem::has_children(), libmesh_ignore(), mesh, and remote_elem.

Referenced by libMesh::MeshCommunication::delete_remote_elements(), and libMesh::CheckpointIO::write().

333 {
334  // None of these parameters are used when !LIBMESH_ENABLE_AMR.
335  libmesh_ignore(mesh, elem_it, elem_end, connected_elements);
336 
337 #ifdef LIBMESH_ENABLE_AMR
338  // Our XdrIO output needs inactive local elements to not have any
339  // remote_elem children. Let's make sure that doesn't happen.
340  //
341  for (const auto & elem : as_range(elem_it, elem_end))
342  {
343  if (elem->has_children())
344  for (auto & child : elem->child_ref_range())
345  if (&child != remote_elem)
346  connected_elements.insert(&child);
347  }
348 #endif // LIBMESH_ENABLE_AMR
349 }
MeshBase & mesh
void libmesh_ignore(const Args &...)
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
Helper function that allows us to treat a homogenous pair as a range.
Definition: simple_range.h:57
const RemoteElem * remote_elem
Definition: remote_elem.C:57

◆ connect_element_dependencies() [1/2]

void libMesh::connect_element_dependencies ( const MeshBase mesh,
connected_elem_set_type connected_elements,
connected_node_set_type connected_nodes 
)

Definition at line 383 of file mesh_communication.C.

References libmesh_assert(), and mesh.

Referenced by libMesh::MeshCommunication::delete_remote_elements(), and libMesh::CheckpointIO::write().

386 {
387  // We haven't examined any of these inputs for dependencies yet, so
388  // let's mark them all as to be examined now.
389  connected_elem_set_type new_connected_elements;
390  connected_node_set_type new_connected_nodes;
391  new_connected_elements.swap(connected_elements);
392  new_connected_nodes.swap(connected_nodes);
393 
394  while (!new_connected_elements.empty() ||
395  !new_connected_nodes.empty())
396  {
397  auto [newer_connected_elements,
398  newer_connected_nodes] =
400  (mesh, connected_elements, connected_nodes,
401  new_connected_elements, new_connected_nodes);
402 
403  // These have now been examined
404  connected_elements.merge(new_connected_elements);
405  connected_nodes.merge(new_connected_nodes);
406 
407  // merge() doesn't guarantee empty() unless there are no
408  // duplicates, which there shouldn't be
409  libmesh_assert(new_connected_elements.empty());
410  libmesh_assert(new_connected_nodes.empty());
411 
412  // These now need to be examined
413  new_connected_elements.swap(newer_connected_elements);
414  new_connected_nodes.swap(newer_connected_nodes);
415  }
416 }
MeshBase & mesh
libmesh_assert(ctx)
std::set< const Node * > connected_node_set_type
void connect_element_dependencies(const MeshBase &mesh, connected_elem_set_type &connected_elements, connected_node_set_type &connected_nodes)
std::set< const Elem *, CompareElemIdsByLevel > connected_elem_set_type

◆ connect_element_dependencies() [2/2]

std::pair< connected_elem_set_type, connected_node_set_type > libMesh::connect_element_dependencies ( const MeshBase mesh,
const connected_elem_set_type connected_elements,
const connected_node_set_type connected_nodes,
const connected_elem_set_type new_connected_elements,
const connected_node_set_type new_connected_nodes 
)

Definition at line 420 of file mesh_communication.C.

References mesh.

425 {
426  std::pair<connected_elem_set_type, connected_node_set_type> returnval;
427  auto & [newer_connected_elements, newer_connected_nodes] = returnval;
428  connect_element_families(connected_elements, new_connected_elements,
429  newer_connected_elements, &mesh);
430 
431  connect_nodes(new_connected_elements, connected_nodes,
432  new_connected_nodes, newer_connected_nodes);
433 
434  return returnval;
435 }
MeshBase & mesh

◆ connect_families()

void libMesh::connect_families ( connected_elem_set_type connected_elements,
const MeshBase mesh = nullptr 
)

Definition at line 353 of file mesh_communication.C.

References mesh.

355 {
356  // This old API won't be sufficient in cases (IGA meshes with
357  // non-NodeElem nodes acting as the unconstrained DoFs) that require
358  // recursion.
359  libmesh_deprecated();
360 
361  // Just do everything in one fell swoop; this is adequate for most
362  // meshes.
363  connect_element_families(connected_elements, connected_elements,
364  connected_elements, mesh);
365 }
MeshBase & mesh

◆ convert_from_receive() [1/2]

template<typename SendT , typename T >
void libMesh::convert_from_receive ( SendT &  received,
T &  converted 
)

◆ convert_from_receive() [2/2]

template<typename SendT , typename T , typename IndexType >
void libMesh::convert_from_receive ( SendT &  received,
MetaPhysicL::DynamicSparseNumberArray< T, IndexType > &  converted 
)

Definition at line 83 of file system_projection.C.

85 {
86  const std::size_t received_size = received.size();
87  converted.resize(received_size);
88  for (std::size_t i=0; i != received_size; ++i)
89  {
90  converted.raw_index(i) = received[i].first;
91  converted.raw_at(i) = received[i].second;
92  }
93 }

◆ convert_solve_result()

DiffSolver::SolveResult libMesh::convert_solve_result ( SNESConvergedReason  r)

Definition at line 242 of file petsc_diff_solver.C.

References libMesh::DiffSolver::CONVERGED_ABSOLUTE_RESIDUAL, libMesh::DiffSolver::CONVERGED_NO_REASON, libMesh::DiffSolver::CONVERGED_RELATIVE_RESIDUAL, libMesh::DiffSolver::CONVERGED_RELATIVE_STEP, libMesh::DiffSolver::DIVERGED_BACKTRACKING_FAILURE, libMesh::DiffSolver::DIVERGED_MAX_NONLINEAR_ITERATIONS, libMesh::DiffSolver::DIVERGED_NO_REASON, and libMesh::DiffSolver::INVALID_SOLVE_RESULT.

Referenced by libMesh::PetscDiffSolver::solve().

243 {
244  switch (r)
245  {
246  case SNES_CONVERGED_FNORM_ABS:
247  return DiffSolver::CONVERGED_ABSOLUTE_RESIDUAL;
248  case SNES_CONVERGED_FNORM_RELATIVE:
249  return DiffSolver::CONVERGED_RELATIVE_RESIDUAL;
250  case SNES_CONVERGED_SNORM_RELATIVE:
251  return DiffSolver::CONVERGED_RELATIVE_STEP;
252  case SNES_CONVERGED_ITS:
253  // SNES_CONVERGED_TR_DELTA was changed to a diverged condition,
254  // SNES_DIVERGED_TR_DELTA, in PETSc 1c6b2ff8df. This change will
255  // likely be in 3.12 and later releases.
256 #if PETSC_VERSION_LESS_THAN(3,12,0)
257  case SNES_CONVERGED_TR_DELTA:
258 #endif
259  return DiffSolver::CONVERGED_NO_REASON;
260  case SNES_DIVERGED_FUNCTION_DOMAIN:
261  case SNES_DIVERGED_FUNCTION_COUNT:
262  case SNES_DIVERGED_FNORM_NAN:
263  case SNES_DIVERGED_INNER:
264  case SNES_DIVERGED_LINEAR_SOLVE:
265  case SNES_DIVERGED_LOCAL_MIN:
266  return DiffSolver::DIVERGED_NO_REASON;
267  case SNES_DIVERGED_MAX_IT:
268  return DiffSolver::DIVERGED_MAX_NONLINEAR_ITERATIONS;
269  case SNES_DIVERGED_LINE_SEARCH:
270  return DiffSolver::DIVERGED_BACKTRACKING_FAILURE;
271  // In PETSc, SNES_CONVERGED_ITERATING means
272  // the solve is still iterating, but by the
273  // time we get here, we must have either
274  // converged or diverged, so
275  // SNES_CONVERGED_ITERATING is invalid.
276  case SNES_CONVERGED_ITERATING:
277  return DiffSolver::INVALID_SOLVE_RESULT;
278  default:
279  break;
280  }
281  return DiffSolver::INVALID_SOLVE_RESULT;
282 }

◆ convert_to_send() [1/2]

template<typename T >
const TypeToSend<T>::type libMesh::convert_to_send ( const T &  in)

◆ convert_to_send() [2/2]

template<typename T , typename IndexType >
const std::vector<std::pair<IndexType,T> > libMesh::convert_to_send ( MetaPhysicL::DynamicSparseNumberArray< T, IndexType > &  in)

Definition at line 69 of file system_projection.C.

70 {
71  const std::size_t in_size = in.size();
72  std::vector<std::pair<IndexType,T>> returnval(in_size);
73 
74  for (std::size_t i=0; i != in_size; ++i)
75  {
76  returnval[i].first = in.raw_index(i);
77  returnval[i].second = in.raw_at(i);
78  }
79  return returnval;
80 }

◆ cross_norm()

template<typename T >
T libMesh::cross_norm ( const TypeVector< T > &  b,
const TypeVector< T > &  c 
)
inline

Calls cross_norm_sq() and takes the square root of the result.

Definition at line 1096 of file type_vector.h.

References cross_norm_sq().

Referenced by libMesh::Tri::quality(), libMesh::Quad::quality(), libMesh::Elem::quality(), libMesh::Quad4::true_centroid(), libMesh::Quad4::volume(), libMesh::Tri3::volume(), libMesh::Quad8::volume(), libMesh::Quad9::volume(), and libMesh::Tri6::volume().

1098 {
1099  return std::sqrt(cross_norm_sq(b,c));
1100 }
T cross_norm_sq(const TypeVector< T > &b, const TypeVector< T > &c)
Compute |b x c|^2 without creating the extra temporary produced by calling b.cross(c).norm_sq().
Definition: type_vector.h:1075

◆ cross_norm_sq()

template<typename T >
T libMesh::cross_norm_sq ( const TypeVector< T > &  b,
const TypeVector< T > &  c 
)
inline

Compute |b x c|^2 without creating the extra temporary produced by calling b.cross(c).norm_sq().

Definition at line 1075 of file type_vector.h.

Referenced by cross_norm(), libMesh::C0Polygon::true_centroid(), and libMesh::C0Polygon::volume().

1077 {
1078  T z = b(0)*c(1) - b(1)*c(0);
1079 
1080 #if LIBMESH_DIM == 3
1081  T x = b(1)*c(2) - b(2)*c(1),
1082  y = b(0)*c(2) - b(2)*c(0);
1083  return x*x + y*y + z*z;
1084 #else
1085  return z*z;
1086 #endif
1087 }

◆ default_solver_package()

SolverPackage libMesh::default_solver_package ( )
Returns
The default solver interface to use. The value depends on which solver packages were available when the library was configured. The command-line is also checked, allowing the user to override the compiled default. For example, –use-petsc will force the use of PETSc solvers, and –use-laspack will force the use of LASPACK solvers.

Definition at line 1117 of file libmesh.C.

References libMesh::libMeshPrivateData::_solver_package, EIGEN_SOLVERS, initialized(), INVALID_SOLVER_PACKAGE, LASPACK_SOLVERS, libmesh_assert(), on_command_line(), PETSC_SOLVERS, and TRILINOS_SOLVERS.

Referenced by libMesh::System::add_matrix(), libMesh::System::add_vector(), main(), and libMesh::StaticCondensation::solver_package().

1118 {
1120 
1121  static bool called = false;
1122 
1123  // Check the command line. Since the command line is
1124  // unchanging it is sufficient to do this only once.
1125  if (!called)
1126  {
1127  called = true;
1128 
1129 #ifdef LIBMESH_HAVE_PETSC
1130  if (libMesh::on_command_line ("--use-petsc"))
1132 #endif
1133 
1134 #ifdef LIBMESH_TRILINOS_HAVE_AZTECOO
1135  if (libMesh::on_command_line ("--use-trilinos") ||
1136  libMesh::on_command_line ("--disable-petsc"))
1138 #endif
1139 
1140 #ifdef LIBMESH_HAVE_EIGEN
1141  if (libMesh::on_command_line ("--use-eigen" ) ||
1142 #if defined(LIBMESH_HAVE_MPI)
1143  // If the user bypassed MPI, we disable PETSc and Trilinos
1144  // too
1145  libMesh::on_command_line ("--disable-mpi") ||
1146 #endif
1147  libMesh::on_command_line ("--disable-petsc"))
1149 #endif
1150 
1151 #ifdef LIBMESH_HAVE_LASPACK
1152  if (libMesh::on_command_line ("--use-laspack" ) ||
1153 #if defined(LIBMESH_HAVE_MPI)
1154  // If the user bypassed MPI, we disable PETSc and Trilinos
1155  // too
1156  libMesh::on_command_line ("--disable-mpi") ||
1157 #endif
1158  libMesh::on_command_line ("--disable-petsc"))
1160 #endif
1161 
1162  if (libMesh::on_command_line ("--disable-laspack") &&
1163  libMesh::on_command_line ("--disable-trilinos") &&
1164  libMesh::on_command_line ("--disable-eigen") &&
1165  (
1166 #if defined(LIBMESH_HAVE_MPI)
1167  // If the user bypassed MPI, we disable PETSc too
1168  libMesh::on_command_line ("--disable-mpi") ||
1169 #endif
1170  libMesh::on_command_line ("--disable-petsc")))
1172  }
1173 
1174 
1176 }
libmesh_assert(ctx)
bool initialized()
Checks that library initialization has been done.
Definition: libmesh.C:276
bool on_command_line(std::string arg)
Definition: libmesh.C:987
SolverPackage _solver_package
The default solver package to use.
Definition: libmesh.C:258

◆ demangle()

std::string libMesh::demangle ( const char *  name)

Mostly system independent demangler.

Definition at line 111 of file libmesh_common.C.

References libMesh::Quality::name().

Referenced by cast_ptr(), cast_ref(), libMesh::Parameters::get(), and libMesh::Parameters::Parameter< T >::type().

112 {
113  int status = 0;
114  std::string ret = name;
115 
116  // Actually do the demangling
117  char * demangled_name = abi::__cxa_demangle(name, 0, 0, &status);
118 
119  // If demangling returns non-nullptr, save the result in a string.
120  if (demangled_name)
121  ret = demangled_name;
122 
123  // According to cxxabi.h docs, the caller is responsible for
124  // deallocating memory.
125  std::free(demangled_name);
126 
127  return ret;
128 }
std::string name(const ElemQuality q)
This function returns a string containing some name for q.
Definition: elem_quality.C:42
MPI_Status status

◆ enableFPE()

void libMesh::enableFPE ( bool  on)

Toggle hardware trap floating point exceptions.

Toggle floating point exceptions – courtesy of Cody Permann & MOOSE team.

Definition at line 884 of file libmesh.C.

Referenced by libMesh::LibMeshInit::~LibMeshInit().

885 {
886 #if !defined(LIBMESH_HAVE_FEENABLEEXCEPT) && defined(LIBMESH_HAVE_XMMINTRIN_H)
887  static int flags = 0;
888 #endif
889 
890  if (on)
891  {
892 #ifdef LIBMESH_HAVE_FEENABLEEXCEPT
893  feenableexcept(FE_DIVBYZERO | FE_INVALID);
894 #elif LIBMESH_HAVE_XMMINTRIN_H
895  flags = _MM_GET_EXCEPTION_MASK(); // store the flags
896  _MM_SET_EXCEPTION_MASK(flags & ~_MM_MASK_INVALID);
897 #endif
898 
899 #if LIBMESH_HAVE_DECL_SIGACTION
900  struct sigaction new_action, old_action;
901 
902  // Set up the structure to specify the new action.
903  new_action.sa_sigaction = libmesh_handleFPE;
904  sigemptyset (&new_action.sa_mask);
905  new_action.sa_flags = SA_SIGINFO;
906 
907  sigaction (SIGFPE, nullptr, &old_action);
908  if (old_action.sa_handler != SIG_IGN)
909  sigaction (SIGFPE, &new_action, nullptr);
910 #endif
911  }
912  else
913  {
914 #ifdef LIBMESH_HAVE_FEDISABLEEXCEPT
915  fedisableexcept(FE_DIVBYZERO | FE_INVALID);
916 #elif LIBMESH_HAVE_XMMINTRIN_H
917  _MM_SET_EXCEPTION_MASK(flags);
918 #endif
919  signal(SIGFPE, SIG_DFL);
920  }
921 }

◆ enableSEGV()

void libMesh::enableSEGV ( bool  on)

Toggle libMesh reporting of segmentation faults.

Definition at line 926 of file libmesh.C.

927 {
928 #if LIBMESH_HAVE_DECL_SIGACTION
929  static struct sigaction old_action;
930  static bool was_on = false;
931 
932  if (on)
933  {
934  struct sigaction new_action;
935  was_on = true;
936 
937  // Set up the structure to specify the new action.
938  new_action.sa_sigaction = libmesh_handleSEGV;
939  sigemptyset (&new_action.sa_mask);
940  new_action.sa_flags = SA_SIGINFO;
941 
942  sigaction (SIGSEGV, &new_action, &old_action);
943  }
944  else if (was_on)
945  {
946  was_on = false;
947  sigaction (SIGSEGV, &old_action, nullptr);
948  }
949 #else
950  libmesh_error_msg("System call sigaction not supported.");
951 #endif
952 }

◆ err()

OStreamProxy libMesh::err ( std::cerr  )

◆ example_one_factory()

FactoryImp<ExampleOneFunction, FunctionBase<Number> > libMesh::example_one_factory ( "example_one"  )

◆ fe_fdm_deriv() [1/4]

template<typename OutputShape >
OutputShape libMesh::fe_fdm_deriv ( const ElemType  type,
const Order  order,
const Elem elem,
const unsigned int  i,
const unsigned int  j,
const Point p,
OutputShape(*)(const ElemType, const Order, const Elem *, const unsigned int, const Point &)  shape_func 
)

Definition at line 949 of file fe.C.

959 {
960  auto [pp, pm, eps] = fdm_points(j, p);
961 
962  return (shape_func(type, order, elem, i, pp) -
963  shape_func(type, order, elem, i, pm))/2./eps;
964 }

◆ fe_fdm_deriv() [2/4]

template<typename OutputShape >
OutputShape libMesh::fe_fdm_deriv ( const Elem elem,
const Order  order,
const unsigned int  i,
const unsigned int  j,
const Point p,
const bool  add_p_level,
OutputShape(*)(const Elem *, const Order, const unsigned int, const Point &, const bool)  shape_func 
)

Helper functions for finite differenced derivatives in cases where analytical calculations haven't been done yet.

Definition at line 911 of file fe.C.

References libmesh_assert().

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::shape_deriv().

921 {
922  libmesh_assert(elem);
923 
924  auto [pp, pm, eps] = fdm_points(j, p);
925 
926  return (shape_func(elem, order, i, pp, add_p_level) -
927  shape_func(elem, order, i, pm, add_p_level))/2./eps;
928 }
libmesh_assert(ctx)

◆ fe_fdm_deriv() [3/4]

template<typename OutputShape >
OutputShape libMesh::fe_fdm_deriv ( const ElemType  type,
const Order  order,
const unsigned int  i,
const unsigned int  j,
const Point p,
OutputShape(*)(const ElemType, const Order, const unsigned int, const Point &)  shape_func 
)

Definition at line 932 of file fe.C.

940 {
941  auto [pp, pm, eps] = fdm_points(j, p);
942 
943  return (shape_func(type, order, i, pp) -
944  shape_func(type, order, i, pm))/2./eps;
945 }

◆ fe_fdm_deriv() [4/4]

template<typename OutputShape >
OutputShape libMesh::fe_fdm_deriv ( const ElemType  type,
const Order  order,
const Elem elem,
const unsigned int  i,
const unsigned int  j,
const Point p,
OutputShape(*)(const ElemType type, const Order, const Elem *, const unsigned int, const Point &)  shape_func 
)

◆ fe_fdm_deriv< Real >() [1/3]

template Real libMesh::fe_fdm_deriv< Real > ( const Elem ,
const Order  ,
const unsigned  int,
const unsigned  int,
const Point ,
const bool  ,
Real(*)(const Elem *, const Order, const unsigned int, const Point &, const bool)  shape_func 
)

◆ fe_fdm_deriv< Real >() [2/3]

template Real libMesh::fe_fdm_deriv< Real > ( const ElemType  ,
const Order  ,
const unsigned  int,
const unsigned  int,
const Point ,
Real(*)(const ElemType, const Order, const unsigned int, const Point &)  shape_func 
)

◆ fe_fdm_deriv< Real >() [3/3]

template Real libMesh::fe_fdm_deriv< Real > ( const ElemType  ,
const Order  ,
const Elem ,
const unsigned  int,
const unsigned  int,
const Point ,
Real(*)(const ElemType, const Order, const Elem *, const unsigned int, const Point &)  shape_func 
)

◆ fe_fdm_deriv< RealGradient >()

template RealGradient libMesh::fe_fdm_deriv< RealGradient > ( const Elem ,
const Order  ,
const unsigned  int,
const unsigned  int,
const Point ,
const bool  ,
RealGradient(*)(const Elem *, const Order, const unsigned int, const Point &, const bool)  shape_func 
)

◆ fe_fdm_second_deriv() [1/3]

template<typename OutputShape >
OutputShape libMesh::fe_fdm_second_deriv ( const Elem elem,
const Order  order,
const unsigned int  i,
const unsigned int  j,
const Point p,
const bool  add_p_level,
OutputShape(*)(const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool)  deriv_func 
)

Definition at line 969 of file fe.C.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv().

979 {
980  auto [pp, pm, eps, deriv_j] = fdm_second_points(j, p);
981 
982  return (deriv_func(elem, order, i, deriv_j, pp, add_p_level) -
983  deriv_func(elem, order, i, deriv_j, pm, add_p_level))/2./eps;
984 }

◆ fe_fdm_second_deriv() [2/3]

template<typename OutputShape >
OutputShape libMesh::fe_fdm_second_deriv ( const ElemType  type,
const Order  order,
const unsigned int  i,
const unsigned int  j,
const Point p,
OutputShape(*)(const ElemType, const Order, const unsigned int, const unsigned int, const Point &)  deriv_func 
)

Definition at line 989 of file fe.C.

998 {
999  auto [pp, pm, eps, deriv_j] = fdm_second_points(j, p);
1000 
1001  return (deriv_func(type, order, i, deriv_j, pp) -
1002  deriv_func(type, order, i, deriv_j, pm))/2./eps;
1003 }

◆ fe_fdm_second_deriv() [3/3]

template<typename OutputShape >
OutputShape libMesh::fe_fdm_second_deriv ( const ElemType  type,
const Order  order,
const Elem elem,
const unsigned int  i,
const unsigned int  j,
const Point p,
OutputShape(*)(const ElemType, const Order, const Elem *, const unsigned int, const unsigned int, const Point &)  deriv_func 
)

Definition at line 1008 of file fe.C.

1019 {
1020  auto [pp, pm, eps, deriv_j] = fdm_second_points(j, p);
1021 
1022  return (deriv_func(type, order, elem, i, deriv_j, pp) -
1023  deriv_func(type, order, elem, i, deriv_j, pm))/2./eps;
1024 }

◆ fe_fdm_second_deriv< Real >() [1/3]

template Real libMesh::fe_fdm_second_deriv< Real > ( const ElemType  ,
const Order  ,
const unsigned  int,
const unsigned  int,
const Point ,
Real(*)(const ElemType, const Order, const unsigned int, const unsigned int, const Point &)  shape_func 
)

◆ fe_fdm_second_deriv< Real >() [2/3]

template Real libMesh::fe_fdm_second_deriv< Real > ( const Elem ,
const Order  ,
const unsigned  int,
const unsigned  int,
const Point ,
const bool  ,
Real(*)(const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool)  shape_func 
)

◆ fe_fdm_second_deriv< Real >() [3/3]

template Real libMesh::fe_fdm_second_deriv< Real > ( const ElemType  ,
const Order  ,
const Elem ,
const unsigned  int,
const unsigned  int,
const Point ,
Real(*)(const ElemType, const Order, const Elem *, const unsigned int, const unsigned int, const Point &)  shape_func 
)

◆ fe_fdm_second_deriv< RealGradient >()

template RealGradient libMesh::fe_fdm_second_deriv< RealGradient > ( const Elem ,
const Order  ,
const unsigned  int,
const unsigned  int,
const Point ,
const bool  ,
RealGradient(*)(const Elem *, const Order, const unsigned int, const unsigned int, const Point &, const bool)  shape_func 
)

◆ fe_lagrange_1D_cubic_shape()

Real libMesh::fe_lagrange_1D_cubic_shape ( const unsigned int  i,
const Real  xi 
)
inline

Definition at line 77 of file fe_lagrange_shape_1D.h.

Referenced by fe_lagrange_1D_shape().

79 {
80  libmesh_assert_less (i, 4);
81 
82  switch (i)
83  {
84  case 0:
85  return 9./16.*(1./9.-xi*xi)*(xi-1.);
86 
87  case 1:
88  return -9./16.*(1./9.-xi*xi)*(xi+1.);
89 
90  case 2:
91  return 27./16.*(1.-xi*xi)*(1./3.-xi);
92 
93  case 3:
94  return 27./16.*(1.-xi*xi)*(1./3.+xi);
95 
96  default:
97  libmesh_error_msg("Invalid shape function index i = " << i);
98  }
99 }

◆ fe_lagrange_1D_cubic_shape_deriv()

Real libMesh::fe_lagrange_1D_cubic_shape_deriv ( const unsigned int  i,
const unsigned int   libmesh_dbg_varj,
const Real  xi 
)
inline

Definition at line 181 of file fe_lagrange_shape_1D.h.

Referenced by fe_lagrange_1D_shape_deriv().

184 {
185  // only d()/dxi in 1D!
186  libmesh_assert_equal_to (j, 0);
187 
188  libmesh_assert_less (i, 4);
189 
190  switch (i)
191  {
192  case 0:
193  return -9./16.*(3.*xi*xi-2.*xi-1./9.);
194 
195  case 1:
196  return -9./16.*(-3.*xi*xi-2.*xi+1./9.);
197 
198  case 2:
199  return 27./16.*(3.*xi*xi-2./3.*xi-1.);
200 
201  case 3:
202  return 27./16.*(-3.*xi*xi-2./3.*xi+1.);
203 
204  default:
205  libmesh_error_msg("Invalid shape function index i = " << i);
206  }
207 }

◆ fe_lagrange_1D_cubic_shape_second_deriv()

Real libMesh::fe_lagrange_1D_cubic_shape_second_deriv ( const unsigned int  i,
const unsigned int   libmesh_dbg_varj,
const Real  xi 
)
inline

Definition at line 266 of file fe_lagrange_shape_1D.h.

Referenced by fe_lagrange_1D_shape_second_deriv().

269 {
270  // Don't need to switch on j. 1D shape functions
271  // depend on xi only!
272  libmesh_assert_equal_to (j, 0);
273 
274  switch (i)
275  {
276  case 0:
277  return -9./16.*(6.*xi-2);
278 
279  case 1:
280  return -9./16.*(-6*xi-2.);
281 
282  case 2:
283  return 27./16.*(6*xi-2./3.);
284 
285  case 3:
286  return 27./16.*(-6*xi-2./3.);
287 
288  default:
289  libmesh_error_msg("Invalid shape function index i = " << i);
290  }
291 }

◆ fe_lagrange_1D_linear_shape()

Real libMesh::fe_lagrange_1D_linear_shape ( const unsigned int  i,
const Real  xi 
)
inline

Definition at line 32 of file fe_lagrange_shape_1D.h.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), libMesh::Hex8::centroid_from_points(), fe_lagrange_1D_shape(), and LIBMESH_DEFAULT_VECTORIZED_FE().

34 {
35  libmesh_assert_less (i, 2);
36 
37  switch (i)
38  {
39  case 0:
40  return .5*(1. - xi);
41 
42  case 1:
43  return .5*(1. + xi);
44 
45  default:
46  libmesh_error_msg("Invalid shape function index i = " << i);
47  }
48 }

◆ fe_lagrange_1D_linear_shape_deriv()

Real libMesh::fe_lagrange_1D_linear_shape_deriv ( const unsigned int  i,
const unsigned int   libmesh_dbg_varj,
const Real   
)
inline

Definition at line 130 of file fe_lagrange_shape_1D.h.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), and fe_lagrange_1D_shape_deriv().

133 {
134  // only d()/dxi in 1D!
135  libmesh_assert_equal_to (j, 0);
136 
137  libmesh_assert_less (i, 2);
138 
139  switch (i)
140  {
141  case 0:
142  return -.5;
143 
144  case 1:
145  return .5;
146 
147  default:
148  libmesh_error_msg("Invalid shape function index i = " << i);
149  }
150 }

◆ fe_lagrange_1D_quadratic_shape()

Real libMesh::fe_lagrange_1D_quadratic_shape ( const unsigned int  i,
const Real  xi 
)
inline

Definition at line 53 of file fe_lagrange_shape_1D.h.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), fe_lagrange_1D_shape(), and LIBMESH_DEFAULT_VECTORIZED_FE().

55 {
56  libmesh_assert_less (i, 3);
57 
58  switch (i)
59  {
60  case 0:
61  return .5*xi*(xi - 1.);
62 
63  case 1:
64  return .5*xi*(xi + 1);
65 
66  case 2:
67  return (1. - xi*xi);
68 
69  default:
70  libmesh_error_msg("Invalid shape function index i = " << i);
71  }
72 }

◆ fe_lagrange_1D_quadratic_shape_deriv()

Real libMesh::fe_lagrange_1D_quadratic_shape_deriv ( const unsigned int  i,
const unsigned int   libmesh_dbg_varj,
const Real  xi 
)
inline

Definition at line 154 of file fe_lagrange_shape_1D.h.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), and fe_lagrange_1D_shape_deriv().

157 {
158  // only d()/dxi in 1D!
159  libmesh_assert_equal_to (j, 0);
160 
161  libmesh_assert_less (i, 3);
162 
163  switch (i)
164  {
165  case 0:
166  return xi-.5;
167 
168  case 1:
169  return xi+.5;
170 
171  case 2:
172  return -2.*xi;
173 
174  default:
175  libmesh_error_msg("Invalid shape function index i = " << i);
176  }
177 }

◆ fe_lagrange_1D_quadratic_shape_second_deriv()

Real libMesh::fe_lagrange_1D_quadratic_shape_second_deriv ( const unsigned int  i,
const unsigned int   libmesh_dbg_varj,
const Real   
)
inline

Definition at line 240 of file fe_lagrange_shape_1D.h.

Referenced by fe_lagrange_1D_shape_second_deriv().

243 {
244  // Don't need to switch on j. 1D shape functions
245  // depend on xi only!
246  libmesh_assert_equal_to (j, 0);
247 
248  switch (i)
249  {
250  case 0:
251  return 1.;
252 
253  case 1:
254  return 1.;
255 
256  case 2:
257  return -2.;
258 
259  default:
260  libmesh_error_msg("Invalid shape function index i = " << i);
261  }
262 }

◆ fe_lagrange_1D_shape()

Real libMesh::fe_lagrange_1D_shape ( const Order  order,
const unsigned int  i,
const Real  xi 
)
inline

Definition at line 104 of file fe_lagrange_shape_1D.h.

References fe_lagrange_1D_cubic_shape(), fe_lagrange_1D_linear_shape(), fe_lagrange_1D_quadratic_shape(), FIRST, SECOND, and THIRD.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::shape().

107 {
108  switch (order)
109  {
110  // Lagrange linears
111  case FIRST:
112  return fe_lagrange_1D_linear_shape(i, xi);
113 
114  // Lagrange quadratics
115  case SECOND:
116  return fe_lagrange_1D_quadratic_shape(i, xi);
117 
118  // Lagrange cubics
119  case THIRD:
120  return fe_lagrange_1D_cubic_shape(i, xi);
121 
122  default:
123  libmesh_error_msg("ERROR: Unsupported polynomial order = " << order);
124  }
125 }
Real fe_lagrange_1D_quadratic_shape(const unsigned int i, const Real xi)
Real fe_lagrange_1D_cubic_shape(const unsigned int i, const Real xi)
Real fe_lagrange_1D_linear_shape(const unsigned int i, const Real xi)

◆ fe_lagrange_1D_shape_deriv()

Real libMesh::fe_lagrange_1D_shape_deriv ( const Order  order,
const unsigned int  i,
const unsigned int  j,
const Real  xi 
)
inline

Definition at line 212 of file fe_lagrange_shape_1D.h.

References fe_lagrange_1D_cubic_shape_deriv(), fe_lagrange_1D_linear_shape_deriv(), fe_lagrange_1D_quadratic_shape_deriv(), FIRST, SECOND, and THIRD.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::shape_deriv().

216 {
217  switch (order)
218  {
219  case FIRST:
220  return fe_lagrange_1D_linear_shape_deriv(i, j, xi);
221 
222  case SECOND:
223  return fe_lagrange_1D_quadratic_shape_deriv(i, j, xi);
224 
225  case THIRD:
226  return fe_lagrange_1D_cubic_shape_deriv(i, j, xi);
227 
228  default:
229  libmesh_error_msg("ERROR: Unsupported polynomial order = " << order);
230  }
231 }
Real fe_lagrange_1D_linear_shape_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real)
Real fe_lagrange_1D_quadratic_shape_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real xi)
Real fe_lagrange_1D_cubic_shape_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real xi)

◆ fe_lagrange_1D_shape_second_deriv()

Real libMesh::fe_lagrange_1D_shape_second_deriv ( const Order  order,
const unsigned int  i,
const unsigned int  j,
const Real  xi 
)
inline

Definition at line 296 of file fe_lagrange_shape_1D.h.

References fe_lagrange_1D_cubic_shape_second_deriv(), fe_lagrange_1D_quadratic_shape_second_deriv(), FIRST, SECOND, and THIRD.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv().

300 {
301  switch (order)
302  {
303  // All second derivatives of linears are zero....
304  case FIRST:
305  return 0.;
306 
307  case SECOND:
309 
310  case THIRD:
312 
313  default:
314  libmesh_error_msg("ERROR: Unsupported polynomial order = " << order);
315  } // end switch (order)
316 }
Real fe_lagrange_1D_quadratic_shape_second_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real)
Real fe_lagrange_1D_cubic_shape_second_deriv(const unsigned int i, const unsigned int libmesh_dbg_var(j), const Real xi)

◆ get_io_compatibility_version()

std::string libMesh::get_io_compatibility_version ( )

Specifier for I/O file compatibility features.

This only needs to be changed when new restart file functionality is added.

Definition at line 80 of file libmesh_version.C.

Referenced by libMesh::EquationSystems::write(), and libMesh::RBEvaluation::write_out_vectors().

81 {
82  std::string retval(LIBMESH_IO_COMPATIBILITY_VERSION);
83  return retval;
84 }

◆ get_libmesh_version()

int libMesh::get_libmesh_version ( )

Definition at line 46 of file libmesh_version.C.

Referenced by libmesh_version_stdout().

47 {
48  /* Note: return format follows the versioning convention xx.yy.zz where
49 
50  xx = major version number
51  yy = minor version number
52  zz = micro version number
53 
54  For example:
55  v. 0.23 -> 002300 = 2300
56  v 0.23.1 -> 002301 = 2301
57  v. 10.23.2 -> 102302 */
58 
59  int major_version = 0;
60  int minor_version = 0;
61  int micro_version = 0;
62 
63 #ifdef LIBMESH_MAJOR_VERSION
64  major_version = LIBMESH_MAJOR_VERSION;
65 #endif
66 
67 #ifdef LIBMESH_MINOR_VERSION
68  minor_version = LIBMESH_MINOR_VERSION;
69 #endif
70 
71 #ifdef LIBMESH_MICRO_VERSION
72  micro_version = LIBMESH_MICRO_VERSION;
73 #endif
74 
75  return major_version*10000 + minor_version*100 + micro_version;
76 }

◆ global_n_processors()

libMesh::processor_id_type libMesh::global_n_processors ( )
inline
Returns
The number of processors libMesh was initialized with.

Definition at line 75 of file libmesh_base.h.

References libMesh::libMeshPrivateData::_n_processors.

Referenced by libMesh::PerfLog::get_info_header(), libMesh::MacroFunctions::report_error(), and libMesh::MacroFunctions::stop().

76 {
77 #ifdef LIBMESH_HAVE_MPI
79 #else
80  return 1;
81 #endif
82 }
processor_id_type _n_processors
Total number of processors used.
Definition: libmesh.C:253

◆ global_processor_id()

libMesh::processor_id_type libMesh::global_processor_id ( )
inline
Returns
The index of the local processor with respect to the original MPI pool libMesh was initialized with.

Definition at line 85 of file libmesh_base.h.

References libMesh::libMeshPrivateData::_processor_id.

Referenced by libMesh::PerfLog::get_info_header(), libMesh::MacroFunctions::here(), XdrTest::test_read_write(), DofObjectTest< Node >::testInvalidateProcId(), DofObjectTest< Node >::testSetProcId(), DofObjectTest< Node >::testValidProcId(), write_output_footers(), write_output_headers(), and write_traceout().

86 {
87 #ifdef LIBMESH_HAVE_MPI
89 #else
90  return 0;
91 #endif
92 }
processor_id_type _processor_id
The local processor id.
Definition: libmesh.C:254

◆ if()

libMesh::if ( subdm  )

Definition at line 79 of file petsc_dm_wrapper.C.

References ctx, fields, is, LibmeshPetscCallQ(), libMesh::PetscDMContext::mesh_dim, numFields, p_ctx, and subdm.

Referenced by libMesh::System::add_matrix(), init_cd(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::ExodusII_IO::read(), libMesh::UnstructuredMesh::stitching_helper(), and libMesh::Nemesis_IO_Helper::write_element_values().

80  {
81  LibmeshPetscCallQ(DMShellCreate(PetscObjectComm((PetscObject) dm), subdm));
82 
83  // Set the DM embedding dimension to help PetscDS (Discrete System)
84  LibmeshPetscCallQ(DMSetCoordinateDim(*subdm, p_ctx->mesh_dim));
85 
86  // Now set the function pointers for the subDM
87  // Some DMShellGet* functions only exist with PETSc >= 3.12.0.
88 
89  // Set Coarsen function pointer
90 #if PETSC_VERSION_LESS_THAN(3,12,0)
91  if (dm->ops->coarsen)
92  LibmeshPetscCallQ(DMShellSetCoarsen(*subdm, dm->ops->coarsen));
93 #else
94  PetscErrorCode (*coarsen)(DM,MPI_Comm,DM*) = nullptr;
95  LibmeshPetscCallQ(DMShellGetCoarsen(dm, &coarsen));
96  if (coarsen)
97  LibmeshPetscCallQ(DMShellSetCoarsen(*subdm, coarsen));
98 #endif
99 
100  // Set Refine function pointer
101 #if PETSC_VERSION_LESS_THAN(3,12,0)
102  if (dm->ops->refine)
103  LibmeshPetscCallQ(DMShellSetRefine(*subdm, dm->ops->refine));
104 #else
105  PetscErrorCode (*refine)(DM,MPI_Comm,DM*) = nullptr;
106  LibmeshPetscCallQ(DMShellGetRefine(dm, &refine));
107 
108  if (refine)
109  LibmeshPetscCallQ(DMShellSetRefine(*subdm, refine));
110 #endif
111 
112  // Set Interpolation function pointer
113 #if PETSC_VERSION_LESS_THAN(3,12,0)
114  if (dm->ops->createinterpolation)
115  LibmeshPetscCallQ(DMShellSetCreateInterpolation(*subdm, dm->ops->createinterpolation));
116 #else
117  PetscErrorCode (*interp)(DM,DM,Mat*,Vec*) = nullptr;
118  LibmeshPetscCallQ(DMShellGetCreateInterpolation(dm, &interp));
119  if (interp)
120  LibmeshPetscCallQ(DMShellSetCreateInterpolation(*subdm, interp));
121 #endif
122 
123  // Set Restriction function pointer
124 #if PETSC_VERSION_LESS_THAN(3,12,0)
125  if (dm->ops->createrestriction)
126  LibmeshPetscCallQ(DMShellSetCreateRestriction(*subdm, dm->ops->createrestriction));
127 #else
128  PetscErrorCode (*createrestriction)(DM,DM,Mat*) = nullptr;
129  LibmeshPetscCallQ(DMShellGetCreateRestriction(dm, &createrestriction));
130  if (createrestriction)
131  LibmeshPetscCallQ(DMShellSetCreateRestriction(*subdm, createrestriction));
132 #endif
133 
134  // Set CreateSubDM function pointer
135 #if PETSC_VERSION_LESS_THAN(3,12,0)
136  if (dm->ops->createsubdm)
137  LibmeshPetscCallQ(DMShellSetCreateSubDM(*subdm, dm->ops->createsubdm));
138 #else
139  PetscErrorCode (*createsubdm)(DM,PetscInt,const PetscInt[],IS*,DM*) = nullptr;
140  LibmeshPetscCallQ(DMShellGetCreateSubDM(dm, &createsubdm));
141  if (createsubdm)
142  LibmeshPetscCallQ(DMShellSetCreateSubDM(*subdm, createsubdm));
143 #endif
144  // Set Context pointer
145  if (ctx)
146  LibmeshPetscCallQ(DMShellSetContext(*subdm, ctx));
147 #if PETSC_VERSION_LESS_THAN(3,11,0)
148  // Lastly, Compute the subsection for the subDM
149  LibmeshPetscCallQ(DMCreateSubDM_Section_Private(dm, numFields, fields, is, subdm));
150 #elif PETSC_RELEASE_LESS_THAN(3, 21, 0)
151  LibmeshPetscCallQ(DMCreateSectionSubDM(dm, numFields, fields, is, subdm));
152 #else
153  LibmeshPetscCallQ(DMCreateSectionSubDM(dm, numFields, fields, NULL, NULL, is, subdm));
154 #endif
155  }
PetscErrorCode PetscInt const PetscInt IS DM * subdm
PetscDMContext * p_ctx
PetscErrorCode PetscInt numFields
PetscErrorCode PetscInt const PetscInt IS * is
PetscErrorCode PetscInt const PetscInt fields[]
LibmeshPetscCallQ(DMShellGetContext(dm, &ctx))
void * ctx

◆ imaginary()

const Number libMesh::imaginary ( 0.  ,
1.   
)

◆ index_range() [1/2]

template<typename T >
auto libMesh::index_range ( const T &  sizable)

Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in vector-like object (i.e.

any type that has a size() member).

Definition at line 117 of file int_range.h.

Referenced by __libmesh_nlopt_equality_constraints(), __libmesh_nlopt_inequality_constraints(), __libmesh_nlopt_objective(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::MeshFunction::_gradient_on_elem(), libMesh::SyncRefinementFlags::act_on_data(), libMesh::SyncNodalPositions::act_on_data(), libMesh::SyncSubdomainIds::act_on_data(), libMesh::SyncElementIntegers::act_on_data(), libMesh::SyncLocalIDs::act_on_data(), libMesh::DistributedVector< T >::add(), libMesh::MeshBase::add_elem_data(), libMesh::MeshBase::add_elem_integer(), libMesh::MeshBase::add_elem_integers(), libMesh::MeshfreeInterpolation::add_field_data(), libMesh::MeshBase::add_node_data(), libMesh::MeshBase::add_node_integer(), libMesh::MeshBase::add_node_integers(), libMesh::HPCoarsenTest::add_projection(), libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::RBDataSerialization::add_rb_scm_evaluation_data_to_builder(), libMesh::PetscMatrix< T >::add_sparse_matrix(), libMesh::NumericVector< Number >::add_vector(), libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), libMesh::FEInterface::all_shape_derivs(), libMesh::FEInterface::all_shapes(), libMesh::MeshTools::Subdivision::all_subdivision(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::AdvectionSystem::assemble_claw_rhs(), libMesh::CompositeFEMFunction< Output >::attach_subfunction(), libMesh::CompositeFunction< Output >::attach_subfunction(), libMesh::MeshTools::Generation::build_cube(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::Partitioner::build_graph(), libMesh::Parallel::Histogram< KeyType, IdxType >::build_histogram(), libMesh::BoundaryInfo::build_node_list_from_side_list(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_sf(), libMesh::CompositeFEMFunction< Output >::clone(), libMesh::CompositeFunction< Output >::clone(), libMesh::FEMap::compute_affine_map(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_dual_shape_coeffs(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_dual_shape_functions(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), compute_qp_soln(), compute_qp_soln(), libMesh::FEXYZ< Dim >::compute_shape_functions(), libMesh::FEMap::compute_single_point_map(), libMesh::Hex8::connectivity(), libMesh::Quad8::connectivity(), libMesh::Quad9::connectivity(), libMesh::Tri6::connectivity(), libMesh::Tri7::connectivity(), libMesh::Tet10::connectivity(), libMesh::Tet14::connectivity(), libMesh::Prism18::connectivity(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_scalar_solution(), libMesh::Nemesis_IO::copy_scalar_solution(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::PetscMatrix< T >::create_submatrix_nosort(), libMesh::RBEIMEvaluation::decrement_vector(), libMesh::FE< Dim, LAGRANGE_VEC >::default_all_shape_derivs(), libMesh::FE< Dim, LAGRANGE_VEC >::default_all_shapes(), libMesh::FE< Dim, LAGRANGE_VEC >::default_shape_derivs(), libMesh::FE< Dim, LAGRANGE_VEC >::default_shapes(), libMesh::MeshFunction::discontinuous_value(), libMesh::RBEIMEvaluation::distribute_bfs(), DMCreateDomainDecomposition_libMesh(), DMCreateFieldDecomposition_libMesh(), DMView_libMesh(), libMesh::DistributedVector< T >::dot(), libMesh::FE< Dim, LAGRANGE_VEC >::edge_map(), libMesh::Polyhedron::edges_adjacent_to_node(), libMesh::VariationalSmootherSystem::element_time_derivative(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::ErrorEstimator::estimate_errors(), libMesh::ParsedFEMFunction< T >::eval(), libMesh::ParsedFunction< T >::eval(), libMesh::ParsedFEMFunction< T >::eval_args(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_point(), libMesh::OldSolutionCoefs< Output, point_output >::eval_mixed_derivatives(), libMesh::OldSolutionCoefs< Output, point_output >::eval_old_dofs(), libMesh::OldSolutionValue< Output, point_output >::eval_old_dofs(), libMesh::DTKEvaluator::evaluate(), fe_assembly(), libMesh::TreeNode< N >::find_element_in_children(), libMesh::EquationSystems::find_variable_numbers(), libMesh::ReplicatedMesh::fix_broken_node_and_element_numbering(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::MeshTools::Modification::flatten(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::SyncRefinementFlags::gather_data(), libMesh::SyncNodalPositions::gather_data(), libMesh::SyncLocalIDs::gather_data(), libMesh::MeshTools::Generation::Private::GaussLobattoRedistributionFunction::GaussLobattoRedistributionFunction(), libMesh::ReplicatedMesh::get_boundary_points(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::SumShellMatrix< T >::get_diagonal(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::MeshBase::get_elem_integer_index(), libMesh::RBEIMEvaluation::get_interior_basis_function_as_vec_helper(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::RBEIMConstruction::get_max_abs_value(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::MeshBase::get_node_integer_index(), libMesh::RBEIMConstruction::get_node_max_abs_value(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::RBConstructionBase< CondensedEigenSystem >::get_params_from_training_set(), libMesh::RBEIMConstruction::get_random_point(), libMesh::RBEIMEvaluation::get_rb_eim_solutions_entries(), libMesh::PetscMatrix< T >::get_row(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::RBParameters::get_string(), libMesh::QGrundmann_Moller::gm_rule(), libMesh::Elem::has_invertible_map(), libMesh::MeshFunction::hessian(), libMesh::StatisticsVector< ErrorVectorReal >::histogram(), libMesh::FE< Dim, LAGRANGE_VEC >::init_dual_shape_functions(), libMesh::ExodusII_IO_Helper::initialize_element_variables(), libMesh::Nemesis_IO_Helper::initialize_element_variables(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBConstructionBase< CondensedEigenSystem >::initialize_training_parameters(), libMesh::RBEIMConstruction::inner_product(), libMesh::NumericVector< Number >::insert(), libMesh::Euler2Solver::integrate_adjoint_refinement_error_estimate(), libMesh::TwostepTimeSolver::integrate_adjoint_refinement_error_estimate(), libMesh::EulerSolver::integrate_adjoint_refinement_error_estimate(), libMesh::FEMContext::interior_gradients(), libMesh::FEMContext::interior_hessians(), libMesh::FEMContext::interior_values(), libMesh::RadialBasisInterpolation< KDDim, RBF >::interpolate_field_data(), libMesh::InverseDistanceInterpolation< KDDim >::interpolate_field_data(), libMesh::DenseSubVector< T >::l1_norm(), libMesh::DenseSubVector< T >::l2_norm(), lagrange_nodal_soln(), libMesh::RBSCMEvaluation::legacy_read_offline_data_from_files(), LIBMESH_DEFAULT_VECTORIZED_FE(), libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), libMesh::DistributedVector< T >::localize(), libMesh::LaspackVector< T >::localize(), libMesh::EigenSparseVector< T >::localize(), libMesh::EpetraVector< T >::localize(), libMesh::MeshBase::locally_equals(), libMesh::SumShellMatrix< T >::m(), main(), libMesh::HCurlFETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_d2phi(), libMesh::HDivFETransformation< OutputShape >::map_div(), libMesh::H1FETransformation< OutputShape >::map_div(), libMesh::H1FETransformation< OutputShape >::map_dphi(), libMesh::HCurlFETransformation< OutputShape >::map_phi(), libMesh::HDivFETransformation< OutputShape >::map_phi(), libMesh::ExodusII_IO_Helper::MappedOutputVector::MappedOutputVector(), libMesh::SumShellMatrix< T >::n(), libMesh::RBEIMEvaluation::node_decrement_vector(), libMesh::RBEIMEvaluation::node_distribute_bfs(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::RBEIMConstruction::node_inner_product(), libMesh::VTKIO::node_values_to_vtk(), libMesh::RBParametrizedFunction::node_vectorized_evaluate(), libMesh::C0Polyhedron::nodes_on_edge(), libMesh::DenseMatrix< Real >::operator!=(), libMesh::ConstFEMFunction< Output >::operator()(), libMesh::CompositeFEMFunction< Output >::operator()(), Integrate::operator()(), libMesh::CompositeFunction< Output >::operator()(), libMesh::MeshFunction::operator()(), libMesh::BoundaryProjectSolution::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::DistributedVector< T >::operator*=(), libMesh::DenseMatrix< Real >::operator+=(), libMesh::DenseMatrix< Real >::operator-=(), libMesh::DistributedVector< T >::operator/=(), libMesh::DistributedVector< T >::operator=(), libMesh::LaspackVector< T >::operator=(), libMesh::EigenSparseVector< T >::operator=(), libMesh::BoundaryInfo::operator==(), libMesh::DenseMatrix< Real >::operator==(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::CentroidPartitioner::partition_range(), libMesh::StatisticsVector< ErrorVectorReal >::plot_histogram(), libMesh::PostscriptIO::plot_quadratic_elem(), libMesh::Polyhedron::Polyhedron(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh(), libMesh::RBParametrizedFunction::preevaluate_parametrized_function_on_mesh_sides(), libMesh::RBConstruction::preevaluate_thetas(), libMesh::NumericVector< Number >::print(), libMesh::FEGenericBase< FEOutputType< T >::type >::print_d2phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::print_dphi(), libMesh::FEGenericBase< FEOutputType< T >::type >::print_dual_d2phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::print_dual_dphi(), libMesh::FEGenericBase< FEOutputType< T >::type >::print_dual_phi(), libMesh::LaplaceMeshSmoother::print_graph(), libMesh::QBase::print_info(), libMesh::FEMap::print_JxW(), libMesh::RBEIMEvaluation::print_local_eim_basis_functions(), libMesh::SparseMatrix< ValOut >::print_matlab(), libMesh::FEGenericBase< FEOutputType< T >::type >::print_phi(), libMesh::FEMap::print_xyz(), libMesh::System::project_vector(), libMesh::Nemesis_IO_Helper::put_elem_cmap(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Elem::quality(), rational_all_shape_derivs(), rational_all_shapes(), libMesh::RBEIMEvaluation::rb_eim_solves(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::CheckpointIO::read_bc_names(), libMesh::CheckpointIO::read_bcs(), libMesh::XdrIO::read_header(), libMesh::RBEIMEvaluation::read_in_interior_basis_functions(), libMesh::RBEIMEvaluation::read_in_node_basis_functions(), libMesh::RBEIMEvaluation::read_in_side_basis_functions(), libMesh::GmshIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_nodes(), libMesh::CheckpointIO::read_nodesets(), libMesh::CheckpointIO::read_remote_elem(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::System::read_SCALAR_dofs(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::CheckpointIO::read_subdomain_names(), libMesh::StaticCondensationDofMap::reinit(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::ParsedFunction< T >::reparse(), libMesh::ParsedFEMFunction< T >::reparse(), libMesh::FEMap::resize_quadrature_map_vectors(), libMesh::PetscLinearSolver< Number >::restrict_solve_to(), libMesh::C0Polyhedron::retriangulate(), libMesh::C0Polygon::retriangulate(), libMesh::QBase::scale(), libMesh::RBEIMConstruction::scale_parametrized_function(), libMesh::DofMap::scatter_constraints(), libMesh::HPCoarsenTest::select_refinement(), libMesh::FrequencySystem::set_frequencies(), libMesh::ParsedFEMFunction< T >::set_inline_value(), libMesh::StaticCondensation::set_local_vectors(), libMesh::DofMap::set_nonlocal_dof_objects(), PerElemTest< elem_type >::setUp(), FETestBase< order, family, elem_type, 1 >::setUp(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_derivs(), libMesh::FE< Dim, LAGRANGE_VEC >::shapes(), libMesh::FEInterface::shapes(), libMesh::RBEIMEvaluation::side_decrement_vector(), libMesh::RBEIMEvaluation::side_distribute_bfs(), libMesh::RBEIMEvaluation::side_gather_bfs(), libMesh::FEMContext::side_gradients(), libMesh::FEMContext::side_hessians(), libMesh::RBEIMConstruction::side_inner_product(), libMesh::FE< Dim, LAGRANGE_VEC >::side_map(), libMesh::FEMContext::side_values(), libMesh::RBParametrizedFunction::side_vectorized_evaluate(), libMesh::SystemNorm::SystemNorm(), VolumeTest::testC0PolyhedronCube(), XdrTest::testDataStream(), XdrTest::testDataVec(), PackingTypesTest::testDynamicEigenMatrix(), PackingTypesTest::testDynamicEigenVector(), DualShapeTest::testEdge2Lagrange(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshTriangulationTest::testFoundCenters(), FESideTest< order, family, elem_type >::testGradU(), FESideTest< order, family, elem_type >::testGradUComp(), FESideTest< order, family, elem_type >::testHessU(), FESideTest< order, family, elem_type >::testHessUComp(), QuadratureTest::testMonomialQuadrature(), RBParametersTest::testMultiValued(), QuadratureTest::testNodalQuadrature(), PackingTypesTest::testNonFixedScalar(), ParallelSyncTest::testPullImpl(), ParallelSyncTest::testPullVecVecImpl(), FESideTest< order, family, elem_type >::testU(), SparseMatrixTest< LaspackMatrix< Number > >::testValues(), WriteElemsetData::testWriteImpl(), libMesh::DifferentiableQoI::thread_join(), libMesh::Elem::true_centroid(), libMesh::AdvectionSystem::update_Fh(), libMesh::EpetraMatrix< T >::update_sparsity_pattern(), libMesh::SumShellMatrix< T >::vector_mult_add(), libMesh::RBParametrizedFunction::vectorized_evaluate(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::TecplotIO::write_binary(), libMesh::ExodusII_IO::write_element_data_from_discontinuous_nodal_data(), libMesh::Nemesis_IO_Helper::write_element_values(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO_Helper::write_elemset_data(), libMesh::EnsightIO::write_geometry_ascii(), libMesh::ExodusII_IO_Helper::write_nodal_coordinates(), libMesh::ExodusII_IO::write_nodal_data(), libMesh::Nemesis_IO_Helper::write_nodal_solution(), libMesh::ExodusII_IO_Helper::write_nodeset_data(), libMesh::ClawSystem::write_out_discretization_matrices(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::EnsightIO::write_scalar_ascii(), libMesh::XdrIO::write_serialized_nodes(), libMesh::ExodusII_IO_Helper::write_sideset_data(), libMesh::EnsightIO::write_vector_ascii(), and libMesh::DenseSubVector< T >::zero().

118 {
119  return IntRange<decltype(sizable.size())>(0, sizable.size());
120 }

◆ index_range() [2/2]

template<typename T >
IntRange<numeric_index_type> libMesh::index_range ( const NumericVector< T > &  vec)

Same thing but for NumericVector.

Returns a range (first_local_index, last_local_index).

Definition at line 127 of file int_range.h.

References libMesh::NumericVector< T >::first_local_index(), and libMesh::NumericVector< T >::last_local_index().

128 {
129  return {vec.first_local_index(), vec.last_local_index()};
130 }

◆ init_shell_mat() [1/6]

template<typename Obj >
void libMesh::init_shell_mat ( Obj &  obj,
const numeric_index_type  m,
const numeric_index_type  n,
const numeric_index_type  m_l,
const numeric_index_type  n_l,
const numeric_index_type  blocksize_in 
)

Initialize a shell matrix object.

Definition at line 72 of file petsc_shell_matrix.C.

Referenced by libMesh::PetscMatrixShellMatrix< Number >::init(), libMesh::PetscShellMatrix< T >::init(), and init_shell_mat().

78 {
79  // Clear initialized matrices
80  if (obj.initialized())
81  obj.clear();
82 
83  PetscInt m_global = static_cast<PetscInt>(m);
84  PetscInt n_global = static_cast<PetscInt>(n);
85  PetscInt m_local = static_cast<PetscInt>(m_l);
86  PetscInt n_local = static_cast<PetscInt>(n_l);
87  PetscInt blocksize = static_cast<PetscInt>(blocksize_in);
88 
89  LibmeshPetscCall2(obj.comm(), MatCreate(obj.comm().get(), &obj._mat));
90  LibmeshPetscCall2(obj.comm(), MatSetSizes(obj._mat, m_local, n_local, m_global, n_global));
91  LibmeshPetscCall2(obj.comm(), MatSetBlockSize(obj._mat, blocksize));
92  LibmeshPetscCall2(obj.comm(), MatSetType(obj._mat, MATSHELL));
93 
94  // Is prefix information available somewhere? Perhaps pass in the system name?
95  LibmeshPetscCall2(obj.comm(), MatSetOptionsPrefix(obj._mat, ""));
96  LibmeshPetscCall2(obj.comm(), MatSetFromOptions(obj._mat));
97  LibmeshPetscCall2(obj.comm(), MatSetUp(obj._mat));
98  LibmeshPetscCall2(obj.comm(), MatShellSetContext(obj._mat, &obj));
99 
100  obj._is_initialized = true;
101 }

◆ init_shell_mat() [2/6]

template<typename Obj >
void libMesh::init_shell_mat ( Obj &  obj)

Initialize a shell matrix object using information from the DofMap.

Definition at line 104 of file petsc_shell_matrix.C.

References init_shell_mat(), and libmesh_assert().

105 {
106  libmesh_assert(obj._dof_map);
107 
108  numeric_index_type my_m = obj._dof_map->n_dofs();
109  numeric_index_type m_l = obj._dof_map->n_local_dofs();
110  if (obj._omit_constrained_dofs)
111  {
112  my_m -= obj._dof_map->n_constrained_dofs();
113  m_l -= obj._dof_map->n_local_constrained_dofs();
114  }
115 
116  const numeric_index_type my_n = my_m;
117  const numeric_index_type n_l = m_l;
118 
119  init_shell_mat(obj, my_m, my_n, m_l, n_l, obj._dof_map->block_size());
120 }
template void init_shell_mat(PetscMatrixShellMatrix< Number > &obj, const numeric_index_type m, const numeric_index_type n, const numeric_index_type m_l, const numeric_index_type n_l, const numeric_index_type blocksize_in)
dof_id_type numeric_index_type
Definition: id_types.h:99
libmesh_assert(ctx)

◆ init_shell_mat() [3/6]

template void libMesh::init_shell_mat ( PetscShellMatrix< Number > &  obj)

◆ init_shell_mat() [4/6]

template void libMesh::init_shell_mat ( PetscMatrixShellMatrix< Number > &  obj)

◆ init_shell_mat() [5/6]

template void libMesh::init_shell_mat ( PetscShellMatrix< Number > &  obj,
const numeric_index_type  m,
const numeric_index_type  n,
const numeric_index_type  m_l,
const numeric_index_type  n_l,
const numeric_index_type  blocksize_in 
)

◆ init_shell_mat() [6/6]

template void libMesh::init_shell_mat ( PetscMatrixShellMatrix< Number > &  obj,
const numeric_index_type  m,
const numeric_index_type  n,
const numeric_index_type  m_l,
const numeric_index_type  n_l,
const numeric_index_type  blocksize_in 
)

◆ initialized()

bool libMesh::initialized ( )

Checks that library initialization has been done.

If it hasn't an error message is printed and the code aborts. It is useful to libmesh_assert(libMesh::initialized()) in library object constructors.

Definition at line 276 of file libmesh.C.

References libMesh::libMeshPrivateData::_is_initialized.

Referenced by libMesh::PetscVector< libMesh::Number >::_get_array(), libMesh::PetscMatrix< T >::_petsc_viewer(), libMesh::PetscVector< libMesh::Number >::_restore_array(), libMesh::LaspackVector< T >::abs(), libMesh::DistributedVector< T >::abs(), libMesh::EigenSparseVector< T >::abs(), libMesh::EigenSparseMatrix< T >::add(), libMesh::LaspackMatrix< T >::add(), libMesh::EpetraMatrix< T >::add(), libMesh::DistributedVector< T >::add(), libMesh::PetscMatrix< T >::add(), libMesh::LaspackVector< T >::add(), libMesh::EigenSparseVector< T >::add(), libMesh::PetscMatrix< T >::add_block_matrix(), libMesh::EigenSparseMatrix< T >::add_matrix(), libMesh::LaspackMatrix< T >::add_matrix(), libMesh::EpetraMatrix< T >::add_matrix(), libMesh::PetscMatrix< T >::add_matrix(), libMesh::EigenSparseLinearSolver< T >::clear(), libMesh::LaspackLinearSolver< T >::clear(), libMesh::AztecLinearSolver< T >::clear(), libMesh::SlepcEigenSolver< libMesh::Number >::clear(), libMesh::TaoOptimizationSolver< T >::clear(), libMesh::NloptOptimizationSolver< T >::clear(), libMesh::PetscShellMatrix< T >::clear(), libMesh::PetscNonlinearSolver< Number >::clear(), libMesh::PetscLinearSolver< Number >::clear(), libMesh::LaspackVector< T >::clear(), libMesh::LaspackMatrix< T >::clear(), libMesh::PetscMatrixBase< Number >::clear(), libMesh::EpetraVector< T >::clear(), libMesh::PetscVector< libMesh::Number >::clear(), libMesh::DistributedVector< T >::close(), libMesh::LaspackVector< T >::close(), libMesh::EigenSparseVector< T >::close(), libMesh::LaspackMatrix< T >::close(), libMesh::EpetraVector< T >::close(), libMesh::PetscMatrixBase< Number >::closed(), libMesh::EpetraMatrix< T >::closed(), libMesh::EpetraMatrix< T >::col_start(), libMesh::PetscMatrixBase< Number >::col_start(), libMesh::EpetraMatrix< T >::col_stop(), libMesh::PetscMatrixBase< Number >::col_stop(), libMesh::PetscMatrix< T >::copy_from_hash(), default_solver_package(), libMesh::LaspackVector< T >::dot(), libMesh::EigenSparseVector< T >::dot(), libMesh::DistributedVector< T >::first_local_index(), libMesh::LaspackVector< T >::first_local_index(), libMesh::EigenSparseVector< T >::first_local_index(), libMesh::EpetraVector< T >::first_local_index(), libMesh::PetscVector< libMesh::Number >::first_local_index(), libMesh::TaoOptimizationSolver< T >::get_converged_reason(), libMesh::PetscNonlinearSolver< Number >::get_converged_reason(), libMesh::EpetraMatrix< T >::get_row(), libMesh::PetscMatrix< T >::get_row(), libMesh::EigenSparseLinearSolver< T >::init(), libMesh::LaspackLinearSolver< T >::init(), libMesh::AztecLinearSolver< T >::init(), libMesh::SlepcEigenSolver< libMesh::Number >::init(), libMesh::NoxNonlinearSolver< Number >::init(), libMesh::TaoOptimizationSolver< T >::init(), libMesh::NloptOptimizationSolver< T >::init(), libMesh::EigenSparseMatrix< T >::init(), libMesh::PetscNonlinearSolver< Number >::init(), libMesh::LaspackMatrix< T >::init(), libMesh::DistributedVector< T >::init(), libMesh::PetscLinearSolver< Number >::init(), libMesh::EigenSparseVector< T >::init(), libMesh::EpetraMatrix< T >::init(), libMesh::PetscVector< libMesh::Number >::init(), libMesh::PetscMatrix< T >::init_without_preallocation(), libMesh::DistributedVector< T >::l1_norm(), libMesh::EigenSparseVector< T >::l1_norm(), libMesh::EpetraMatrix< T >::l1_norm(), libMesh::DistributedVector< T >::l2_norm(), libMesh::EigenSparseVector< T >::l2_norm(), libMesh::DistributedVector< T >::last_local_index(), libMesh::LaspackVector< T >::last_local_index(), libMesh::EigenSparseVector< T >::last_local_index(), libMesh::EpetraVector< T >::last_local_index(), libMesh::PetscVector< libMesh::Number >::last_local_index(), libMesh::DistributedVector< T >::linfty_norm(), libMesh::EigenSparseVector< T >::linfty_norm(), libMesh::EpetraMatrix< T >::linfty_norm(), libMesh::PetscMatrixBase< Number >::local_m(), libMesh::PetscMatrixBase< Number >::local_n(), libMesh::DistributedVector< T >::local_size(), libMesh::LaspackVector< T >::local_size(), libMesh::EigenSparseVector< T >::local_size(), libMesh::EpetraVector< T >::local_size(), libMesh::PetscVector< libMesh::Number >::local_size(), libMesh::DistributedVector< T >::localize(), libMesh::DistributedVector< T >::localize_to_one(), libMesh::EigenSparseMatrix< T >::m(), libMesh::LaspackMatrix< T >::m(), libMesh::EpetraMatrix< T >::m(), libMesh::PetscMatrixBase< Number >::m(), libMesh::PetscVector< libMesh::Number >::map_global_to_local_index(), libMesh::PetscMatrix< T >::matrix_matrix_mult(), libMesh::DistributedVector< T >::max(), libMesh::LaspackVector< T >::max(), libMesh::EigenSparseVector< T >::max(), libMesh::EpetraVector< T >::max(), libMesh::MeshBase::MeshBase(), libMesh::DistributedVector< T >::min(), libMesh::LaspackVector< T >::min(), libMesh::EigenSparseVector< T >::min(), libMesh::EpetraVector< T >::min(), libMesh::EigenSparseMatrix< T >::n(), libMesh::LaspackMatrix< T >::n(), libMesh::EpetraMatrix< T >::n(), libMesh::PetscMatrixBase< Number >::n(), libMesh::PetscMatrix< T >::norm(), libMesh::AnalyticFunction< Output >::operator()(), libMesh::EigenSparseMatrix< T >::operator()(), libMesh::LaspackMatrix< T >::operator()(), libMesh::DistributedVector< T >::operator()(), libMesh::LaspackVector< T >::operator()(), libMesh::EigenSparseVector< T >::operator()(), libMesh::EpetraVector< T >::operator()(), libMesh::EpetraMatrix< T >::operator()(), libMesh::PetscMatrix< T >::operator()(), libMesh::DistributedVector< T >::operator+=(), libMesh::DistributedVector< T >::operator-=(), libMesh::DistributedVector< T >::operator=(), libMesh::LaspackVector< T >::operator=(), libMesh::EigenSparseVector< T >::operator=(), libMesh::SparseMatrix< ValOut >::print(), libMesh::NumericVector< Number >::print(), libMesh::NumericVector< Number >::print_global(), libMesh::PetscMatrix< T >::print_matlab(), libMesh::SparseMatrix< ValOut >::print_matlab(), libMesh::NumericVector< Number >::print_matlab(), libMesh::EpetraMatrix< T >::print_personal(), libMesh::PetscMatrix< T >::print_personal(), libMesh::PetscMatrix< T >::print_petsc_binary(), libMesh::PetscMatrix< T >::print_petsc_hdf5(), libMesh::SparseMatrix< ValOut >::read_matlab(), libMesh::NumericVector< Number >::read_matlab(), libMesh::NumericVector< Number >::readable(), libMesh::PetscMatrix< T >::reset_preallocation(), libMesh::EpetraMatrix< T >::row_start(), libMesh::PetscMatrixBase< Number >::row_start(), libMesh::EpetraMatrix< T >::row_stop(), libMesh::PetscMatrixBase< Number >::row_stop(), libMesh::LaspackVector< T >::scale(), libMesh::DistributedVector< T >::scale(), libMesh::EigenSparseVector< T >::scale(), libMesh::EigenSparseMatrix< T >::set(), libMesh::LaspackMatrix< T >::set(), libMesh::EpetraMatrix< T >::set(), libMesh::PetscMatrix< T >::set(), libMesh::DistributedVector< T >::set(), libMesh::LaspackVector< T >::set(), libMesh::EigenSparseVector< T >::set(), libMesh::NumericVector< Number >::set_type(), libMesh::DistributedVector< T >::size(), libMesh::LaspackVector< T >::size(), libMesh::EigenSparseVector< T >::size(), libMesh::EpetraVector< T >::size(), libMesh::PetscVector< libMesh::Number >::size(), libMesh::DistributedVector< T >::sum(), libMesh::EigenSparseVector< T >::sum(), libMesh::UnstructuredMesh::UnstructuredMesh(), libMesh::LaspackMatrix< T >::update_sparsity_pattern(), libMesh::EpetraMatrix< T >::update_sparsity_pattern(), libMesh::DistributedVector< T >::zero(), libMesh::LaspackVector< T >::zero(), libMesh::EigenSparseVector< T >::zero(), libMesh::EpetraVector< T >::zero(), libMesh::EpetraMatrix< T >::zero(), libMesh::PetscMatrix< T >::zero(), and libMesh::PetscMatrix< T >::zero_rows().

277 {
279 }
bool _is_initialized
Flag that tells if init() has been called.
Definition: libmesh.C:257

◆ INSTANTIATE_FE() [1/4]

libMesh::INSTANTIATE_FE ( )

◆ INSTANTIATE_FE() [2/4]

libMesh::INSTANTIATE_FE ( )

◆ INSTANTIATE_FE() [3/4]

libMesh::INSTANTIATE_FE ( )

◆ INSTANTIATE_FE() [4/4]

libMesh::INSTANTIATE_FE ( )

◆ INSTANTIATE_INF_FE() [1/3]

libMesh::INSTANTIATE_INF_FE ( ,
CARTESIAN   
)

Collect all 1D explicit instantiations for class InfFE.

◆ INSTANTIATE_INF_FE() [2/3]

libMesh::INSTANTIATE_INF_FE ( ,
CARTESIAN   
)

Collect all 2D explicit instantiations for class InfFE.

◆ INSTANTIATE_INF_FE() [3/3]

libMesh::INSTANTIATE_INF_FE ( ,
CARTESIAN   
)

Collect all 3D explicit instantiations for class InfFE.

◆ INSTANTIATE_INF_FE_MBRF() [1/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const)   
)

◆ INSTANTIATE_INF_FE_MBRF() [2/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const)   
)

◆ INSTANTIATE_INF_FE_MBRF() [3/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const)   
)

◆ INSTANTIATE_INF_FE_MBRF() [4/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
edge_reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const)   
)

◆ INSTANTIATE_INF_FE_MBRF() [5/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
edge_reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const)   
)

◆ INSTANTIATE_INF_FE_MBRF() [6/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
edge_reinit(const Elem *, const unsigned int, const Real, const std::vector< Point > *const, const std::vector< Real > *const)   
)

◆ INSTANTIATE_INF_FE_MBRF() [7/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
init_face_shape_functions(const std::vector< Point > &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [8/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
init_face_shape_functions(const std::vector< Point > &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [9/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
init_face_shape_functions(const std::vector< Point > &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [10/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_face_functions()   
)

◆ INSTANTIATE_INF_FE_MBRF() [11/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_face_functions()   
)

◆ INSTANTIATE_INF_FE_MBRF() [12/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_face_functions()   
)

◆ INSTANTIATE_INF_FE_MBRF() [13/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs(const FEType &, const ElemType  
)

◆ INSTANTIATE_INF_FE_MBRF() [14/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs(const FEType &, const ElemType  
)

◆ INSTANTIATE_INF_FE_MBRF() [15/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs(const FEType &, const ElemType  
)

◆ INSTANTIATE_INF_FE_MBRF() [16/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_per_elem(const FEType &, const ElemType  
)

◆ INSTANTIATE_INF_FE_MBRF() [17/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_per_elem(const FEType &, const ElemType  
)

◆ INSTANTIATE_INF_FE_MBRF() [18/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_per_elem(const FEType &, const ElemType  
)

◆ INSTANTIATE_INF_FE_MBRF() [19/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_at_node(const FEType &, const ElemType, const unsigned int  
)

◆ INSTANTIATE_INF_FE_MBRF() [20/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_at_node(const FEType &, const ElemType, const unsigned int  
)

◆ INSTANTIATE_INF_FE_MBRF() [21/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_at_node(const FEType &, const ElemType, const unsigned int  
)

◆ INSTANTIATE_INF_FE_MBRF() [22/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_shape_indices(const FEType &, const ElemType, const unsigned int, unsigned int &, unsigned int &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [23/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_shape_indices(const FEType &, const ElemType, const unsigned int, unsigned int &, unsigned int &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [24/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_shape_indices(const FEType &, const ElemType, const unsigned int, unsigned int &, unsigned int &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [25/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_node_indices(const ElemType, const unsigned int, unsigned int &, unsigned int &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [26/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_node_indices(const ElemType, const unsigned int, unsigned int &, unsigned int &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [27/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_node_indices(const ElemType, const unsigned int, unsigned int &, unsigned int &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [28/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape(const FEType &, const ElemType, const unsigned int, const Point &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [29/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape(const FEType &, const ElemType, const unsigned int, const Point &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [30/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape(const FEType &, const ElemType, const unsigned int, const Point &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [31/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape_deriv(const FEType &, const ElemType, const unsigned int, const unsigned int, const Point &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [32/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape_deriv(const FEType &, const ElemType, const unsigned int, const unsigned int, const Point &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [33/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape_deriv(const FEType &, const ElemType, const unsigned int, const unsigned int, const Point &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [34/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs(const FEType &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [35/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs(const FEType &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [36/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs(const FEType &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [37/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_per_elem(const FEType &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [38/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_per_elem(const FEType &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [39/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_per_elem(const FEType &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [40/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_at_node(const FEType &, const Elem *, const unsigned int  
)

◆ INSTANTIATE_INF_FE_MBRF() [41/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_at_node(const FEType &, const Elem *, const unsigned int  
)

◆ INSTANTIATE_INF_FE_MBRF() [42/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
unsigned  int,
n_dofs_at_node(const FEType &, const Elem *, const unsigned int  
)

◆ INSTANTIATE_INF_FE_MBRF() [43/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_shape_indices(const FEType &, const Elem *, const unsigned int, unsigned int &, unsigned int &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [44/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_shape_indices(const FEType &, const Elem *, const unsigned int, unsigned int &, unsigned int &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [45/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_shape_indices(const FEType &, const Elem *, const unsigned int, unsigned int &, unsigned int &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [46/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape(const FEType &, const Elem *, const unsigned int, const Point &p)   
)

◆ INSTANTIATE_INF_FE_MBRF() [47/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape(const FEType &, const Elem *, const unsigned int, const Point &p)   
)

◆ INSTANTIATE_INF_FE_MBRF() [48/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape(const FEType &, const Elem *, const unsigned int, const Point &p)   
)

◆ INSTANTIATE_INF_FE_MBRF() [49/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape(const FEType, const Elem *, const unsigned int, const Point &, const bool)   
)

◆ INSTANTIATE_INF_FE_MBRF() [50/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape(const FEType, const Elem *, const unsigned int, const Point &, const bool)   
)

◆ INSTANTIATE_INF_FE_MBRF() [51/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape(const FEType, const Elem *, const unsigned int, const Point &, const bool)   
)

◆ INSTANTIATE_INF_FE_MBRF() [52/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape_deriv(const FEType &, const Elem *, const unsigned int, const unsigned int, const Point &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [53/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape_deriv(const FEType &, const Elem *, const unsigned int, const unsigned int, const Point &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [54/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape_deriv(const FEType &, const Elem *, const unsigned int, const unsigned int, const Point &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [55/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape_deriv(const FEType, const Elem *, const unsigned int, const unsigned int, const Point &, const bool)   
)

◆ INSTANTIATE_INF_FE_MBRF() [56/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape_deriv(const FEType, const Elem *, const unsigned int, const unsigned int, const Point &, const bool)   
)

◆ INSTANTIATE_INF_FE_MBRF() [57/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
Real  ,
shape_deriv(const FEType, const Elem *, const unsigned int, const unsigned int, const Point &, const bool)   
)

◆ INSTANTIATE_INF_FE_MBRF() [58/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_data(const FEType &, const Elem *, FEComputeData &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [59/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_data(const FEType &, const Elem *, FEComputeData &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [60/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
compute_data(const FEType &, const Elem *, FEComputeData &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [61/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
nodal_soln(const FEType &, const Elem *, const std::vector< Number > &, std::vector< Number > &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [62/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
nodal_soln(const FEType &, const Elem *, const std::vector< Number > &, std::vector< Number > &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [63/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
nodal_soln(const FEType &, const Elem *, const std::vector< Number > &, std::vector< Number > &)   
)

◆ INSTANTIATE_INF_FE_MBRF() [64/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
inf_compute_constraints(DofConstraints &, DofMap &, const unsigned int, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [65/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
inf_compute_constraints(DofConstraints &, DofMap &, const unsigned int, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [66/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
inf_compute_constraints(DofConstraints &, DofMap &, const unsigned int, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [67/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
inf_compute_node_constraints(NodeConstraints &constraints, const Elem *elem)   
)

◆ INSTANTIATE_INF_FE_MBRF() [68/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
inf_compute_node_constraints(NodeConstraints &constraints, const Elem *elem)   
)

◆ INSTANTIATE_INF_FE_MBRF() [69/69]

libMesh::INSTANTIATE_INF_FE_MBRF ( ,
CARTESIAN  ,
void  ,
inf_compute_node_constraints(NodeConstraints &constraints, const Elem *elem)   
)

◆ is_between()

bool libMesh::is_between ( Real  min,
Real  check,
Real  max 
)
inline

Definition at line 30 of file bounding_box.C.

Referenced by libMesh::BoundingBox::contains_point().

31 {
32  return min <= check && check <= max;
33 }

◆ l1_norm() [1/4]

template<typename T , typename std::enable_if< ScalarTraits< T >::value, int >::type = 0>
auto libMesh::l1_norm ( const T &  var)

Computes the L1 norm.

Definition at line 37 of file fuzzy_equals.h.

38 {
39  return std::abs(var);
40 }

◆ l1_norm() [2/4]

template<typename T >
auto libMesh::l1_norm ( const SparseMatrix< T > &  mat)

Definition at line 688 of file sparse_matrix.h.

689 {
690  return mat.l1_norm();
691 }

◆ l1_norm() [3/4]

template<typename T >
auto libMesh::l1_norm ( const NumericVector< T > &  vec)

Definition at line 1107 of file numeric_vector.h.

Referenced by libMesh::C0Polygon::has_affine_map(), l1_norm_diff(), and relative_fuzzy_equals().

1108 {
1109  return vec.l1_norm();
1110 }

◆ l1_norm() [4/4]

template<typename T >
auto libMesh::l1_norm ( const TypeVector< T > &  var)

Definition at line 1189 of file type_vector.h.

1190 {
1191  return var.l1_norm();
1192 }

◆ l1_norm_diff() [1/4]

template<typename T , typename T2 , typename std::enable_if< ScalarTraits< T >::value &&ScalarTraits< T2 >::value, int >::type = 0>
auto libMesh::l1_norm_diff ( const T &  var1,
const T2 &  var2 
)

Computes the L1 norm of the diff between var1 and var2.

Definition at line 49 of file fuzzy_equals.h.

References l1_norm().

50 {
51  return l1_norm(var1 - var2);
52 }
auto l1_norm(const T &var)
Computes the L1 norm.
Definition: fuzzy_equals.h:37

◆ l1_norm_diff() [2/4]

template<typename T >
auto libMesh::l1_norm_diff ( const SparseMatrix< T > &  mat1,
const SparseMatrix< T > &  mat2 
)

Definition at line 695 of file sparse_matrix.h.

696 {
697  return mat1.l1_norm_diff(mat2);
698 }

◆ l1_norm_diff() [3/4]

template<typename T >
auto libMesh::l1_norm_diff ( const NumericVector< T > &  vec1,
const NumericVector< T > &  vec2 
)

Definition at line 1114 of file numeric_vector.h.

Referenced by absolute_fuzzy_equals(), and libMesh::NumericVector< Number >::l1_norm_diff().

1115 {
1116  return vec1.l1_norm_diff(vec2);
1117 }

◆ l1_norm_diff() [4/4]

template<typename T , typename T2 >
auto libMesh::l1_norm_diff ( const TypeVector< T > &  vec1,
const TypeVector< T2 > &  vec2 
)

Definition at line 1196 of file type_vector.h.

References l1_norm().

1197 {
1198  return l1_norm(vec1 - vec2);
1199 }
auto l1_norm(const TypeVector< T > &var)
Definition: type_vector.h:1189

◆ lagrange_nodal_soln()

void libMesh::lagrange_nodal_soln ( const Elem elem,
const Order  order,
const std::vector< Number > &  elem_soln,
std::vector< Number > &  nodal_soln,
bool  add_p_level = true 
)

Helper functions for Lagrange-based basis functions.

Definition at line 43 of file fe_lagrange.C.

References EDGE3, EDGE4, FIRST, HEX20, HEX27, index_range(), libmesh_assert(), n_nodes, libMesh::Elem::n_nodes(), libMesh::Elem::p_level(), PRISM15, PRISM18, PRISM20, PRISM21, PYRAMID13, PYRAMID14, PYRAMID18, QUAD8, QUAD9, Real, SECOND, TET10, TET14, TRI6, TRI7, and libMesh::Elem::type().

48 {
49  const unsigned int n_nodes = elem->n_nodes();
50  const ElemType type = elem->type();
51 
52  const Order totalorder = order + add_p_level*elem->p_level();
53 
54  nodal_soln.resize(n_nodes);
55 
56 
57 
58  switch (totalorder)
59  {
60  // linear Lagrange shape functions
61  case FIRST:
62  {
63  switch (type)
64  {
65  case EDGE3:
66  {
67  libmesh_assert_equal_to (elem_soln.size(), 2);
68  libmesh_assert_equal_to (nodal_soln.size(), 3);
69 
70  nodal_soln[0] = elem_soln[0];
71  nodal_soln[1] = elem_soln[1];
72  nodal_soln[2] = .5*(elem_soln[0] + elem_soln[1]);
73 
74  return;
75  }
76 
77  case EDGE4:
78  {
79  libmesh_assert_equal_to (elem_soln.size(), 2);
80  libmesh_assert_equal_to (nodal_soln.size(), 4);
81 
82  nodal_soln[0] = elem_soln[0];
83  nodal_soln[1] = elem_soln[1];
84  nodal_soln[2] = (2.*elem_soln[0] + elem_soln[1])/3.;
85  nodal_soln[3] = (elem_soln[0] + 2.*elem_soln[1])/3.;
86 
87  return;
88  }
89 
90 
91  case TRI7:
92  libmesh_assert_equal_to (nodal_soln.size(), 7);
93  nodal_soln[6] = (elem_soln[0] + elem_soln[1] + elem_soln[2])/3.;
94  libmesh_fallthrough();
95  case TRI6:
96  {
97  libmesh_assert (type == TRI7 || nodal_soln.size() == 6);
98  libmesh_assert_equal_to (elem_soln.size(), 3);
99 
100  nodal_soln[0] = elem_soln[0];
101  nodal_soln[1] = elem_soln[1];
102  nodal_soln[2] = elem_soln[2];
103  nodal_soln[3] = .5*(elem_soln[0] + elem_soln[1]);
104  nodal_soln[4] = .5*(elem_soln[1] + elem_soln[2]);
105  nodal_soln[5] = .5*(elem_soln[2] + elem_soln[0]);
106 
107  return;
108  }
109 
110 
111  case QUAD8:
112  case QUAD9:
113  {
114  libmesh_assert_equal_to (elem_soln.size(), 4);
115 
116  if (type == QUAD8)
117  libmesh_assert_equal_to (nodal_soln.size(), 8);
118  else
119  libmesh_assert_equal_to (nodal_soln.size(), 9);
120 
121 
122  nodal_soln[0] = elem_soln[0];
123  nodal_soln[1] = elem_soln[1];
124  nodal_soln[2] = elem_soln[2];
125  nodal_soln[3] = elem_soln[3];
126  nodal_soln[4] = .5*(elem_soln[0] + elem_soln[1]);
127  nodal_soln[5] = .5*(elem_soln[1] + elem_soln[2]);
128  nodal_soln[6] = .5*(elem_soln[2] + elem_soln[3]);
129  nodal_soln[7] = .5*(elem_soln[3] + elem_soln[0]);
130 
131  if (type == QUAD9)
132  nodal_soln[8] = .25*(elem_soln[0] + elem_soln[1] + elem_soln[2] + elem_soln[3]);
133 
134  return;
135  }
136 
137 
138  case TET14:
139  libmesh_assert_equal_to (nodal_soln.size(), 14);
140  nodal_soln[10] = (elem_soln[0] + elem_soln[1] + elem_soln[2])/3.;
141  nodal_soln[11] = (elem_soln[0] + elem_soln[1] + elem_soln[3])/3.;
142  nodal_soln[12] = (elem_soln[1] + elem_soln[2] + elem_soln[3])/3.;
143  nodal_soln[13] = (elem_soln[0] + elem_soln[2] + elem_soln[3])/3.;
144  libmesh_fallthrough();
145  case TET10:
146  {
147  libmesh_assert_equal_to (elem_soln.size(), 4);
148  libmesh_assert (type == TET14 || nodal_soln.size() == 10);
149 
150  nodal_soln[0] = elem_soln[0];
151  nodal_soln[1] = elem_soln[1];
152  nodal_soln[2] = elem_soln[2];
153  nodal_soln[3] = elem_soln[3];
154  nodal_soln[4] = .5*(elem_soln[0] + elem_soln[1]);
155  nodal_soln[5] = .5*(elem_soln[1] + elem_soln[2]);
156  nodal_soln[6] = .5*(elem_soln[2] + elem_soln[0]);
157  nodal_soln[7] = .5*(elem_soln[3] + elem_soln[0]);
158  nodal_soln[8] = .5*(elem_soln[3] + elem_soln[1]);
159  nodal_soln[9] = .5*(elem_soln[3] + elem_soln[2]);
160 
161  return;
162  }
163 
164 
165  case HEX20:
166  case HEX27:
167  {
168  libmesh_assert_equal_to (elem_soln.size(), 8);
169 
170  if (type == HEX20)
171  libmesh_assert_equal_to (nodal_soln.size(), 20);
172  else
173  libmesh_assert_equal_to (nodal_soln.size(), 27);
174 
175  nodal_soln[0] = elem_soln[0];
176  nodal_soln[1] = elem_soln[1];
177  nodal_soln[2] = elem_soln[2];
178  nodal_soln[3] = elem_soln[3];
179  nodal_soln[4] = elem_soln[4];
180  nodal_soln[5] = elem_soln[5];
181  nodal_soln[6] = elem_soln[6];
182  nodal_soln[7] = elem_soln[7];
183  nodal_soln[8] = .5*(elem_soln[0] + elem_soln[1]);
184  nodal_soln[9] = .5*(elem_soln[1] + elem_soln[2]);
185  nodal_soln[10] = .5*(elem_soln[2] + elem_soln[3]);
186  nodal_soln[11] = .5*(elem_soln[3] + elem_soln[0]);
187  nodal_soln[12] = .5*(elem_soln[0] + elem_soln[4]);
188  nodal_soln[13] = .5*(elem_soln[1] + elem_soln[5]);
189  nodal_soln[14] = .5*(elem_soln[2] + elem_soln[6]);
190  nodal_soln[15] = .5*(elem_soln[3] + elem_soln[7]);
191  nodal_soln[16] = .5*(elem_soln[4] + elem_soln[5]);
192  nodal_soln[17] = .5*(elem_soln[5] + elem_soln[6]);
193  nodal_soln[18] = .5*(elem_soln[6] + elem_soln[7]);
194  nodal_soln[19] = .5*(elem_soln[4] + elem_soln[7]);
195 
196  if (type == HEX27)
197  {
198  nodal_soln[20] = .25*(elem_soln[0] + elem_soln[1] + elem_soln[2] + elem_soln[3]);
199  nodal_soln[21] = .25*(elem_soln[0] + elem_soln[1] + elem_soln[4] + elem_soln[5]);
200  nodal_soln[22] = .25*(elem_soln[1] + elem_soln[2] + elem_soln[5] + elem_soln[6]);
201  nodal_soln[23] = .25*(elem_soln[2] + elem_soln[3] + elem_soln[6] + elem_soln[7]);
202  nodal_soln[24] = .25*(elem_soln[3] + elem_soln[0] + elem_soln[7] + elem_soln[4]);
203  nodal_soln[25] = .25*(elem_soln[4] + elem_soln[5] + elem_soln[6] + elem_soln[7]);
204 
205  nodal_soln[26] = .125*(elem_soln[0] + elem_soln[1] + elem_soln[2] + elem_soln[3] +
206  elem_soln[4] + elem_soln[5] + elem_soln[6] + elem_soln[7]);
207  }
208 
209  return;
210  }
211 
212 
213  case PRISM21:
214  nodal_soln[20] = (elem_soln[9] + elem_soln[10] + elem_soln[11])/Real(3);
215  libmesh_fallthrough();
216  case PRISM20:
217  if (type == PRISM20)
218  libmesh_assert_equal_to (nodal_soln.size(), 20);
219  nodal_soln[18] = (elem_soln[0] + elem_soln[1] + elem_soln[2])/Real(3);
220  nodal_soln[19] = (elem_soln[3] + elem_soln[4] + elem_soln[5])/Real(3);
221  libmesh_fallthrough();
222  case PRISM18:
223  if (type == PRISM18)
224  libmesh_assert_equal_to (nodal_soln.size(), 18);
225  nodal_soln[15] = .25*(elem_soln[0] + elem_soln[1] + elem_soln[4] + elem_soln[3]);
226  nodal_soln[16] = .25*(elem_soln[1] + elem_soln[2] + elem_soln[5] + elem_soln[4]);
227  nodal_soln[17] = .25*(elem_soln[2] + elem_soln[0] + elem_soln[3] + elem_soln[5]);
228  libmesh_fallthrough();
229  case PRISM15:
230  {
231  libmesh_assert_equal_to (elem_soln.size(), 6);
232 
233  if (type == PRISM15)
234  libmesh_assert_equal_to (nodal_soln.size(), 15);
235 
236  nodal_soln[0] = elem_soln[0];
237  nodal_soln[1] = elem_soln[1];
238  nodal_soln[2] = elem_soln[2];
239  nodal_soln[3] = elem_soln[3];
240  nodal_soln[4] = elem_soln[4];
241  nodal_soln[5] = elem_soln[5];
242  nodal_soln[6] = .5*(elem_soln[0] + elem_soln[1]);
243  nodal_soln[7] = .5*(elem_soln[1] + elem_soln[2]);
244  nodal_soln[8] = .5*(elem_soln[0] + elem_soln[2]);
245  nodal_soln[9] = .5*(elem_soln[0] + elem_soln[3]);
246  nodal_soln[10] = .5*(elem_soln[1] + elem_soln[4]);
247  nodal_soln[11] = .5*(elem_soln[2] + elem_soln[5]);
248  nodal_soln[12] = .5*(elem_soln[3] + elem_soln[4]);
249  nodal_soln[13] = .5*(elem_soln[4] + elem_soln[5]);
250  nodal_soln[14] = .5*(elem_soln[3] + elem_soln[5]);
251 
252  return;
253  }
254 
255  case PYRAMID18:
256  {
257  libmesh_assert_equal_to (nodal_soln.size(), 18);
258 
259  nodal_soln[14] = (elem_soln[0] + elem_soln[1] + elem_soln[4])/Real(3);
260  nodal_soln[15] = (elem_soln[1] + elem_soln[2] + elem_soln[4])/Real(3);
261  nodal_soln[16] = (elem_soln[2] + elem_soln[3] + elem_soln[4])/Real(3);
262  nodal_soln[17] = (elem_soln[0] + elem_soln[3] + elem_soln[4])/Real(3);
263 
264  libmesh_fallthrough();
265  }
266 
267  case PYRAMID14:
268  {
269  if (type == PYRAMID14)
270  libmesh_assert_equal_to (nodal_soln.size(), 14);
271 
272  nodal_soln[13] = .25*(elem_soln[0] + elem_soln[1] + elem_soln[2] + elem_soln[3]);
273 
274  libmesh_fallthrough();
275  }
276 
277  case PYRAMID13:
278  {
279  libmesh_assert_equal_to (elem_soln.size(), 5);
280 
281  if (type == PYRAMID13)
282  libmesh_assert_equal_to (nodal_soln.size(), 13);
283 
284  nodal_soln[0] = elem_soln[0];
285  nodal_soln[1] = elem_soln[1];
286  nodal_soln[2] = elem_soln[2];
287  nodal_soln[3] = elem_soln[3];
288  nodal_soln[4] = elem_soln[4];
289  nodal_soln[5] = .5*(elem_soln[0] + elem_soln[1]);
290  nodal_soln[6] = .5*(elem_soln[1] + elem_soln[2]);
291  nodal_soln[7] = .5*(elem_soln[2] + elem_soln[3]);
292  nodal_soln[8] = .5*(elem_soln[3] + elem_soln[0]);
293  nodal_soln[9] = .5*(elem_soln[0] + elem_soln[4]);
294  nodal_soln[10] = .5*(elem_soln[1] + elem_soln[4]);
295  nodal_soln[11] = .5*(elem_soln[2] + elem_soln[4]);
296  nodal_soln[12] = .5*(elem_soln[3] + elem_soln[4]);
297 
298  return;
299  }
300  default:
301  {
302  // By default the element solution _is_ nodal,
303  // so just copy it.
304  nodal_soln = elem_soln;
305 
306  return;
307  }
308  }
309  }
310 
311  case SECOND:
312  {
313  switch (type)
314  {
315  case EDGE4:
316  {
317  libmesh_assert_equal_to (elem_soln.size(), 3);
318  libmesh_assert_equal_to (nodal_soln.size(), 4);
319 
320  // Project quadratic solution onto cubic element nodes
321  nodal_soln[0] = elem_soln[0];
322  nodal_soln[1] = elem_soln[1];
323  nodal_soln[2] = (2.*elem_soln[0] - elem_soln[1] +
324  8.*elem_soln[2])/9.;
325  nodal_soln[3] = (-elem_soln[0] + 2.*elem_soln[1] +
326  8.*elem_soln[2])/9.;
327  return;
328  }
329 
330  case TRI7:
331  {
332  libmesh_assert_equal_to (elem_soln.size(), 6);
333  libmesh_assert_equal_to (nodal_soln.size(), 7);
334 
335  for (int i=0; i != 6; ++i)
336  nodal_soln[i] = elem_soln[i];
337 
338  nodal_soln[6] = -1./9. * (elem_soln[0] + elem_soln[1] + elem_soln[2])
339  +4./9. * (elem_soln[3] + elem_soln[4] + elem_soln[5]);
340 
341  return;
342  }
343 
344  case TET14:
345  {
346  libmesh_assert_equal_to (elem_soln.size(), 10);
347  libmesh_assert_equal_to (nodal_soln.size(), 14);
348 
349  for (int i=0; i != 10; ++i)
350  nodal_soln[i] = elem_soln[i];
351 
352  nodal_soln[10] = -1./9. * (elem_soln[0] + elem_soln[1] + elem_soln[2])
353  +4./9. * (elem_soln[4] + elem_soln[5] + elem_soln[6]);
354  nodal_soln[11] = -1./9. * (elem_soln[0] + elem_soln[1] + elem_soln[3])
355  +4./9. * (elem_soln[4] + elem_soln[7] + elem_soln[8]);
356  nodal_soln[12] = -1./9. * (elem_soln[1] + elem_soln[2] + elem_soln[3])
357  +4./9. * (elem_soln[5] + elem_soln[8] + elem_soln[9]);
358  nodal_soln[13] = -1./9. * (elem_soln[0] + elem_soln[2] + elem_soln[3])
359  +4./9. * (elem_soln[6] + elem_soln[7] + elem_soln[9]);
360 
361  return;
362  }
363 
364  case PRISM21:
365  {
366  nodal_soln[20] = (elem_soln[9] + elem_soln[10] + elem_soln[11])/Real(3);
367  libmesh_fallthrough();
368  }
369  case PRISM20:
370  {
371  if (type == PRISM20)
372  libmesh_assert_equal_to (nodal_soln.size(), 20);
373 
374  for (int i=0; i != 18; ++i)
375  nodal_soln[i] = elem_soln[i];
376 
377  nodal_soln[18] = (elem_soln[0] + elem_soln[1] + elem_soln[2])/Real(3);
378  nodal_soln[19] = (elem_soln[3] + elem_soln[4] + elem_soln[5])/Real(3);
379  return;
380  }
381 
382  case PYRAMID18:
383  {
384  libmesh_assert_equal_to (nodal_soln.size(), 18);
385 
386  for (int i=0; i != 14; ++i)
387  nodal_soln[i] = elem_soln[i];
388 
389  nodal_soln[14] = (elem_soln[0] + elem_soln[1] + elem_soln[4])/Real(3);
390  nodal_soln[15] = (elem_soln[1] + elem_soln[2] + elem_soln[4])/Real(3);
391  nodal_soln[16] = (elem_soln[2] + elem_soln[3] + elem_soln[4])/Real(3);
392  nodal_soln[17] = (elem_soln[0] + elem_soln[3] + elem_soln[4])/Real(3);
393 
394  libmesh_fallthrough();
395  }
396 
397  default:
398  {
399  // By default the element solution _is_ nodal, so just
400  // copy the portion relevant to the nodal solution.
401  // (this is the whole nodal solution for true Lagrange
402  // elements, but a smaller part for "L2 Lagrange"
403  libmesh_assert_less_equal(nodal_soln.size(), elem_soln.size());
404  for (const auto i : index_range(nodal_soln))
405  nodal_soln[i] = elem_soln[i];
406 
407  return;
408  }
409  }
410  }
411 
412 
413 
414 
415  default:
416  {
417  // By default the element solution _is_ nodal, so just copy
418  // the portion relevant to the nodal solution. (this is the
419  // whole nodal solution for true Lagrange elements, but a
420  // smaller part for "L2 Lagrange"
421  libmesh_assert_less_equal(nodal_soln.size(), elem_soln.size());
422  for (const auto i : index_range(nodal_soln))
423  nodal_soln[i] = elem_soln[i];
424 
425  return;
426  }
427  }
428 }
ElemType
Defines an enum for geometric element types.
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40
const dof_id_type n_nodes
Definition: tecplot_io.C:67
libmesh_assert(ctx)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:117

◆ libmesh_assert()

libMesh::libmesh_assert ( ctx  )

Referenced by __libmesh_nlopt_equality_constraints(), __libmesh_nlopt_inequality_constraints(), __libmesh_nlopt_objective(), __libmesh_petsc_diff_solver_jacobian(), __libmesh_petsc_diff_solver_residual(), __libmesh_tao_equality_constraints(), __libmesh_tao_equality_constraints_jacobian(), __libmesh_tao_gradient(), __libmesh_tao_hessian(), __libmesh_tao_inequality_constraints(), __libmesh_tao_inequality_constraints_jacobian(), __libmesh_tao_objective(), libMesh::MeshRefinement::_coarsen_elements(), libMesh::Xdr::_complex_data_stream(), libMesh::ExactSolution::_compute_error(), libMesh::FEMContext::_do_elem_position_set(), ContrivedPartitioner::_do_partition(), libMesh::DofMap::_dof_indices(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::BoundaryInfo::_find_id_maps(), libMesh::SteadySolver::_general_residual(), libMesh::PetscVector< libMesh::Number >::_get_array(), libMesh::MeshFunction::_gradient_on_elem(), libMesh::DofMap::_node_dof_indices(), libMesh::GMVIO::_read_one_cell(), libMesh::MeshRefinement::_refine_elements(), libMesh::PetscVector< libMesh::Number >::_restore_array(), libMesh::MeshRefinement::_smooth_flags(), libMesh::Xdr::_xfp_data_stream(), libMesh::DistributedVector< T >::abs(), libMesh::LaspackVector< T >::abs(), libMesh::EigenSparseVector< T >::abs(), libMesh::PetscVector< libMesh::Number >::abs(), libMesh::ElemInternal::active_family_tree(), libMesh::ElemInternal::active_family_tree_by_neighbor(), libMesh::ElemInternal::active_family_tree_by_side(), libMesh::ElemInternal::active_family_tree_by_topological_neighbor(), libMesh::EigenSparseMatrix< T >::add(), libMesh::LaspackMatrix< T >::add(), libMesh::EpetraMatrix< T >::add(), libMesh::DistributedVector< T >::add(), libMesh::PetscMatrix< T >::add(), libMesh::LaspackVector< T >::add(), libMesh::EigenSparseVector< T >::add(), libMesh::PetscVector< libMesh::Number >::add(), libMesh::PetscMatrix< T >::add_block_matrix(), libMesh::MeshTools::Subdivision::add_boundary_ghosts(), libMesh::GMVIO::add_cell_centered_data(), libMesh::Elem::add_child(), add_command_line_name(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::DifferentiableSystem::add_dot_var_dirichlet_bcs(), libMesh::BoundaryInfo::add_edge(), libMesh::ReplicatedMesh::add_elem(), libMesh::MeshRefinement::add_elem(), libMesh::DistributedMesh::add_elem(), libMesh::MeshBase::add_elem_data(), libMesh::MeshBase::add_elem_integers(), libMesh::BoundaryInfo::add_elements(), libMesh::ImplicitSystem::add_matrices(), libMesh::StaticCondensation::add_matrix(), libMesh::EigenSparseMatrix< T >::add_matrix(), libMesh::LaspackMatrix< T >::add_matrix(), libMesh::EpetraMatrix< T >::add_matrix(), libMesh::PetscMatrix< T >::add_matrix(), libMesh::System::add_matrix(), libMesh::ReplicatedMesh::add_node(), libMesh::BoundaryInfo::add_node(), libMesh::DistributedMesh::add_node(), libMesh::MeshRefinement::add_node(), libMesh::MeshBase::add_node_data(), libMesh::MeshBase::add_node_integers(), libMesh::DofMap::add_periodic_boundary(), libMesh::ReplicatedMesh::add_point(), libMesh::HPCoarsenTest::add_projection(), libMesh::EnsightIO::add_scalar(), libMesh::BoundaryInfo::add_shellface(), libMesh::BoundaryInfo::add_side(), libMesh::ExplicitSystem::add_system_rhs(), libMesh::System::add_variable(), libMesh::System::add_variables(), libMesh::EnsightIO::add_vector(), libMesh::LaspackVector< T >::add_vector(), libMesh::EigenSparseVector< T >::add_vector(), libMesh::NumericVector< Number >::add_vector(), libMesh::System::add_vector(), libMesh::EigenSparseVector< T >::add_vector_transpose(), libMesh::ExodusII_IO_Helper::added_node_offset_on(), libMesh::TimeSolver::adjoint_solve(), libMesh::EquationSystems::adjoint_solve(), libMesh::UnstructuredMesh::all_first_order(), libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), libMesh::MeshTools::Modification::all_tri(), libMesh::DofMap::allgather_recursive_constraints(), libMesh::AnalyticFunction< Output >::AnalyticFunction(), libMesh::Elem::ancestor(), libMesh::Utility::do_pow< N, T >::apply(), libMesh::FrequencySystem::assemble(), libMesh::ImplicitSystem::assemble(), assemble_poisson(), assemble_SchroedingerEquation(), libMesh::FEMSystem::assembly(), libMesh::NonlinearImplicitSystem::assembly(), libMesh::Nemesis_IO::assert_symmetric_cmaps(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::RBThetaExpansion::attach_A_theta(), libMesh::System::attach_assemble_function(), libMesh::System::attach_constraint_function(), libMesh::ExactErrorEstimator::attach_exact_deriv(), libMesh::ExactSolution::attach_exact_deriv(), libMesh::ExactErrorEstimator::attach_exact_hessian(), libMesh::ExactSolution::attach_exact_hessian(), libMesh::ExactErrorEstimator::attach_exact_value(), libMesh::ExactSolution::attach_exact_value(), libMesh::RBThetaExpansion::attach_F_theta(), libMesh::System::attach_init_function(), libMesh::TransientRBThetaExpansion::attach_M_theta(), libMesh::DofMap::attach_matrix(), libMesh::RBThetaExpansion::attach_multiple_A_theta(), libMesh::RBThetaExpansion::attach_multiple_F_theta(), libMesh::RBThetaExpansion::attach_output_theta(), libMesh::DifferentiableSystem::attach_qoi(), libMesh::System::attach_QOI_derivative(), libMesh::System::attach_QOI_function(), libMesh::InfFE< Dim, T_radial, T_map >::attach_quadrature_rule(), libMesh::FE< Dim, LAGRANGE_VEC >::attach_quadrature_rule(), libMesh::FESubdivision::attach_quadrature_rule(), libMesh::ExactSolution::attach_reference_solution(), libMesh::ExactErrorEstimator::attach_reference_solution(), libMesh::FrequencySystem::attach_solve_function(), libMesh::StaticCondensation::backwards_substitution(), InfFERadialTest::base_point(), libMesh::Parallel::BinSorter< KeyType, IdxType >::BinSorter(), libMesh::Threads::BoolAcquire::BoolAcquire(), libMesh::BoundaryInfo::boundary_ids(), libMesh::BoundaryProjectSolution::BoundaryProjectSolution(), libMesh::TreeNode< N >::bounds_node(), libMesh::Patch::build_around_element(), libMesh::DofMap::build_constraint_matrix(), libMesh::DofMap::build_constraint_matrix_and_vector(), libMesh::FEMSystem::build_context(), libMesh::MeshTools::Generation::build_cube(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::Partitioner::build_graph(), libMesh::FEMContext::build_new_fe(), libMesh::EquationSystems::build_parallel_elemental_solution_vector(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::DofMap::build_sparsity(), libMesh::System::calculate_norm(), libMesh::VTKIO::cells_to_vtk(), libMesh::DofMap::check_dirichlet_bcid_consistency(), libMesh::DofMap::check_for_constraint_loops(), libMesh::OldSolutionBase< Output, point_output >::check_old_context(), libMesh::Elem::child_ptr(), libMesh::Elem::child_ref_range(), libMesh::Singleton::cleanup(), libMesh::DofMap::clear(), libMesh::MeshTools::clear_spline_nodes(), libMesh::ReplicatedMesh::clone(), libMesh::DistributedMesh::clone(), libMesh::DistributedVector< T >::close(), libMesh::LaspackVector< T >::close(), libMesh::EigenSparseVector< T >::close(), libMesh::LaspackMatrix< T >::close(), libMesh::EpetraVector< T >::close(), libMesh::EpetraMatrix< T >::close(), libMesh::PetscMatrixBase< Number >::closed(), libMesh::EpetraMatrix< T >::closed(), libMesh::Elem::coarsen(), libMesh::MeshRefinement::coarsen_elements(), libMesh::FEGenericBase< FEOutputType< T >::type >::coarsened_dof_values(), libMesh::EpetraMatrix< T >::col_start(), libMesh::PetscMatrixBase< Number >::col_start(), libMesh::EpetraMatrix< T >::col_stop(), libMesh::PetscMatrixBase< Number >::col_stop(), command_line_next(), command_line_value(), command_line_vector(), libMesh::Xdr::comment(), libMesh::System::compare(), libMesh::NumericVector< Number >::compare(), libMesh::WrappedFunction< Output >::component(), libMesh::FEMap::compute_affine_map(), libMesh::FEInterface::compute_constraints(), libMesh::InfFE< Dim, T_radial, T_map >::compute_data(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_dual_shape_functions(), libMesh::FEMap::compute_edge_map(), libMesh::ExactSolution::compute_error(), libMesh::FEMap::compute_face_map(), libMesh::FEXYZ< Dim >::compute_face_values(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::FEMap::compute_map(), libMesh::FEAbstract::compute_node_constraints(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::FEAbstract::compute_periodic_node_constraints(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_proj_constraints(), compute_qp_soln(), compute_qp_soln(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), libMesh::InfFE< Dim, T_radial, T_map >::compute_shape_functions(), libMesh::FEXYZ< Dim >::compute_shape_functions(), libMesh::FEMap::compute_single_point_map(), connect_element_dependencies(), libMesh::InfHex8::connectivity(), libMesh::InfPrism6::connectivity(), libMesh::Pyramid5::connectivity(), libMesh::Prism6::connectivity(), libMesh::Hex8::connectivity(), libMesh::InfPrism12::connectivity(), libMesh::InfHex16::connectivity(), libMesh::Tet4::connectivity(), libMesh::Hex20::connectivity(), libMesh::InfHex18::connectivity(), libMesh::Tet10::connectivity(), libMesh::Pyramid13::connectivity(), libMesh::Prism15::connectivity(), libMesh::Tet14::connectivity(), libMesh::Hex27::connectivity(), libMesh::Prism18::connectivity(), libMesh::Pyramid14::connectivity(), libMesh::Pyramid18::connectivity(), libMesh::DofMap::constrain_element_residual(), libMesh::InverseDistanceInterpolation< KDDim >::construct_kd_tree(), libMesh::UnstructuredMesh::contract(), libMesh::Elem::contract(), libMesh::MeshBase::copy_constraint_rows(), libMesh::Nemesis_IO::copy_elemental_solution(), libMesh::PetscMatrix< T >::copy_from_hash(), libMesh::GMVIO::copy_nodal_solution(), libMesh::MeshTools::correct_node_proc_ids(), libMesh::vectormap< Key, Tp >::count(), libMesh::PetscLinearSolver< Number >::create_complement_is(), libMesh::DofMap::create_dof_constraints(), libMesh::MeshRefinement::create_parent_error_vector(), libMesh::MeshTools::create_processor_bounding_box(), libMesh::MeshTools::create_subdomain_bounding_box(), libMesh::UnstructuredMesh::create_submesh(), libMesh::PetscVector< libMesh::Number >::create_subvector(), libMesh::ElemCutter::cut_2D(), libMesh::ElemCutter::cut_3D(), libMesh::Xdr::data(), libMesh::Xdr::data_stream(), libMesh::InfFERadial::decay_deriv(), libMesh::ParameterVector::deep_resize(), default_solver_package(), libMesh::ReplicatedMesh::delete_elem(), libMesh::DistributedMesh::delete_elem(), libMesh::ReplicatedMesh::delete_node(), libMesh::DistributedMesh::delete_node(), libMesh::MeshCommunication::delete_remote_elements(), designed_for_side_elems(), libMesh::FEGenericBase< FEOutputType< T >::type >::determine_calculations(), libMesh::InfFE< Dim, T_radial, T_map >::determine_calculations(), libMesh::DGFEMContext::DGFEMContext(), libMesh::DirichletBoundary::DirichletBoundary(), libMesh::MeshFunction::disable_out_of_mesh_mode(), libMesh::MeshFunction::discontinuous_gradient(), libMesh::MeshFunction::discontinuous_value(), libMesh::MeshTools::Modification::distort(), libMesh::DofMap::distribute_dofs(), DMlibMeshFunction(), DMlibMeshJacobian(), libMesh::Xdr::do_read(), libMesh::Xdr::do_write(), libMesh::DofMap::dof_indices(), libMesh::DofMap::dof_owner(), libMesh::FE< Dim, LAGRANGE_VEC >::dofs_on_edge(), libMesh::FE< Dim, LAGRANGE_VEC >::dofs_on_side(), libMesh::LaspackVector< T >::dot(), libMesh::EigenSparseVector< T >::dot(), libMesh::BoundaryInfo::edge_boundary_ids(), libMesh::FE< Dim, LAGRANGE_VEC >::edge_reinit(), libMesh::Prism::edges_adjacent_to_node(), libMesh::Hex::edges_adjacent_to_node(), libMesh::Tri::edges_adjacent_to_node(), libMesh::Pyramid::edges_adjacent_to_node(), libMesh::InfPrism::edges_adjacent_to_node(), libMesh::Quad::edges_adjacent_to_node(), libMesh::Tet::edges_adjacent_to_node(), libMesh::InfHex::edges_adjacent_to_node(), libMesh::FEMContext::elem_fe_reinit(), libMesh::FEMContext::elem_position_get(), libMesh::ReplicatedMesh::elem_ptr(), libMesh::DistributedMesh::elem_ptr(), CoupledSystem::element_constraint(), libMesh::TetGenIO::element_in(), libMesh::AdaptiveTimeSolver::element_residual(), libMesh::EigenTimeSolver::element_residual(), SolidSystem::element_time_derivative(), CoupledSystem::element_time_derivative(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::MeshFunction::enable_out_of_mesh_mode(), libMesh::DofObject::end_idx_ints(), libMesh::SolutionHistory::erase(), libMesh::ExactSolution::error_norm(), libMesh::AdaptiveTimeSolver::error_order(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::FEMPhysics::eulerian_residual(), libMesh::InfFEMap::eval(), libMesh::RBThetaExpansion::eval_A_theta(), libMesh::ParsedFEMFunction< T >::eval_args(), libMesh::InfFEMap::eval_deriv(), libMesh::RBThetaExpansion::eval_F_theta(), libMesh::TransientRBThetaExpansion::eval_M_theta(), libMesh::RBThetaExpansion::eval_output_theta(), libMesh::DofMap::extract_local_vector(), libMesh::Factory< Base >::Factory(), libMesh::ElemInternal::family_tree(), libMesh::ElemInternal::family_tree_by_neighbor(), libMesh::ElemInternal::family_tree_by_side(), libMesh::ElemInternal::family_tree_by_subneighbor(), fe_assembly(), fe_fdm_deriv(), libMesh::FEMContext::FEMContext(), libMesh::vectormap< Key, Tp >::find(), libMesh::DofMap::find_connected_dofs(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubFunctor::find_dofs_to_send(), libMesh::Elem::find_edge_neighbors(), libMesh::TreeNode< N >::find_element_in_children(), libMesh::TreeNode< N >::find_elements_in_children(), libMesh::MeshCommunication::find_global_indices(), libMesh::ElemInternal::find_interior_neighbors(), libMesh::ElemCutter::find_intersection_points(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::MeshTools::Subdivision::find_one_ring(), libMesh::ElemInternal::find_point_neighbors(), libMesh::Elem::find_point_neighbors(), libMesh::DTKAdapter::find_sys(), libMesh::EquationSystems::find_variable_numbers(), libMesh::DistributedVector< T >::first_local_index(), libMesh::LaspackVector< T >::first_local_index(), libMesh::EigenSparseVector< T >::first_local_index(), libMesh::EpetraVector< T >::first_local_index(), libMesh::PetscVector< libMesh::Number >::first_local_index(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::MeshTools::Modification::flatten(), libMesh::InfQuad4::flip(), libMesh::InfPrism6::flip(), libMesh::InfHex8::flip(), libMesh::Edge2::flip(), libMesh::Quad4::flip(), libMesh::InfQuad6::flip(), libMesh::C0Polygon::flip(), libMesh::Pyramid5::flip(), libMesh::Edge4::flip(), libMesh::Tri3::flip(), libMesh::Edge3::flip(), libMesh::Prism6::flip(), libMesh::InfPrism12::flip(), libMesh::Quad8::flip(), libMesh::Hex8::flip(), libMesh::Quad9::flip(), libMesh::Tri7::flip(), libMesh::InfHex16::flip(), libMesh::Tri6::flip(), libMesh::Pyramid13::flip(), libMesh::InfHex18::flip(), libMesh::Hex20::flip(), libMesh::Tet10::flip(), libMesh::Tet14::flip(), libMesh::Prism15::flip(), libMesh::Tet4::flip(), libMesh::Pyramid14::flip(), libMesh::Pyramid18::flip(), libMesh::Hex27::flip(), libMesh::Prism20::flip(), libMesh::Prism18::flip(), libMesh::Prism21::flip(), form_matrixA(), libMesh::StaticCondensation::forward_elimination(), fptr(), libMesh::RBEIMEvaluation::gather_bfs(), libMesh::DofMap::gather_constraints(), libMesh::ParameterPointer< T >::get(), libMesh::ParameterMultiPointer< T >::get(), libMesh::ParameterMultiAccessor< T >::get(), libMesh::Parameters::get(), libMesh::ReplicatedMesh::get_boundary_points(), libMesh::StaticCondensation::get_condensed_mat(), libMesh::CondensedEigenSystem::get_condensed_matrix_A(), libMesh::CondensedEigenSystem::get_condensed_matrix_B(), libMesh::CondensedEigenSystem::get_condensed_precond_matrix(), libMesh::PetscMatrixBase< Number >::get_context(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_curl_phi(), libMesh::FEMap::get_curvatures(), libMesh::FEMap::get_d2etadxyz2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phideta2(), libMesh::FEMap::get_d2phideta2_map(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidetadzeta(), libMesh::FEMap::get_d2phidetadzeta_map(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidx2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdy(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxdz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxi2(), libMesh::FEMap::get_d2phidxi2_map(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxideta(), libMesh::FEMap::get_d2phidxideta_map(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidxidzeta(), libMesh::FEMap::get_d2phidxidzeta_map(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidy2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidydz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidz2(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_d2phidzeta2(), libMesh::FEMap::get_d2phidzeta2_map(), libMesh::FEMap::get_d2psideta2(), libMesh::FEMap::get_d2psidxi2(), libMesh::FEMap::get_d2psidxideta(), libMesh::FEMap::get_d2xidxyz2(), libMesh::FEMap::get_d2xyzdeta2(), libMesh::FEMap::get_d2xyzdetadzeta(), libMesh::FEMap::get_d2xyzdxi2(), libMesh::FEMap::get_d2xyzdxideta(), libMesh::FEMap::get_d2xyzdxidzeta(), libMesh::FEMap::get_d2xyzdzeta2(), libMesh::FEMap::get_d2zetadxyz2(), libMesh::DiffContext::get_deltat_value(), libMesh::FEMap::get_detadx(), libMesh::InfFE< Dim, T_radial, T_map >::get_detadx(), libMesh::FEMap::get_detady(), libMesh::InfFE< Dim, T_radial, T_map >::get_detady(), libMesh::FEMap::get_detadz(), libMesh::InfFE< Dim, T_radial, T_map >::get_detadz(), libMesh::HDGProblem::get_dirichlet_velocity(), libMesh::ReplicatedMesh::get_disconnected_subdomains(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_div_phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphi(), libMesh::InfFE< Dim, T_radial, T_map >::get_dphi_over_decay(), libMesh::InfFE< Dim, T_radial, T_map >::get_dphi_over_decayxR(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphideta(), libMesh::FEMap::get_dphideta_map(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidx(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidxi(), libMesh::FEMap::get_dphidxi_map(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidy(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidz(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dphidzeta(), libMesh::FEMap::get_dphidzeta_map(), libMesh::FEMap::get_dpsideta(), libMesh::FEMap::get_dpsidxi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dual_d2phi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dual_dphi(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_dual_phi(), libMesh::FEMap::get_dxidx(), libMesh::InfFE< Dim, T_radial, T_map >::get_dxidx(), libMesh::FEMap::get_dxidy(), libMesh::InfFE< Dim, T_radial, T_map >::get_dxidy(), libMesh::FEMap::get_dxidz(), libMesh::InfFE< Dim, T_radial, T_map >::get_dxidz(), libMesh::FEMap::get_dxyzdeta(), libMesh::FEMap::get_dxyzdxi(), libMesh::FEMap::get_dxyzdzeta(), libMesh::FEMap::get_dzetadx(), libMesh::InfFE< Dim, T_radial, T_map >::get_dzetadx(), libMesh::FEMap::get_dzetady(), libMesh::InfFE< Dim, T_radial, T_map >::get_dzetady(), libMesh::FEMap::get_dzetadz(), libMesh::InfFE< Dim, T_radial, T_map >::get_dzetadz(), libMesh::EigenSystem::get_eigen_solver(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::FEMContext::get_elem(), libMesh::DiffContext::get_elem_jacobian(), libMesh::TetGenWrapper::get_element_attribute(), libMesh::FEMContext::get_element_fe(), libMesh::FEMContext::get_element_qrule(), libMesh::RBConstruction::get_evaluated_thetas(), libMesh::BoundaryInfo::get_global_boundary_ids(), libMesh::MeshBase::get_info(), libMesh::ParsedFEMFunction< T >::get_inline_value(), libMesh::ParsedFunction< T >::get_inline_value(), libMesh::RBEIMEvaluation::get_interior_basis_functions_as_vecs(), libMesh::FEMap::get_jacobian(), libMesh::FEMap::get_JxW(), libMesh::InfFE< Dim, T_radial, T_map >::get_JxW(), libMesh::InfFE< Dim, T_radial, T_map >::get_JxWxdecay_sq(), libMesh::DifferentiableSystem::get_linear_solve_parameters(), libMesh::NewtonSolver::get_linear_solver(), libMesh::DifferentiableSystem::get_linear_solver(), libMesh::DiffContext::get_localized_subvector(), libMesh::DiffContext::get_localized_vector(), AugmentSparsityOnInterface::get_lower_to_upper(), libMesh::EigenSystem::get_matrix_A(), libMesh::EigenSystem::get_matrix_B(), libMesh::GhostingFunctor::get_mesh(), libMesh::MeshBase::get_mesh_subdomains(), libMesh::RBParametrized::get_n_continuous_params(), libMesh::DofMap::get_n_nz(), libMesh::DofMap::get_n_oz(), libMesh::FEMap::get_normals(), libMesh::InfFE< Dim, T_radial, T_map >::get_normals(), libMesh::DofObject::get_old_dof_object_ref(), libMesh::Tri3Subdivision::get_ordered_node(), libMesh::Tri3Subdivision::get_ordered_valence(), libMesh::PerfLog::get_perf_data(), libMesh::FEGenericBase< FEOutputType< T >::type >::get_phi(), libMesh::FEMap::get_phi_map(), libMesh::InfFE< Dim, T_radial, T_map >::get_phi_over_decayxR(), libMesh::MeshFunction::get_point_locator(), libMesh::EigenSystem::get_precond_matrix(), libMesh::DenseMatrix< Real >::get_principal_submatrix(), libMesh::System::get_qoi_error_estimate_value(), libMesh::System::get_qoi_value(), libMesh::EpetraMatrix< T >::get_row(), libMesh::PetscMatrix< T >::get_row(), libMesh::EigenSystem::get_shell_matrix_A(), libMesh::EigenSystem::get_shell_matrix_B(), libMesh::EigenSystem::get_shell_precond_matrix(), libMesh::FEMContext::get_side_fe(), libMesh::FEMContext::get_side_qrule(), libMesh::InfFE< Dim, T_radial, T_map >::get_Sobolev_dweight(), libMesh::InfFE< Dim, T_radial, T_map >::get_Sobolev_dweightxR_sq(), libMesh::InfFE< Dim, T_radial, T_map >::get_Sobolev_weight(), libMesh::InfFE< Dim, T_radial, T_map >::get_Sobolev_weightxR_sq(), libMesh::ImplicitSystem::get_static_condensation(), libMesh::DofMap::get_static_condensation(), libMesh::ImplicitSystem::get_system_matrix(), libMesh::FEMap::get_tangents(), libMesh::InfFE< Dim, T_radial, T_map >::get_tangents(), libMesh::DifferentiableSystem::get_time_solver(), libMesh::FEMap::get_xyz(), libMesh::InfFE< Dim, T_radial, T_map >::get_xyz(), libMesh::NumericVector< Number >::global_relative_compare(), libMesh::QGrundmann_Moller::gm_rule(), gptr(), libMesh::MeshFunction::gradient(), libMesh::MeshRefinement::has_topological_neighbor(), libMesh::CondensedEigenSystem::have_condensed_dofs(), libMesh::MeshFunction::hessian(), libMesh::DofMap::heterogeneously_constrain_element_jacobian_and_residual(), libMesh::DofMap::heterogeneously_constrain_element_residual(), libMesh::Parallel::Histogram< KeyType, IdxType >::Histogram(), libMesh::StatisticsVector< ErrorVectorReal >::histogram(), libMesh::TriangulatorInterface::increase_triangle_order(), libMesh::InfFE< Dim, T_radial, T_map >::inf_compute_constraints(), libMesh::InfFE< Dim, T_radial, T_map >::inf_compute_node_constraints(), libMesh::AdaptiveTimeSolver::init(), libMesh::HDGProblem::init(), libMesh::AnalyticFunction< Output >::init(), libMesh::PointLocatorTree::init(), libMesh::QComposite< QSubCell >::init(), libMesh::DiagonalMatrix< T >::init(), libMesh::EigenSparseMatrix< T >::init(), libMesh::LaspackMatrix< T >::init(), libMesh::MeshFunction::init(), libMesh::PetscNonlinearSolver< Number >::init(), libMesh::EquationSystems::init(), libMesh::DistributedVector< T >::init(), libMesh::EpetraMatrix< T >::init(), libMesh::EpetraVector< T >::init(), libMesh::StaticCondensation::init(), libMesh::PetscVector< libMesh::Number >::init(), libMesh::System::init(), libMesh::QGauss::init_2D(), libMesh::QNodal::init_2D(), libMesh::QGauss::init_3D(), libMesh::QNodal::init_3D(), HilbertSystem::init_context(), NavierSystem::init_data(), CoupledSystem::init_data(), libMesh::DifferentiableSystem::init_data(), libMesh::System::init_data(), libMesh::FEMap::init_edge_shape_functions(), libMesh::FEMap::init_face_shape_functions(), libMesh::InfFE< Dim, T_radial, T_map >::init_face_shape_functions(), libMesh::FEMContext::init_internal_data(), libMesh::System::init_matrices(), libMesh::PetscDMWrapper::init_petscdm(), libMesh::InfFE< Dim, T_radial, T_map >::init_radial_shape_functions(), libMesh::InfFE< Dim, T_radial, T_map >::init_shape_functions(), libMesh::FESubdivision::init_shape_functions(), libMesh::FEXYZ< Dim >::init_shape_functions(), init_shell_mat(), libMesh::ParmetisPartitioner::initialize(), LinearElasticityWithContact::initialize_contact_load_paths(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::ContinuationSystem::initialize_tangent(), libMesh::EpetraVector< T >::inputValues(), libMesh::TreeNode< N >::insert(), libMesh::NumericVector< Number >::insert(), libMesh::TriangulatorInterface::insert_any_extra_boundary_points(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::Elem::interior_parent(), libMesh::BoundingBox::intersects(), libMesh::InfFEMap::inverse_map(), libMesh::FEMap::inverse_map(), libMesh::SystemNorm::is_discrete(), libMesh::C0Polygon::is_edge(), libMesh::Xdr::is_eof(), libMesh::C0Polygon::is_face(), libMesh::Elem::is_mid_infinite_edge_node(), libMesh::Poly2TriTriangulator::is_refine_boundary_allowed(), libMesh::DifferentiablePhysics::is_time_evolving(), libMesh::C0Polygon::is_vertex(), libMesh::C0Polyhedron::is_vertex(), libMesh::HDGProblem::jacobian(), libMesh::SparsityPattern::Build::join(), libMesh::DistributedVector< T >::l1_norm(), libMesh::LaspackVector< T >::l1_norm(), libMesh::EigenSparseVector< T >::l1_norm(), libMesh::EpetraVector< T >::l1_norm(), libMesh::EpetraMatrix< T >::l1_norm(), libMesh::DenseMatrix< Real >::l1_norm(), libMesh::NumericVector< Number >::l1_norm_diff(), libMesh::DistributedVector< T >::l2_norm(), libMesh::LaspackVector< T >::l2_norm(), libMesh::EigenSparseVector< T >::l2_norm(), libMesh::EpetraVector< T >::l2_norm(), libMesh::NumericVector< Number >::l2_norm_diff(), lagrange_nodal_soln(), libMesh::DistributedVector< T >::last_local_index(), libMesh::LaspackVector< T >::last_local_index(), libMesh::EigenSparseVector< T >::last_local_index(), libMesh::EpetraVector< T >::last_local_index(), libMesh::PetscVector< libMesh::Number >::last_local_index(), libMesh::MeshTools::libmesh_assert_connected_nodes(), libMesh::MeshTools::libmesh_assert_consistent_distributed(), libMesh::MeshTools::libmesh_assert_consistent_distributed_nodes(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), libMesh::MeshTools::libmesh_assert_equal_connectivity(), libMesh::MeshTools::libmesh_assert_equal_points(), libMesh::MeshTools::libmesh_assert_no_links_to_elem(), libMesh::MeshTools::libmesh_assert_old_dof_objects(), libMesh::MeshTools::libmesh_assert_parallel_consistent_new_node_procids(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_parallel_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Node >(), libMesh::MeshTools::libmesh_assert_valid_amr_elem_ids(), libMesh::MeshTools::libmesh_assert_valid_amr_interior_parents(), libMesh::MeshTools::libmesh_assert_valid_boundary_ids(), libMesh::MeshTools::libmesh_assert_valid_constraint_rows(), libMesh::MeshTools::libmesh_assert_valid_elem_ids(), libMesh::BoundaryInfo::libmesh_assert_valid_multimaps(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::Elem::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_node_pointers(), libMesh::Elem::libmesh_assert_valid_node_pointers(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_object_ids(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::MeshTools::libmesh_assert_valid_refinement_flags(), libMesh::MeshTools::libmesh_assert_valid_refinement_tree(), libMesh::MeshTools::libmesh_assert_valid_remote_elems(), libMesh::MeshTools::libmesh_assert_valid_unique_ids(), LIBMESH_DEFAULT_VECTORIZED_FE(), libmesh_petsc_DMCoarsen(), libmesh_petsc_DMCreateInterpolation(), libmesh_petsc_DMCreateRestriction(), libmesh_petsc_DMRefine(), libmesh_petsc_snes_fd_residual(), libmesh_petsc_snes_jacobian(), libmesh_petsc_snes_mffd_residual(), libmesh_petsc_snes_postcheck(), libmesh_petsc_snes_precheck(), libmesh_petsc_snes_residual(), libmesh_petsc_snes_residual_helper(), libMesh::DistributedVector< T >::linfty_norm(), libMesh::LaspackVector< T >::linfty_norm(), libMesh::EigenSparseVector< T >::linfty_norm(), libMesh::EpetraVector< T >::linfty_norm(), libMesh::EpetraMatrix< T >::linfty_norm(), libMesh::DenseMatrix< Real >::linfty_norm(), libMesh::RBConstructionBase< CondensedEigenSystem >::load_training_set(), libMesh::System::local_dof_indices(), libMesh::InfPrism12::local_edge_node(), libMesh::InfHex16::local_edge_node(), libMesh::InfHex18::local_edge_node(), libMesh::PetscMatrixBase< Number >::local_m(), libMesh::PetscMatrixBase< Number >::local_n(), libMesh::NumericVector< Number >::local_relative_compare(), libMesh::InfQuad6::local_side_node(), libMesh::InfHex16::local_side_node(), libMesh::Pyramid::local_side_node(), libMesh::Prism::local_side_node(), libMesh::Pyramid13::local_side_node(), libMesh::Prism15::local_side_node(), libMesh::InfPrism::local_side_node(), libMesh::Prism18::local_side_node(), libMesh::Pyramid14::local_side_node(), libMesh::Prism20::local_side_node(), libMesh::InfHex18::local_side_node(), libMesh::Prism21::local_side_node(), libMesh::Pyramid18::local_side_node(), libMesh::DistributedVector< T >::local_size(), libMesh::LaspackVector< T >::local_size(), libMesh::EigenSparseVector< T >::local_size(), libMesh::EpetraVector< T >::local_size(), libMesh::PetscVector< libMesh::Number >::local_size(), libMesh::DofMap::local_variable_indices(), libMesh::DistributedVector< T >::localize(), libMesh::LaspackVector< T >::localize(), libMesh::EigenSparseVector< T >::localize(), libMesh::EpetraVector< T >::localize(), libMesh::PetscVector< libMesh::Number >::localize(), libMesh::DistributedVector< T >::localize_to_one(), libMesh::EpetraVector< T >::localize_to_one(), libMesh::MeshBase::locally_equals(), libMesh::SumShellMatrix< T >::m(), libMesh::EigenSparseMatrix< T >::m(), libMesh::LaspackMatrix< T >::m(), libMesh::EpetraMatrix< T >::m(), libMesh::PetscMatrixBase< Number >::m(), main(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::Elem::make_links_to_me_local(), libMesh::Elem::make_links_to_me_remote(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::InfFEMap::map(), libMesh::FEMap::map(), libMesh::FEMap::map_deriv(), libMesh::PetscVector< libMesh::Number >::map_global_to_local_index(), libMesh::PetscMatrixBase< Number >::mat(), libMesh::EpetraMatrix< T >::mat(), libMesh::PetscMatrix< T >::matrix_matrix_mult(), libMesh::DenseSubVector< T >::max(), libMesh::DistributedVector< T >::max(), libMesh::LaspackVector< T >::max(), libMesh::EigenSparseVector< T >::max(), libMesh::EpetraVector< T >::max(), libMesh::DenseVector< Output >::max(), libMesh::DenseMatrix< Real >::max(), libMesh::DofMap::max_constraint_error(), libMesh::Elem::max_descendant_p_level(), libMesh::DofMap::merge_ghost_functor_outputs(), libMesh::MeshOutput< MeshBase >::mesh(), libMesh::FEMSystem::mesh_position_set(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::OverlapCoupling::mesh_reinit(), libMesh::DefaultCoupling::mesh_reinit(), libMesh::PointNeighborCoupling::mesh_reinit(), libMesh::MeshBase::MeshBase(), libMesh::DenseSubVector< T >::min(), libMesh::DistributedVector< T >::min(), libMesh::LaspackVector< T >::min(), libMesh::EigenSparseVector< T >::min(), libMesh::EpetraVector< T >::min(), libMesh::DenseVector< Output >::min(), libMesh::DenseMatrix< Real >::min(), libMesh::Elem::min_new_p_level_by_neighbor(), libMesh::Elem::min_p_level_by_neighbor(), monomial_n_dofs(), libMesh::SumShellMatrix< T >::n(), libMesh::EigenSparseMatrix< T >::n(), libMesh::LaspackMatrix< T >::n(), libMesh::EpetraMatrix< T >::n(), libMesh::PetscMatrixBase< Number >::n(), libMesh::MeshTools::n_connected_components(), libMesh::MeshBase::n_elem_on_proc(), libMesh::FrequencySystem::n_frequencies(), libMesh::TriangulatorInterface::MeshedHole::n_midpoints(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::QBase::n_points(), libMesh::ParallelObject::n_processors(), libMesh::FEAbstract::n_quadrature_points(), libMesh::InfFE< Dim, T_radial, T_map >::n_quadrature_points(), libMesh::PeriodicBoundaries::neighbor(), libMesh::InfFE< Dim, T_radial, T_map >::nodal_soln(), libMesh::FE< Dim, LAGRANGE_VEC >::nodal_soln(), libMesh::RBEIMEvaluation::node_gather_bfs(), libMesh::Elem::node_id(), libMesh::ExodusII_IO_Helper::node_id_to_vec_id(), libMesh::TetGenIO::node_in(), libMesh::ReplicatedMesh::node_ptr(), libMesh::Elem::node_ptr(), libMesh::DistributedMesh::node_ptr(), libMesh::C0Polygon::nodes_on_side(), libMesh::AdaptiveTimeSolver::nonlocal_residual(), libMesh::EigenTimeSolver::nonlocal_residual(), libMesh::PetscMatrix< T >::norm(), libMesh::PetscVector< libMesh::Number >::norm(), libMesh::DofMap::old_dof_indices(), libMesh::Xdr::open(), libMesh::STLIO::open_file(), libMesh::CompareElemIdsByLevel::operator()(), SolutionFunction< dim >::operator()(), libMesh::AutoAreaFunction::operator()(), libMesh::SiblingCoupling::operator()(), AugmentSparsityOnInterface::operator()(), libMesh::Predicates::abstract_multi_predicate< T >::operator()(), libMesh::WrappedFunction< Output >::operator()(), libMesh::AnalyticFunction< Output >::operator()(), libMesh::OverlapCoupling::operator()(), libMesh::GhostPointNeighbors::operator()(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PointLocatorNanoflann::operator()(), libMesh::PointLocatorTree::operator()(), libMesh::ElemCutter::operator()(), libMesh::DefaultCoupling::operator()(), libMesh::PointNeighborCoupling::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::MeshFunction::operator()(), libMesh::EigenSparseMatrix< T >::operator()(), libMesh::LaspackMatrix< T >::operator()(), libMesh::DistributedVector< T >::operator()(), libMesh::LaspackVector< T >::operator()(), libMesh::EigenSparseVector< T >::operator()(), libMesh::BuildProjectionList::operator()(), libMesh::EpetraVector< T >::operator()(), libMesh::EpetraMatrix< T >::operator()(), libMesh::PetscMatrix< T >::operator()(), libMesh::BoundaryProjectSolution::operator()(), variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Pred< IterType, PredType >::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::Predicates::multi_evaluable< T >::operator()(), libMesh::CompareDofObjectsByID::operator()(), libMesh::CompareDofObjectsByPIDAndThenID::operator()(), libMesh::EigenSparseVector< T >::operator*=(), libMesh::EpetraVector< T >::operator*=(), libMesh::ConstCouplingRowConstIterator::operator++(), libMesh::PerfData::operator+=(), libMesh::DistributedVector< T >::operator+=(), libMesh::LaspackVector< T >::operator+=(), libMesh::EigenSparseVector< T >::operator+=(), libMesh::EpetraVector< T >::operator+=(), libMesh::PetscVector< libMesh::Number >::operator+=(), libMesh::DistributedVector< T >::operator-=(), libMesh::LaspackVector< T >::operator-=(), libMesh::EigenSparseVector< T >::operator-=(), libMesh::EpetraVector< T >::operator-=(), libMesh::PetscVector< libMesh::Number >::operator-=(), libMesh::EigenSparseVector< T >::operator/=(), libMesh::EpetraVector< T >::operator/=(), libMesh::Xdr::operator<<(), libMesh::ParsedFEMFunction< T >::operator=(), libMesh::PetscMatrix< T >::operator=(), libMesh::DistributedVector< T >::operator=(), libMesh::LaspackVector< T >::operator=(), libMesh::EigenSparseVector< T >::operator=(), libMesh::PetscVector< libMesh::Number >::operator=(), libMesh::ConstCouplingRow::operator==(), libMesh::ConstCouplingRowConstIterator::operator==(), libMesh::Xdr::operator>>(), libMesh::vectormap< Key, Tp >::operator[](), libMesh::C0Polygon::opposite_node(), libMesh::Hex::opposite_node(), libMesh::Edge::opposite_node(), libMesh::Quad::opposite_node(), libMesh::DistributedMesh::own_node(), libMesh::XdrIO::pack_element(), libMesh::DistributedMesh::parallel_max_elem_id(), libMesh::DistributedMesh::parallel_max_node_id(), libMesh::SparsityPattern::Build::parallel_sync(), libMesh::Elem::parent_bracketing_nodes(), libMesh::MeshBase::partition(), libMesh::MetisPartitioner::partition_range(), libMesh::RBAssemblyExpansion::perform_A_boundary_assembly(), libMesh::RBAssemblyExpansion::perform_A_interior_assembly(), libMesh::RBAssemblyExpansion::perform_F_boundary_assembly(), libMesh::RBAssemblyExpansion::perform_F_interior_assembly(), libMesh::TransientRBAssemblyExpansion::perform_M_boundary_assembly(), libMesh::TransientRBAssemblyExpansion::perform_M_interior_assembly(), libMesh::RBAssemblyExpansion::perform_output_boundary_assembly(), libMesh::RBAssemblyExpansion::perform_output_interior_assembly(), libMesh::Elem::point(), libMesh::System::point_gradient(), libMesh::System::point_hessian(), libMesh::System::point_value(), libMesh::PetscVector< libMesh::Number >::pointwise_divide(), libMesh::PetscVector< libMesh::Number >::pointwise_mult(), libMesh::Polyhedron::Polyhedron(), libMesh::PerfLog::pop(), libMesh::DifferentiableSystem::pop_physics(), libMesh::LaspackMatrix< T >::pos(), libMesh::METIS_CSR_Graph< IndexType >::prepare_for_use(), libMesh::MeshBase::prepare_for_use(), libMesh::DofMap::prepare_send_list(), libMesh::MeshTools::Subdivision::prepare_subdivision_mesh(), libMesh::HDGProblem::pressure_volume_jacobian(), libMesh::SparseMatrix< ValOut >::print(), libMesh::NumericVector< Number >::print(), libMesh::NumericVector< Number >::print_global(), libMesh::QBase::print_info(), libMesh::PetscMatrix< T >::print_matlab(), libMesh::PetscVector< libMesh::Number >::print_matlab(), libMesh::SparseMatrix< ValOut >::print_matlab(), libMesh::NumericVector< Number >::print_matlab(), libMesh::EpetraMatrix< T >::print_personal(), libMesh::PetscMatrix< T >::print_personal(), libMesh::PetscMatrix< T >::print_petsc_binary(), libMesh::PetscMatrix< T >::print_petsc_hdf5(), libMesh::DofMap::process_constraints(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::Partitioner::processor_pairs_to_interface_nodes(), libMesh::System::project_vector(), libMesh::ParameterVector::push_back(), libMesh::QComposite< QSubCell >::QComposite(), libMesh::ReplicatedMesh::query_elem_ptr(), libMesh::DistributedMesh::query_elem_ptr(), query_ghosting_functors(), libMesh::ReplicatedMesh::query_node_ptr(), libMesh::DistributedMesh::query_node_ptr(), libMesh::BoundaryInfo::raw_boundary_ids(), libMesh::BoundaryInfo::raw_edge_boundary_ids(), libMesh::BoundaryInfo::raw_shellface_boundary_ids(), libMesh::TransientRBEvaluation::rb_solve_again(), libMesh::AbaqusIO::read(), libMesh::Nemesis_IO::read(), libMesh::DynaIO::read(), libMesh::CheckpointIO::read(), libMesh::EquationSystems::read(), libMesh::PltLoader::read_block_data(), libMesh::CheckpointIO::read_connectivity(), libMesh::PltLoader::read_data(), libMesh::ExodusII_IO_Helper::read_elem_in_block(), libMesh::PltLoader::read_feblock_data(), libMesh::PltLoader::read_fepoint_data(), libMesh::PltLoader::read_header(), libMesh::System::read_header(), libMesh::UCDIO::read_implementation(), libMesh::RBEvaluation::read_in_vectors_from_multiple_files(), libMesh::System::read_legacy_data(), libMesh::SparseMatrix< ValOut >::read_matlab(), libMesh::NumericVector< Number >::read_matlab(), libMesh::GmshIO::read_mesh(), libMesh::System::read_parallel_data(), libMesh::PltLoader::read_point_data(), libMesh::CheckpointIO::read_remote_elem(), libMesh::XdrIO::read_serialized_bcs_helper(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::XdrIO::read_serialized_nodes(), libMesh::XdrIO::read_serialized_nodesets(), libMesh::System::read_serialized_vector(), libMesh::System::read_serialized_vectors(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::Nemesis_IO_Helper::read_var_names_impl(), libMesh::MeshTools::Modification::redistribute(), libMesh::StaticCondensationDofMap::reduced_system(), libMesh::EquationSystems::redundant_added_side(), libMesh::TreeNode< N >::refine(), libMesh::Elem::refine(), libMesh::MeshRefinement::refine_and_coarsen_elements(), libMesh::MeshRefinement::refine_elements(), libMesh::BoundaryInfo::regenerate_id_sets(), libMesh::AdaptiveTimeSolver::reinit(), libMesh::StaticCondensationDofMap::reinit(), libMesh::DifferentiableSystem::reinit(), libMesh::TimeSolver::reinit(), libMesh::InfFE< Dim, T_radial, T_map >::reinit(), libMesh::FE< Dim, LAGRANGE_VEC >::reinit(), libMesh::FEXYZ< Dim >::reinit(), libMesh::DofMap::reinit(), libMesh::FE< Dim, LAGRANGE_VEC >::reinit_default_dual_shape_coeffs(), libMesh::MeshBase::reinit_ghosting_functors(), libMesh::BoundaryInfo::remove(), libMesh::DofMap::remove_adjoint_dirichlet_boundary(), libMesh::DofMap::remove_dirichlet_boundary(), libMesh::BoundaryInfo::remove_edge(), libMesh::Elem::remove_links_to_me(), libMesh::BoundaryInfo::remove_node(), libMesh::BoundaryInfo::remove_shellface(), libMesh::BoundaryInfo::remove_side(), libMesh::System::remove_vector(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::ReplicatedMesh::renumber_elem(), libMesh::DistributedMesh::renumber_elem(), libMesh::ReplicatedMesh::renumber_node(), libMesh::DistributedMesh::renumber_node(), libMesh::ReplicatedMesh::renumber_nodes_and_elements(), libMesh::Elem::replace_child(), libMesh::StoredRange< iterator_type, object_type >::reset(), libMesh::PetscMatrix< T >::reset_preallocation(), libMesh::HDGProblem::residual(), libMesh::PetscLinearSolver< Number >::restrict_solve_to_is_local_size(), libMesh::C0Polyhedron::retriangulate(), libMesh::C0Polygon::retriangulate(), libMesh::MemoryHistoryData::retrieve_vectors(), libMesh::MemoryHistoryData::rewrite_stored_solution(), libMesh::FileHistoryData::rewrite_stored_solution(), libMesh::EpetraMatrix< T >::row_start(), libMesh::PetscMatrixBase< Number >::row_start(), libMesh::EpetraMatrix< T >::row_stop(), libMesh::PetscMatrixBase< Number >::row_stop(), OverlappingCouplingGhostingTest::run_sparsity_pattern_test(), libMesh::DofMap::SCALAR_dof_indices(), libMesh::LaspackVector< T >::scale(), libMesh::DistributedVector< T >::scale(), libMesh::EigenSparseVector< T >::scale(), libMesh::PetscMatrix< T >::scale(), libMesh::PetscVector< libMesh::Number >::scale(), libMesh::SparseMatrix< ValOut >::scale(), libMesh::Tet14::second_order_adjacent_vertex(), libMesh::HPCoarsenTest::select_refinement(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::send_and_insert_dof_values(), libMesh::EquationSystems::sensitivity_solve(), libMesh::ParameterPointer< T >::set(), libMesh::ParameterMultiPointer< T >::set(), libMesh::ParameterMultiAccessor< T >::set(), libMesh::EigenSparseMatrix< T >::set(), libMesh::LaspackMatrix< T >::set(), libMesh::EpetraMatrix< T >::set(), libMesh::PetscMatrix< T >::set(), libMesh::DistributedVector< T >::set(), libMesh::LaspackVector< T >::set(), libMesh::EigenSparseVector< T >::set(), libMesh::Elem::set_child(), libMesh::PetscMatrixBase< Number >::set_context(), libMesh::StaticCondensation::set_current_elem(), libMesh::DofObject::set_dof_number(), libMesh::RBTemporalDiscretization::set_euler_theta(), libMesh::FrequencySystem::set_frequencies(), libMesh::ParsedFEMFunction< T >::set_inline_value(), libMesh::ParsedFunction< T >::set_inline_value(), libMesh::Elem::set_interior_parent(), libMesh::TriangulatorInterface::set_interpolate_boundary_points(), libMesh::Partitioner::set_node_processor_ids(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::SystemNorm::set_off_diagonal_weight(), libMesh::DofObject::set_old_dof_object(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::System::set_qoi(), libMesh::System::set_qoi_error_estimate(), libMesh::OverlapCoupling::set_quadrature_rule(), libMesh::SFCPartitioner::set_sfc_type(), libMesh::SystemNorm::set_type(), libMesh::SystemNorm::set_weight(), setup(), libMesh::Singleton::setup(), libMesh::StaticCondensation::setup(), libMesh::ImplicitSystem::setup_static_condensation_preconditioner(), libMesh::FE< Dim, LAGRANGE_VEC >::shape(), libMesh::InfFE< Dim, T_radial, T_map >::shape(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_deriv(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv(), libMesh::BoundaryInfo::shellface_boundary_ids(), libMesh::SimplexRefiner::should_refine_elem(), libMesh::Poly2TriTriangulator::should_refine_elem(), libMesh::FEMContext::side_fe_reinit(), libMesh::RBEIMEvaluation::side_gather_bfs(), libMesh::AdaptiveTimeSolver::side_residual(), libMesh::EigenTimeSolver::side_residual(), libMesh::DistributedVector< T >::size(), libMesh::LaspackVector< T >::size(), libMesh::EigenSparseVector< T >::size(), libMesh::EpetraVector< T >::size(), libMesh::PetscVector< libMesh::Number >::size(), libMesh::TwostepTimeSolver::solve(), libMesh::NewtonSolver::solve(), libMesh::PetscDiffSolver::solve(), libMesh::TaoOptimizationSolver< T >::solve(), libMesh::EigenSystem::solve(), libMesh::NloptOptimizationSolver< T >::solve(), libMesh::CondensedEigenSystem::solve(), libMesh::TimeSolver::solve(), libMesh::FrequencySystem::solve(), libMesh::EquationSystems::solve(), libMesh::EigenSystem::solve_helper(), libMesh::ContinuationSystem::solve_tangent(), libMesh::DofObject::start_idx_ints(), libMesh::DofMap::stash_dof_constraints(), libMesh::MemorySolutionHistory::store(), libMesh::FileSolutionHistory::store(), libMesh::MemoryHistoryData::store_initial_solution(), libMesh::FileHistoryData::store_initial_solution(), libMesh::MeshBase::sub_point_locator(), libMesh::DistributedMesh::subclass_locally_equals(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubProjector::SubProjector(), libMesh::NumericVector< Number >::subset_l1_norm(), libMesh::NumericVector< Number >::subset_l2_norm(), libMesh::NumericVector< Number >::subset_linfty_norm(), libMesh::DistributedVector< T >::sum(), libMesh::LaspackVector< T >::sum(), libMesh::EigenSparseVector< T >::sum(), libMesh::EpetraVector< T >::sum(), libMesh::PetscVector< libMesh::Number >::sum(), libMesh::DifferentiableSystem::swap_physics(), libMesh::BoundaryInfo::sync(), libMesh::Parallel::sync_dofobject_data_by_id(), libMesh::Parallel::sync_dofobject_data_by_xyz(), libMesh::Parallel::sync_element_data_by_parent_id(), libMesh::Parallel::sync_node_data_by_element_id_once(), libMesh::MeshRefinement::test_level_one(), libMesh::MeshRefinement::test_unflagged(), PointNeighborCouplingTest::testCoupling(), MeshTriangulationTest::testEdgesMesh(), MeshTriangulationTest::testHalfDomain(), InfFERadialTest::testSides(), libMesh::Elem::top_parent(), libMesh::MeshRefinement::topological_neighbor(), libMesh::ElemInternal::total_family_tree_by_neighbor(), libMesh::ElemInternal::total_family_tree_by_subneighbor(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::MeshFunctionSolutionTransfer::transfer(), libMesh::DirectSolutionTransfer::transfer(), libMesh::DTKSolutionTransfer::transfer(), libMesh::Tree< N >::Tree(), libMesh::TreeNode< N >::TreeNode(), libMesh::NetGenMeshInterface::triangulate(), libMesh::Poly2TriTriangulator::triangulate_current_points(), libMesh::SystemNorm::type(), libMesh::MeshRefinement::uniformly_coarsen(), libMesh::DofObject::unique_id(), libMesh::DofObject::unpack_indexing(), libMesh::DofMap::unstash_dof_constraints(), libMesh::UnstructuredMesh::UnstructuredMesh(), libMesh::System::update(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::ContinuationSystem::update_solution(), libMesh::LaspackMatrix< T >::update_sparsity_pattern(), libMesh::EpetraMatrix< T >::update_sparsity_pattern(), libMesh::DofMap::update_sparsity_pattern(), libMesh::DofMap::var_group_from_var_number(), libMesh::EpetraVector< T >::vec(), libMesh::PetscVector< libMesh::Number >::vec(), libMesh::System::vector_is_adjoint(), libMesh::System::vector_name(), libMesh::MeshTetInterface::volume_to_surface_mesh(), libMesh::SystemNorm::weight(), libMesh::SystemNorm::weight_sq(), libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve(), libMesh::Elem::which_child_am_i(), libMesh::Elem::which_neighbor_am_i(), libMesh::Elem::which_side_am_i(), libMesh::FroIO::write(), libMesh::ExodusII_IO::write(), libMesh::EquationSystems::write(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::CheckpointIO::write_bcs(), libMesh::GMVIO::write_binary(), libMesh::CheckpointIO::write_connectivity(), libMesh::Elem::write_connectivity(), libMesh::MeshOutput< MeshBase >::write_discontinuous_equation_systems(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::MeshOutput< MeshBase >::write_equation_systems(), libMesh::UCDIO::write_header(), libMesh::System::write_header(), libMesh::UCDIO::write_implementation(), libMesh::UCDIO::write_interior_elems(), libMesh::GmshIO::write_mesh(), libMesh::UCDIO::write_nodal_data(), libMesh::UCDIO::write_nodes(), libMesh::CheckpointIO::write_nodesets(), libMesh::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_side_basis_functions(), libMesh::XdrIO::write_parallel(), libMesh::System::write_parallel_data(), libMesh::CheckpointIO::write_remote_elem(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), libMesh::UCDIO::write_soln(), libMesh::GnuPlotIO::write_solution(), libMesh::TypeTensor< T >::write_unformatted(), libMesh::DistributedVector< T >::zero(), libMesh::LaspackVector< T >::zero(), libMesh::EigenSparseVector< T >::zero(), libMesh::EpetraVector< T >::zero(), libMesh::EpetraMatrix< T >::zero(), libMesh::PetscVector< libMesh::Number >::zero(), libMesh::PetscMatrix< T >::zero(), and libMesh::PetscMatrix< T >::zero_rows().

◆ libmesh_cast_int()

template<typename Tnew , typename Told >
Tnew libMesh::libmesh_cast_int ( Told  oldvar)
inline

Definition at line 626 of file libmesh_common.h.

627 {
628  // we use the less redundantly named libMesh::cast_int now
629  return cast_int<Tnew>(oldvar);
630 }

◆ libmesh_cast_ptr()

template<typename Tnew , typename Told >
Tnew libMesh::libmesh_cast_ptr ( Told *  oldvar)
inline

Definition at line 598 of file libmesh_common.h.

599 {
600  libmesh_deprecated();
601 
602  // we use the less redundantly named libMesh::cast_ptr now
603  return cast_ptr<Tnew>(oldvar);
604 }

◆ libmesh_conj() [1/2]

template<typename T >
T libMesh::libmesh_conj ( a)
inline

◆ libmesh_conj() [2/2]

template<typename T >
std::complex<T> libMesh::libmesh_conj ( std::complex< T >  a)
inline

Definition at line 197 of file libmesh_common.h.

197 { return std::conj(a); }

◆ LIBMESH_DEFAULT_VEC_NDOFS()

libMesh::LIBMESH_DEFAULT_VEC_NDOFS ( HIERARCHIC  )

Definition at line 738 of file fe_hierarchic_vec.C.

References libMesh::FE< Dim, T >::n_dofs().

742  { return FE<0,L2_HIERARCHIC>::n_dofs(t,o); }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [1/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( LIBMESH_DEFAULT_VECTORIZED_FE(  0,
HIERARCHIC   
)

Definition at line 28 of file fe_hierarchic_shape_0D.C.

39 {
40  libmesh_assert_less (i, 1);
41  return 1.;
42 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [2/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( LIBMESH_DEFAULT_VECTORIZED_FE(  0,
LAGRANGE   
)

Definition at line 28 of file fe_lagrange_shape_0D.C.

37 {
38  libmesh_assert_less (i, 1);
39  return 1.;
40 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [3/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( template <>Real FE 0,
BERNSTEIN   
)

Definition at line 30 of file fe_bernstein_shape_0D.C.

38 {
39  libmesh_assert_less (i, 1);
40  return 1.;
41 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [4/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( template <>Real FE 0,
CLOUGH   
)

Definition at line 30 of file fe_clough_shape_0D.C.

38 {
39  libmesh_assert_less (i, 1);
40  return 1.;
41 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [5/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( template <>Real FE 0,
HERMITE   
)

Definition at line 30 of file fe_hermite_shape_0D.C.

38 {
39  libmesh_assert_less (i, 1);
40  return 1.;
41 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [6/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( template <>Real FE 0,
MONOMIAL   
)

Definition at line 30 of file fe_monomial_shape_0D.C.

38 {
39  libmesh_assert_less (i, 1);
40  return 1.;
41 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [7/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( template <>Real FE 0,
RATIONAL_BERNSTEIN   
)

Definition at line 30 of file fe_rational_shape_0D.C.

38 {
39  libmesh_assert_less (i, 1);
40  return 1.;
41 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [8/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( template <>Real FE 0,
SCALAR   
)

Definition at line 30 of file fe_scalar_shape_0D.C.

38 {
39  return 1.;
40 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [9/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( template <>Real FE 0,
SZABAB   
)

Definition at line 30 of file fe_szabab_shape_0D.C.

38 {
39  libmesh_assert_less (i, 1);
40  return 1.;
41 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [10/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( template <>Real FE 0,
XYZ   
)

Definition at line 30 of file fe_xyz_shape_0D.C.

38 {
39  libmesh_assert_less (i, 1);
40  return 1.;
41 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [11/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( ,
MONOMIAL_VEC   
)

Definition at line 31 of file fe_monomial_vec.C.

References CONSTANT, dim, libMesh::FEAbstract::get_refspace_nodes(), MONOMIAL, n_nodes, libMesh::Elem::n_nodes(), libMesh::FEInterface::n_shape_functions(), libMesh::Elem::p_level(), libMesh::FEInterface::shape(), and libMesh::Elem::type().

42 {
43 void
44 monomial_vec_nodal_soln(const Elem * elem,
45  const Order order,
46  const std::vector<Number> & elem_soln,
47  const int dim,
48  std::vector<Number> & nodal_soln,
49  const bool add_p_level)
50 {
51  const unsigned int n_nodes = elem->n_nodes();
52 
53  const ElemType elem_type = elem->type();
54 
55  nodal_soln.resize(dim * n_nodes);
56 
57  const Order totalorder = order + add_p_level*elem->p_level();
58 
59  switch (totalorder)
60  {
61  // Constant shape functions
62  case CONSTANT:
63  {
64  libmesh_assert_equal_to(elem_soln.size(), static_cast<unsigned int>(dim));
65  switch (dim)
66  {
67  case 2:
68  case 3:
69  {
70  for (unsigned int n = 0; n < n_nodes; n++)
71  std::copy(elem_soln.begin(), elem_soln.end(), nodal_soln.begin() + dim*n);
72  return;
73  }
74  default:
75  libmesh_error_msg(
76  "The monomial_vec_nodal_soln helper should only be called for 2 and 3 dimensions");
77  }
78  }
79 
80  // For other orders, do interpolation at the nodes
81  // explicitly.
82  default:
83  {
84  // FEType object to be passed to various FEInterface functions below.
85  FEType fe_type(order, MONOMIAL);
86 
87  const unsigned int n_sf = FEInterface::n_shape_functions(fe_type, elem);
88 
89  std::vector<Point> refspace_nodes;
90  FEBase::get_refspace_nodes(elem_type, refspace_nodes);
91  libmesh_assert_equal_to(refspace_nodes.size(), n_nodes);
92  libmesh_assert_equal_to(elem_soln.size(), n_sf * dim);
93 
94  // Zero before summation
95  std::fill(nodal_soln.begin(), nodal_soln.end(), 0);
96 
97  for (unsigned int d = 0; d < static_cast<unsigned int>(dim); d++)
98  for (unsigned int n = 0; n < n_nodes; n++)
99  // u_i = Sum (alpha_i phi_i)
100  for (unsigned int i = 0; i < n_sf; i++)
101  nodal_soln[d + dim * n] += elem_soln[d + dim * i] *
102  FEInterface::shape(fe_type, elem, i, refspace_nodes[n]);
103 
104  return;
105  } // default
106  } // switch
107 }
108 } // anonymous namespace
ElemType
Defines an enum for geometric element types.
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40
unsigned int dim
const dof_id_type n_nodes
Definition: tecplot_io.C:67

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [12/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( ,
HIERARCHIC_VEC   
)

Definition at line 34 of file fe_hierarchic_vec.C.

References CONSTANT, dim, libMesh::FEAbstract::get_refspace_nodes(), HIERARCHIC, libmesh_assert(), n_nodes, libMesh::Elem::n_nodes(), libMesh::FEInterface::n_shape_functions(), libMesh::FEInterface::shape(), and libMesh::Elem::type().

49  {
50 void hierarchic_vec_nodal_soln(const Elem * elem,
51  const Order order,
52  const std::vector<Number> & elem_soln,
53  const int dim,
54  std::vector<Number> & nodal_soln,
55  const bool add_p_level)
56 {
57  const unsigned int n_nodes = elem->n_nodes();
58 
59  // Constant shape functions can't be supported, even for
60  // L2_HIERARCHIC*, without breaking the "HIERARCHIC is
61  // hierarchic" guarantee
62  libmesh_assert(order != CONSTANT);
63 
64  nodal_soln.resize(dim*n_nodes);
65 
66  // Do interpolation at the nodes explicitly.
67  FEType fe_type(order, HIERARCHIC);
68 
69  const unsigned int n_sf =
70  FEInterface::n_shape_functions(fe_type, elem, add_p_level);
71 
72  std::vector<Point> refspace_nodes;
73  FEBase::get_refspace_nodes(elem->type(),refspace_nodes);
74  libmesh_assert_equal_to (refspace_nodes.size(), n_nodes);
75  libmesh_assert_equal_to (elem_soln.size(), n_sf*dim);
76 
77  // Zero before summation
78  std::fill(nodal_soln.begin(), nodal_soln.end(), 0);
79 
80  for (unsigned int n=0; n<n_nodes; n++)
81  for (int d=0; d != dim; ++d)
82  // u_i = Sum (alpha_i phi_i); we're here only looking
83  // at vector components in direction d
84  for (unsigned int i=0; i<n_sf; i++)
85  nodal_soln[n*dim+d] += elem_soln[i*dim+d] *
86  FEInterface::shape(fe_type, elem, i, refspace_nodes[n]);
87 
88 }// void hierarchic_vec_nodal_soln
89 
90 } // anonymous namespace
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40
unsigned int dim
const dof_id_type n_nodes
Definition: tecplot_io.C:67
libmesh_assert(ctx)

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [13/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( ,
LAGRANGE_VEC   
)

Definition at line 34 of file fe_lagrange_vec.C.

References dim, libMesh::Utility::enum_to_string(), FIRST, HEX20, HEX27, libmesh_assert(), n_nodes, libMesh::Elem::n_nodes(), libMesh::Elem::p_level(), PRISM15, PRISM18, PRISM20, PRISM21, QUAD8, QUAD9, Real, SECOND, TET10, TET14, THIRD, TRI6, TRI7, and libMesh::Elem::type().

49  {
50 void lagrange_vec_nodal_soln(const Elem * elem,
51  const Order order,
52  const std::vector<Number> & elem_soln,
53  const int dim,
54  std::vector<Number> & nodal_soln,
55  const bool add_p_level)
56 {
57  const unsigned int n_nodes = elem->n_nodes();
58  const ElemType type = elem->type();
59 
60  const Order totalorder = order + add_p_level*elem->p_level();
61 
62  nodal_soln.resize(dim*n_nodes);
63 
64  switch (totalorder)
65  {
66  // linear Lagrange shape functions
67  case FIRST:
68  {
69  switch (type)
70  {
71  case TRI7:
72  libmesh_assert_equal_to (nodal_soln.size(), 14);
73  nodal_soln[12] = (elem_soln[0] + elem_soln[2] + elem_soln[4])/3.;
74  nodal_soln[13] = (elem_soln[1] + elem_soln[3] + elem_soln[5])/3.;
75  libmesh_fallthrough();
76  case TRI6:
77  {
78  libmesh_assert (type == TRI7 || nodal_soln.size() == 12);
79  libmesh_assert_equal_to (elem_soln.size(), 2*3);
80 
81  // node 0 components
82  nodal_soln[0] = elem_soln[0];
83  nodal_soln[1] = elem_soln[1];
84 
85  // node 1 components
86  nodal_soln[2] = elem_soln[2];
87  nodal_soln[3] = elem_soln[3];
88 
89  // node 2 components
90  nodal_soln[4] = elem_soln[4];
91  nodal_soln[5] = elem_soln[5];
92 
93  // node 3 components
94  nodal_soln[6] = .5*(elem_soln[0] + elem_soln[2]);
95  nodal_soln[7] = .5*(elem_soln[1] + elem_soln[3]);
96 
97  // node 4 components
98  nodal_soln[8] = .5*(elem_soln[2] + elem_soln[4]);
99  nodal_soln[9] = .5*(elem_soln[3] + elem_soln[5]);
100 
101  // node 5 components
102  nodal_soln[10] = .5*(elem_soln[0] + elem_soln[4]);
103  nodal_soln[11] = .5*(elem_soln[1] + elem_soln[5]);
104 
105  return;
106  }
107 
108 
109  case QUAD8:
110  case QUAD9:
111  {
112  libmesh_assert_equal_to (elem_soln.size(), 2*4);
113 
114  if (type == QUAD8)
115  libmesh_assert_equal_to (nodal_soln.size(), 2*8);
116  else
117  libmesh_assert_equal_to (nodal_soln.size(), 2*9);
118 
119  // node 0 components
120  nodal_soln[0] = elem_soln[0];
121  nodal_soln[1] = elem_soln[1];
122 
123  // node 1 components
124  nodal_soln[2] = elem_soln[2];
125  nodal_soln[3] = elem_soln[3];
126 
127  // node 2 components
128  nodal_soln[4] = elem_soln[4];
129  nodal_soln[5] = elem_soln[5];
130 
131  // node 3 components
132  nodal_soln[6] = elem_soln[6];
133  nodal_soln[7] = elem_soln[7];
134 
135  // node 4 components
136  nodal_soln[8] = .5*(elem_soln[0] + elem_soln[2]);
137  nodal_soln[9] = .5*(elem_soln[1] + elem_soln[3]);
138 
139  // node 5 components
140  nodal_soln[10] = .5*(elem_soln[2] + elem_soln[4]);
141  nodal_soln[11] = .5*(elem_soln[3] + elem_soln[5]);
142 
143  // node 6 components
144  nodal_soln[12] = .5*(elem_soln[4] + elem_soln[6]);
145  nodal_soln[13] = .5*(elem_soln[5] + elem_soln[7]);
146 
147  // node 7 components
148  nodal_soln[14] = .5*(elem_soln[6] + elem_soln[0]);
149  nodal_soln[15] = .5*(elem_soln[7] + elem_soln[1]);
150 
151  if (type == QUAD9)
152  {
153  // node 8 components
154  nodal_soln[16] = .25*(elem_soln[0] + elem_soln[2] + elem_soln[4] + elem_soln[6]);
155  nodal_soln[17] = .25*(elem_soln[1] + elem_soln[3] + elem_soln[5] + elem_soln[7]);
156  }
157 
158  return;
159  }
160 
161 
162  case TET14:
163  libmesh_assert_equal_to (nodal_soln.size(), 3*14);
164 
165  // node 10 components
166  nodal_soln[30] = 1./3. * (elem_soln[0] + elem_soln[3] + elem_soln[6]);
167  nodal_soln[31] = 1./3. * (elem_soln[1] + elem_soln[4] + elem_soln[7]);
168  nodal_soln[32] = 1./3. * (elem_soln[2] + elem_soln[5] + elem_soln[8]);
169 
170  // node 11 components
171  nodal_soln[33] = 1./3. * (elem_soln[0] + elem_soln[3] + elem_soln[9]);
172  nodal_soln[34] = 1./3. * (elem_soln[1] + elem_soln[4] + elem_soln[10]);
173  nodal_soln[35] = 1./3. * (elem_soln[2] + elem_soln[5] + elem_soln[11]);
174 
175  // node 12 components
176  nodal_soln[36] = 1./3. * (elem_soln[3] + elem_soln[6] + elem_soln[9]);
177  nodal_soln[37] = 1./3. * (elem_soln[4] + elem_soln[7] + elem_soln[10]);
178  nodal_soln[38] = 1./3. * (elem_soln[5] + elem_soln[8] + elem_soln[11]);
179 
180  // node 13 components
181  nodal_soln[39] = 1./3. * (elem_soln[0] + elem_soln[6] + elem_soln[9]);
182  nodal_soln[40] = 1./3. * (elem_soln[1] + elem_soln[7] + elem_soln[10]);
183  nodal_soln[41] = 1./3. * (elem_soln[2] + elem_soln[8] + elem_soln[11]);
184 
185  libmesh_fallthrough();
186  case TET10:
187  {
188  libmesh_assert (type == TET14 || nodal_soln.size() == 3*10);
189  libmesh_assert_equal_to (elem_soln.size(), 3*4);
190 
191  // node 0 components
192  nodal_soln[0] = elem_soln[0];
193  nodal_soln[1] = elem_soln[1];
194  nodal_soln[2] = elem_soln[2];
195 
196  // node 1 components
197  nodal_soln[3] = elem_soln[3];
198  nodal_soln[4] = elem_soln[4];
199  nodal_soln[5] = elem_soln[5];
200 
201  // node 2 components
202  nodal_soln[6] = elem_soln[6];
203  nodal_soln[7] = elem_soln[7];
204  nodal_soln[8] = elem_soln[8];
205 
206  // node 3 components
207  nodal_soln[9] = elem_soln[9];
208  nodal_soln[10] = elem_soln[10];
209  nodal_soln[11] = elem_soln[11];
210 
211  // node 4 components
212  nodal_soln[12] = .5*(elem_soln[0] + elem_soln[3]);
213  nodal_soln[13] = .5*(elem_soln[1] + elem_soln[4]);
214  nodal_soln[14] = .5*(elem_soln[2] + elem_soln[5]);
215 
216  // node 5 components
217  nodal_soln[15] = .5*(elem_soln[3] + elem_soln[6]);
218  nodal_soln[16] = .5*(elem_soln[4] + elem_soln[7]);
219  nodal_soln[17] = .5*(elem_soln[5] + elem_soln[8]);
220 
221  // node 6 components
222  nodal_soln[18] = .5*(elem_soln[6] + elem_soln[0]);
223  nodal_soln[19] = .5*(elem_soln[7] + elem_soln[1]);
224  nodal_soln[20] = .5*(elem_soln[8] + elem_soln[2]);
225 
226  // node 7 components
227  nodal_soln[21] = .5*(elem_soln[9] + elem_soln[0]);
228  nodal_soln[22] = .5*(elem_soln[10] + elem_soln[1]);
229  nodal_soln[23] = .5*(elem_soln[11] + elem_soln[2]);
230 
231  // node 8 components
232  nodal_soln[24] = .5*(elem_soln[9] + elem_soln[3]);
233  nodal_soln[25] = .5*(elem_soln[10] + elem_soln[4]);
234  nodal_soln[26] = .5*(elem_soln[11] + elem_soln[5]);
235 
236  // node 9 components
237  nodal_soln[27] = .5*(elem_soln[9] + elem_soln[6]);
238  nodal_soln[28] = .5*(elem_soln[10] + elem_soln[7]);
239  nodal_soln[29] = .5*(elem_soln[11] + elem_soln[8]);
240 
241  return;
242  }
243 
244 
245  case HEX20:
246  case HEX27:
247  {
248  libmesh_assert_equal_to (elem_soln.size(), 3*8);
249 
250  if (type == HEX20)
251  libmesh_assert_equal_to (nodal_soln.size(), 3*20);
252  else
253  libmesh_assert_equal_to (nodal_soln.size(), 3*27);
254 
255  // node 0 components
256  nodal_soln[0] = elem_soln[0];
257  nodal_soln[1] = elem_soln[1];
258  nodal_soln[2] = elem_soln[2];
259 
260  // node 1 components
261  nodal_soln[3] = elem_soln[3];
262  nodal_soln[4] = elem_soln[4];
263  nodal_soln[5] = elem_soln[5];
264 
265  // node 2 components
266  nodal_soln[6] = elem_soln[6];
267  nodal_soln[7] = elem_soln[7];
268  nodal_soln[8] = elem_soln[8];
269 
270  // node 3 components
271  nodal_soln[9] = elem_soln[9];
272  nodal_soln[10] = elem_soln[10];
273  nodal_soln[11] = elem_soln[11];
274 
275  // node 4 components
276  nodal_soln[12] = elem_soln[12];
277  nodal_soln[13] = elem_soln[13];
278  nodal_soln[14] = elem_soln[14];
279 
280  // node 5 components
281  nodal_soln[15] = elem_soln[15];
282  nodal_soln[16] = elem_soln[16];
283  nodal_soln[17] = elem_soln[17];
284 
285  // node 6 components
286  nodal_soln[18] = elem_soln[18];
287  nodal_soln[19] = elem_soln[19];
288  nodal_soln[20] = elem_soln[20];
289 
290  // node 7 components
291  nodal_soln[21] = elem_soln[21];
292  nodal_soln[22] = elem_soln[22];
293  nodal_soln[23] = elem_soln[23];
294 
295  // node 8 components
296  nodal_soln[24] = .5*(elem_soln[0] + elem_soln[3]);
297  nodal_soln[25] = .5*(elem_soln[1] + elem_soln[4]);
298  nodal_soln[26] = .5*(elem_soln[2] + elem_soln[5]);
299 
300  // node 9 components
301  nodal_soln[27] = .5*(elem_soln[3] + elem_soln[6]);
302  nodal_soln[28] = .5*(elem_soln[4] + elem_soln[7]);
303  nodal_soln[29] = .5*(elem_soln[5] + elem_soln[8]);
304 
305  // node 10 components
306  nodal_soln[30] = .5*(elem_soln[6] + elem_soln[9]);
307  nodal_soln[31] = .5*(elem_soln[7] + elem_soln[10]);
308  nodal_soln[32] = .5*(elem_soln[8] + elem_soln[11]);
309 
310  // node 11 components
311  nodal_soln[33] = .5*(elem_soln[9] + elem_soln[0]);
312  nodal_soln[34] = .5*(elem_soln[10] + elem_soln[1]);
313  nodal_soln[35] = .5*(elem_soln[11] + elem_soln[2]);
314 
315  // node 12 components
316  nodal_soln[36] = .5*(elem_soln[0] + elem_soln[12]);
317  nodal_soln[37] = .5*(elem_soln[1] + elem_soln[13]);
318  nodal_soln[38] = .5*(elem_soln[2] + elem_soln[14]);
319 
320  // node 13 components
321  nodal_soln[39] = .5*(elem_soln[3] + elem_soln[15]);
322  nodal_soln[40] = .5*(elem_soln[4] + elem_soln[16]);
323  nodal_soln[41] = .5*(elem_soln[5] + elem_soln[17]);
324 
325  // node 14 components
326  nodal_soln[42] = .5*(elem_soln[6] + elem_soln[18]);
327  nodal_soln[43] = .5*(elem_soln[7] + elem_soln[19]);
328  nodal_soln[44] = .5*(elem_soln[8] + elem_soln[20]);
329 
330  // node 15 components
331  nodal_soln[45] = .5*(elem_soln[9] + elem_soln[21]);
332  nodal_soln[46] = .5*(elem_soln[10] + elem_soln[22]);
333  nodal_soln[47] = .5*(elem_soln[11] + elem_soln[23]);
334 
335  // node 16 components
336  nodal_soln[48] = .5*(elem_soln[12] + elem_soln[15]);
337  nodal_soln[49] = .5*(elem_soln[13] + elem_soln[16]);
338  nodal_soln[50] = .5*(elem_soln[14] + elem_soln[17]);
339 
340  // node 17 components
341  nodal_soln[51] = .5*(elem_soln[15] + elem_soln[18]);
342  nodal_soln[52] = .5*(elem_soln[16] + elem_soln[19]);
343  nodal_soln[53] = .5*(elem_soln[17] + elem_soln[20]);
344 
345  // node 18 components
346  nodal_soln[54] = .5*(elem_soln[18] + elem_soln[21]);
347  nodal_soln[55] = .5*(elem_soln[19] + elem_soln[22]);
348  nodal_soln[56] = .5*(elem_soln[20] + elem_soln[23]);
349 
350  // node 19 components
351  nodal_soln[57] = .5*(elem_soln[12] + elem_soln[21]);
352  nodal_soln[58] = .5*(elem_soln[13] + elem_soln[22]);
353  nodal_soln[59] = .5*(elem_soln[14] + elem_soln[23]);
354 
355  if (type == HEX27)
356  {
357  // node 20 components
358  nodal_soln[60] = .25*(elem_soln[0] + elem_soln[3] + elem_soln[6] + elem_soln[9]);
359  nodal_soln[61] = .25*(elem_soln[1] + elem_soln[4] + elem_soln[7] + elem_soln[10]);
360  nodal_soln[62] = .25*(elem_soln[2] + elem_soln[5] + elem_soln[8] + elem_soln[11]);
361 
362  // node 21 components
363  nodal_soln[63] = .25*(elem_soln[0] + elem_soln[3] + elem_soln[12] + elem_soln[15]);
364  nodal_soln[64] = .25*(elem_soln[1] + elem_soln[4] + elem_soln[13] + elem_soln[16]);
365  nodal_soln[65] = .25*(elem_soln[2] + elem_soln[5] + elem_soln[14] + elem_soln[17]);
366 
367  // node 22 components
368  nodal_soln[66] = .25*(elem_soln[3] + elem_soln[6] + elem_soln[15] + elem_soln[18]);
369  nodal_soln[67] = .25*(elem_soln[4] + elem_soln[7] + elem_soln[16] + elem_soln[19]);
370  nodal_soln[68] = .25*(elem_soln[5] + elem_soln[8] + elem_soln[17] + elem_soln[20]);
371 
372  // node 23 components
373  nodal_soln[69] = .25*(elem_soln[6] + elem_soln[9] + elem_soln[18] + elem_soln[21]);
374  nodal_soln[70] = .25*(elem_soln[7] + elem_soln[10] + elem_soln[19] + elem_soln[22]);
375  nodal_soln[71] = .25*(elem_soln[8] + elem_soln[11] + elem_soln[20] + elem_soln[23]);
376 
377  // node 24 components
378  nodal_soln[72] = .25*(elem_soln[9] + elem_soln[0] + elem_soln[21] + elem_soln[12]);
379  nodal_soln[73] = .25*(elem_soln[10] + elem_soln[1] + elem_soln[22] + elem_soln[13]);
380  nodal_soln[74] = .25*(elem_soln[11] + elem_soln[2] + elem_soln[23] + elem_soln[14]);
381 
382  // node 25 components
383  nodal_soln[75] = .25*(elem_soln[12] + elem_soln[15] + elem_soln[18] + elem_soln[21]);
384  nodal_soln[76] = .25*(elem_soln[13] + elem_soln[16] + elem_soln[19] + elem_soln[22]);
385  nodal_soln[77] = .25*(elem_soln[14] + elem_soln[17] + elem_soln[20] + elem_soln[23]);
386 
387  // node 26 components
388  nodal_soln[78] = .125*(elem_soln[0] + elem_soln[3] + elem_soln[6] + elem_soln[9] +
389  elem_soln[12] + elem_soln[15] + elem_soln[18] + elem_soln[21]);
390 
391  nodal_soln[79] = .125*(elem_soln[1] + elem_soln[4] + elem_soln[7] + elem_soln[10] +
392  elem_soln[13] + elem_soln[16] + elem_soln[19] + elem_soln[22]);
393 
394  nodal_soln[80] = .125*(elem_soln[2] + elem_soln[5] + elem_soln[8] + elem_soln[11] +
395  elem_soln[14] + elem_soln[17] + elem_soln[20] + elem_soln[23]);
396  }
397 
398  return;
399  }
400 
401 
402  case PRISM21:
403  libmesh_assert_equal_to (nodal_soln.size(), 3*21);
404 
405  // node 20 components
406  nodal_soln[60] = (elem_soln[27] + elem_soln[30] + elem_soln[33])/Real(3);
407  nodal_soln[61] = (elem_soln[28] + elem_soln[31] + elem_soln[34])/Real(3);
408  nodal_soln[62] = (elem_soln[29] + elem_soln[32] + elem_soln[35])/Real(3);
409  libmesh_fallthrough();
410  case PRISM20:
411  if (type == PRISM20)
412  libmesh_assert_equal_to (nodal_soln.size(), 3*20);
413 
414  // node 18 components
415  nodal_soln[54] = (elem_soln[0] + elem_soln[3] + elem_soln[6])/Real(3);
416  nodal_soln[55] = (elem_soln[1] + elem_soln[4] + elem_soln[7])/Real(3);
417  nodal_soln[56] = (elem_soln[2] + elem_soln[5] + elem_soln[8])/Real(3);
418 
419  // node 19 components
420  nodal_soln[57] = (elem_soln[9] + elem_soln[12] + elem_soln[15])/Real(3);
421  nodal_soln[58] = (elem_soln[10] + elem_soln[13] + elem_soln[16])/Real(3);
422  nodal_soln[59] = (elem_soln[11] + elem_soln[14] + elem_soln[17])/Real(3);
423 
424  libmesh_fallthrough();
425  case PRISM18:
426  if (type == PRISM18)
427  libmesh_assert_equal_to (nodal_soln.size(), 3*18);
428 
429  // node 15 components
430  nodal_soln[45] = .25*(elem_soln[0] + elem_soln[3] + elem_soln[12] + elem_soln[9]);
431  nodal_soln[46] = .25*(elem_soln[1] + elem_soln[4] + elem_soln[13] + elem_soln[10]);
432  nodal_soln[47] = .25*(elem_soln[2] + elem_soln[5] + elem_soln[14] + elem_soln[11]);
433 
434  // node 16 components
435  nodal_soln[48] = .25*(elem_soln[3] + elem_soln[6] + elem_soln[15] + elem_soln[12]);
436  nodal_soln[49] = .25*(elem_soln[4] + elem_soln[7] + elem_soln[16] + elem_soln[13]);
437  nodal_soln[50] = .25*(elem_soln[5] + elem_soln[8] + elem_soln[17] + elem_soln[14]);
438 
439  // node 17 components
440  nodal_soln[51] = .25*(elem_soln[6] + elem_soln[0] + elem_soln[9] + elem_soln[15]);
441  nodal_soln[52] = .25*(elem_soln[7] + elem_soln[1] + elem_soln[10] + elem_soln[16]);
442  nodal_soln[53] = .25*(elem_soln[8] + elem_soln[2] + elem_soln[11] + elem_soln[17]);
443 
444  libmesh_fallthrough();
445  case PRISM15:
446  {
447  libmesh_assert_equal_to (elem_soln.size(), 3*6);
448 
449  if (type == PRISM15)
450  libmesh_assert_equal_to (nodal_soln.size(), 3*15);
451 
452  // node 0 components
453  nodal_soln[0] = elem_soln[0];
454  nodal_soln[1] = elem_soln[1];
455  nodal_soln[2] = elem_soln[2];
456 
457  // node 1 components
458  nodal_soln[3] = elem_soln[3];
459  nodal_soln[4] = elem_soln[4];
460  nodal_soln[5] = elem_soln[5];
461 
462  // node 2 components
463  nodal_soln[6] = elem_soln[6];
464  nodal_soln[7] = elem_soln[7];
465  nodal_soln[8] = elem_soln[8];
466 
467  // node 3 components
468  nodal_soln[9] = elem_soln[9];
469  nodal_soln[10] = elem_soln[10];
470  nodal_soln[11] = elem_soln[11];
471 
472  // node 4 components
473  nodal_soln[12] = elem_soln[12];
474  nodal_soln[13] = elem_soln[13];
475  nodal_soln[14] = elem_soln[14];
476 
477  // node 5 components
478  nodal_soln[15] = elem_soln[15];
479  nodal_soln[16] = elem_soln[16];
480  nodal_soln[17] = elem_soln[17];
481 
482  // node 6 components
483  nodal_soln[18] = .5*(elem_soln[0] + elem_soln[3]);
484  nodal_soln[19] = .5*(elem_soln[1] + elem_soln[4]);
485  nodal_soln[20] = .5*(elem_soln[2] + elem_soln[5]);
486 
487  // node 7 components
488  nodal_soln[21] = .5*(elem_soln[3] + elem_soln[6]);
489  nodal_soln[22] = .5*(elem_soln[4] + elem_soln[7]);
490  nodal_soln[23] = .5*(elem_soln[5] + elem_soln[8]);
491 
492  // node 8 components
493  nodal_soln[24] = .5*(elem_soln[0] + elem_soln[6]);
494  nodal_soln[25] = .5*(elem_soln[1] + elem_soln[7]);
495  nodal_soln[26] = .5*(elem_soln[2] + elem_soln[8]);
496 
497  // node 9 components
498  nodal_soln[27] = .5*(elem_soln[0] + elem_soln[9]);
499  nodal_soln[28] = .5*(elem_soln[1] + elem_soln[10]);
500  nodal_soln[29] = .5*(elem_soln[2] + elem_soln[11]);
501 
502  // node 10 components
503  nodal_soln[30] = .5*(elem_soln[3] + elem_soln[12]);
504  nodal_soln[31] = .5*(elem_soln[4] + elem_soln[13]);
505  nodal_soln[32] = .5*(elem_soln[5] + elem_soln[14]);
506 
507  // node 11 components
508  nodal_soln[33] = .5*(elem_soln[6] + elem_soln[15]);
509  nodal_soln[34] = .5*(elem_soln[7] + elem_soln[16]);
510  nodal_soln[35] = .5*(elem_soln[8] + elem_soln[17]);
511 
512  // node 12 components
513  nodal_soln[36] = .5*(elem_soln[9] + elem_soln[12]);
514  nodal_soln[37] = .5*(elem_soln[10] + elem_soln[13]);
515  nodal_soln[38] = .5*(elem_soln[11] + elem_soln[14]);
516 
517  // node 13 components
518  nodal_soln[39] = .5*(elem_soln[12] + elem_soln[15]);
519  nodal_soln[40] = .5*(elem_soln[13] + elem_soln[16]);
520  nodal_soln[41] = .5*(elem_soln[14] + elem_soln[17]);
521 
522  // node 14 components
523  nodal_soln[42] = .5*(elem_soln[12] + elem_soln[15]);
524  nodal_soln[43] = .5*(elem_soln[13] + elem_soln[16]);
525  nodal_soln[44] = .5*(elem_soln[14] + elem_soln[17]);
526 
527  return;
528  }
529 
530  default:
531  {
532  // By default the element solution _is_ nodal,
533  // so just copy it.
534  nodal_soln = elem_soln;
535 
536  return;
537  }
538  }
539  }
540 
541  case SECOND:
542  {
543  switch (type)
544  {
545  case TRI7:
546  {
547  libmesh_assert_equal_to (elem_soln.size(), 12);
548  libmesh_assert_equal_to (nodal_soln.size(), 14);
549 
550  for (int i=0; i != 12; ++i)
551  nodal_soln[i] = elem_soln[i];
552 
553  nodal_soln[12] = -1./9. * (elem_soln[0] + elem_soln[2] + elem_soln[4])
554  +4./9. * (elem_soln[6] + elem_soln[8] + elem_soln[10]);
555  nodal_soln[13] = -1./9. * (elem_soln[1] + elem_soln[3] + elem_soln[5])
556  +4./9. * (elem_soln[7] + elem_soln[9] + elem_soln[11]);
557 
558  return;
559  }
560 
561  case TET14:
562  {
563  libmesh_assert_equal_to (elem_soln.size(), 10*3);
564  libmesh_assert_equal_to (nodal_soln.size(), 14*3);
565 
566  for (int i=0; i != 10*3; ++i)
567  nodal_soln[i] = elem_soln[i];
568 
569  // node 10 components
570  nodal_soln[30] = -1./9. * (elem_soln[0] + elem_soln[3] + elem_soln[6])
571  +4./9. * (elem_soln[12] + elem_soln[15] + elem_soln[18]);
572  nodal_soln[31] = -1./9. * (elem_soln[1] + elem_soln[4] + elem_soln[7])
573  +4./9. * (elem_soln[13] + elem_soln[16] + elem_soln[19]);
574  nodal_soln[32] = -1./9. * (elem_soln[2] + elem_soln[5] + elem_soln[8])
575  +4./9. * (elem_soln[14] + elem_soln[17] + elem_soln[20]);
576 
577  // node 11 components
578  nodal_soln[33] = -1./9. * (elem_soln[0] + elem_soln[3] + elem_soln[9])
579  +4./9. * (elem_soln[12] + elem_soln[21] + elem_soln[24]);
580  nodal_soln[34] = -1./9. * (elem_soln[1] + elem_soln[4] + elem_soln[10])
581  +4./9. * (elem_soln[13] + elem_soln[22] + elem_soln[25]);
582  nodal_soln[35] = -1./9. * (elem_soln[2] + elem_soln[5] + elem_soln[11])
583  +4./9. * (elem_soln[14] + elem_soln[23] + elem_soln[26]);
584 
585  // node 12 components
586  nodal_soln[36] = -1./9. * (elem_soln[3] + elem_soln[6] + elem_soln[9])
587  +4./9. * (elem_soln[15] + elem_soln[24] + elem_soln[27]);
588  nodal_soln[37] = -1./9. * (elem_soln[4] + elem_soln[7] + elem_soln[10])
589  +4./9. * (elem_soln[16] + elem_soln[25] + elem_soln[28]);
590  nodal_soln[38] = -1./9. * (elem_soln[5] + elem_soln[8] + elem_soln[11])
591  +4./9. * (elem_soln[17] + elem_soln[26] + elem_soln[29]);
592 
593  // node 13 components
594  nodal_soln[39] = -1./9. * (elem_soln[0] + elem_soln[6] + elem_soln[9])
595  +4./9. * (elem_soln[12] + elem_soln[21] + elem_soln[27]);
596  nodal_soln[40] = -1./9. * (elem_soln[1] + elem_soln[7] + elem_soln[10])
597  +4./9. * (elem_soln[13] + elem_soln[22] + elem_soln[28]);
598  nodal_soln[41] = -1./9. * (elem_soln[2] + elem_soln[8] + elem_soln[11])
599  +4./9. * (elem_soln[14] + elem_soln[23] + elem_soln[29]);
600 
601  return;
602  }
603 
604  default:
605  {
606  // By default the element solution _is_ nodal,
607  // so just copy it.
608  nodal_soln = elem_soln;
609 
610  return;
611  }
612  }
613  }
614 
615  case THIRD:
616  {
617  // By default the element solution _is_ nodal,
618  // so just copy it.
619  nodal_soln = elem_soln;
620 
621  return;
622  }
623 
624  default:
625  libmesh_error_msg("ERROR: Invalid Order " << Utility::enum_to_string(totalorder) << " selected for LAGRANGE FE family!");
626  } // switch(totalorder)
627 
628 }// void lagrange_vec_nodal_soln
629 
630 } // anonymous namespace
ElemType
Defines an enum for geometric element types.
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40
unsigned int dim
const dof_id_type n_nodes
Definition: tecplot_io.C:67
libmesh_assert(ctx)
std::string enum_to_string(const T e)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [14/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( ,
NEDELEC_ONE   
)

Definition at line 34 of file fe_nedelec_one.C.

References libMesh::FEGenericBase< OutputType >::build(), dim, libMesh::Utility::enum_to_string(), libMesh::FEAbstract::get_refspace_nodes(), HEX20, HEX27, INVALID_ELEM, libmesh_assert(), n_nodes, libMesh::Elem::n_nodes(), libMesh::FEInterface::n_shape_functions(), NEDELEC_ONE, libMesh::Elem::p_level(), QUAD8, QUAD9, TET10, TET14, TRI6, TRI7, and libMesh::Elem::type().

41  {
42 void nedelec_one_nodal_soln(const Elem * elem,
43  const Order order,
44  const std::vector<Number> & elem_soln,
45  const int dim,
46  const int vdim,
47  std::vector<Number> & nodal_soln,
48  const bool add_p_level)
49 {
50  const unsigned int n_nodes = elem->n_nodes();
51  const ElemType elem_type = elem->type();
52 
53  const Order totalorder = order + add_p_level*elem->p_level();
54 
55  nodal_soln.resize(n_nodes*vdim);
56 
57  FEType p_refined_fe_type(totalorder, NEDELEC_ONE);
58 
59  if (elem_type != TRI6 && elem_type != TRI7 &&
60  elem_type != QUAD8 && elem_type != QUAD9 &&
61  elem_type != TET10 && elem_type != TET14 &&
62  elem_type != HEX20 && elem_type != HEX27)
63  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(elem_type) << " selected for NEDELEC_ONE FE family!");
64 
65  const unsigned int n_sf = FEInterface::n_shape_functions(p_refined_fe_type, elem, false);
66 
67  std::vector<Point> refspace_nodes;
68  FEVectorBase::get_refspace_nodes(elem_type,refspace_nodes);
69  libmesh_assert_equal_to (refspace_nodes.size(), n_nodes);
70  libmesh_assert_equal_to (elem_soln.size(), n_sf);
71 
72  // Need to create new fe object so the shape function has the FETransformation
73  // applied to it.
74  std::unique_ptr<FEVectorBase> vis_fe = FEVectorBase::build(dim, p_refined_fe_type);
75 
76  const std::vector<std::vector<RealGradient>> & vis_phi = vis_fe->get_phi();
77 
78  vis_fe->reinit(elem,&refspace_nodes);
79 
80  // Zero before summation
81  std::fill(nodal_soln.begin(), nodal_soln.end(), 0);
82 
83  for (unsigned int n = 0; n < n_nodes; n++)
84  // u = Sum (u_i phi_i)
85  for (unsigned int i=0; i<n_sf; i++)
86  for (int d = 0; d < vdim; d++)
87  nodal_soln[vdim*n+d] += elem_soln[i]*(vis_phi[i][n](d));
88 
89  return;
90 } // nedelec_one_nodal_soln
91 
92 
93 
94 unsigned int nedelec_one_n_dofs(const ElemType t, const Order o)
95 {
96  libmesh_assert_greater (o, 0);
97  switch (t)
98  {
99  case TRI6:
100  case TRI7:
101  return o*(o+2);
102  case QUAD8:
103  case QUAD9:
104  return 2*o*(o+1);
105  case TET10:
106  libmesh_assert_less (o, 2);
107  libmesh_fallthrough();
108  case TET14:
109  return o*(o+2)*(o+3)/2;
110  case HEX20:
111  libmesh_assert_less (o, 2);
112  libmesh_fallthrough();
113  case HEX27:
114  return 3*o*(o+1)*(o+1);
115  case INVALID_ELEM:
116  return 0;
117  default:
118  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(t) << " selected for NEDELEC_ONE FE family!");
119  }
120 }
121 
122 
123 
124 unsigned int nedelec_one_n_dofs(const Elem * e, const Order o)
125 {
126  libmesh_assert(e);
127  return nedelec_one_n_dofs(e->type(), o);
128 }
129 
130 
131 
132 unsigned int nedelec_one_n_dofs_at_node(const ElemType t,
133  const Order o,
134  const unsigned int n)
135 {
136  libmesh_assert_greater (o, 0);
137  switch (t)
138  {
139  case TRI6:
140  case TRI7:
141  {
142  switch (n)
143  {
144  case 0:
145  case 1:
146  case 2:
147  return 0;
148  case 3:
149  case 4:
150  case 5:
151  return o;
152  case 6:
153  libmesh_assert_equal_to(t, TRI7);
154  return 0;
155  default:
156  libmesh_error_msg("ERROR: Invalid node ID " << n);
157  }
158  }
159  case QUAD8:
160  case QUAD9:
161  {
162  switch (n)
163  {
164  case 0:
165  case 1:
166  case 2:
167  case 3:
168  return 0;
169  case 4:
170  case 5:
171  case 6:
172  case 7:
173  return o;
174  case 8:
175  libmesh_assert_equal_to(t, QUAD9);
176  return 0;
177  default:
178  libmesh_error_msg("ERROR: Invalid node ID " << n);
179  }
180  }
181  case TET10:
182  libmesh_assert_less (o, 2);
183  libmesh_fallthrough();
184  case TET14:
185  {
186  switch (n)
187  {
188  case 0:
189  case 1:
190  case 2:
191  case 3:
192  return 0;
193  case 4:
194  case 5:
195  case 6:
196  case 7:
197  case 8:
198  case 9:
199  return o;
200  case 10:
201  case 11:
202  case 12:
203  case 13:
204  libmesh_assert_equal_to(t, TET14);
205  return o*(o-1);
206  default:
207  libmesh_error_msg("ERROR: Invalid node ID " << n);
208  }
209  }
210  case HEX20:
211  libmesh_assert_less (o, 2);
212  libmesh_fallthrough();
213  case HEX27:
214  {
215  switch (n)
216  {
217  case 0:
218  case 1:
219  case 2:
220  case 3:
221  case 4:
222  case 5:
223  case 6:
224  case 7:
225  return 0;
226  case 8:
227  case 9:
228  case 10:
229  case 11:
230  case 12:
231  case 13:
232  case 14:
233  case 15:
234  case 16:
235  case 17:
236  case 18:
237  case 19:
238  return o;
239  case 20:
240  case 21:
241  case 22:
242  case 23:
243  case 24:
244  case 25:
245  libmesh_assert_equal_to(t, HEX27);
246  return 2*o*(o-1);
247  case 26:
248  libmesh_assert_equal_to(t, HEX27);
249  return 0;
250  default:
251  libmesh_error_msg("ERROR: Invalid node ID " << n);
252  }
253  }
254  case INVALID_ELEM:
255  return 0;
256  default:
257  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(t) << " selected for NEDELEC_ONE FE family!");
258  }
259 }
260 
261 
262 
263 unsigned int nedelec_one_n_dofs_at_node(const Elem & e,
264  const Order o,
265  const unsigned int n)
266 {
267  return nedelec_one_n_dofs_at_node(e.type(), o, n);
268 }
269 
270 
271 
272 unsigned int nedelec_one_n_dofs_per_elem(const ElemType t,
273  const Order o)
274 {
275  libmesh_assert_greater (o, 0);
276  switch (t)
277  {
278  case TRI6:
279  case TRI7:
280  return o*(o-1);
281  case QUAD8:
282  case QUAD9:
283  return 2*o*(o-1);
284  case TET10:
285  libmesh_assert_less (o, 2);
286  libmesh_fallthrough();
287  case TET14:
288  return o*(o-1)*(o-2)/2;
289  case HEX20:
290  libmesh_assert_less (o, 2);
291  libmesh_fallthrough();
292  case HEX27:
293  return 3*o*(o-1)*(o-1);
294  case INVALID_ELEM:
295  return 0;
296  default:
297  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(t) << " selected for NEDELEC_ONE FE family!");
298  }
299 }
300 
301 
302 
303 unsigned int nedelec_one_n_dofs_per_elem(const Elem & e,
304  const Order o)
305 {
306  return nedelec_one_n_dofs_per_elem(e.type(), o);
307 }
308 
309 
310 
311 #ifdef LIBMESH_ENABLE_AMR
312 void nedelec_one_compute_constraints (DofConstraints & /*constraints*/,
313  DofMap & /*dof_map*/,
314  const unsigned int /*variable_number*/,
315  const Elem * libmesh_dbg_var(elem),
316  const unsigned Dim)
317 {
318  // Only constrain elements in 2,3D.
319  if (Dim == 1)
320  return;
321 
322  libmesh_assert(elem);
323 
324  libmesh_not_implemented();
325 } // nedelec_one_compute_constraints()
326 #endif // #ifdef LIBMESH_ENABLE_AMR
327 
328 } // anonymous namespace
ElemType
Defines an enum for geometric element types.
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40
unsigned int dim
const dof_id_type n_nodes
Definition: tecplot_io.C:67
libmesh_assert(ctx)
std::string enum_to_string(const T e)

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [15/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( ,
RAVIART_THOMAS   
)

Definition at line 34 of file fe_raviart.C.

References libMesh::FEGenericBase< OutputType >::build(), dim, libMesh::Utility::enum_to_string(), libMesh::FEAbstract::get_refspace_nodes(), HEX27, INVALID_ELEM, libmesh_assert(), n_nodes, libMesh::Elem::n_nodes(), libMesh::FEInterface::n_shape_functions(), libMesh::Elem::p_level(), QUAD8, QUAD9, RAVIART_THOMAS, TET14, TRI6, TRI7, and libMesh::Elem::type().

45  {
46 void raviart_thomas_nodal_soln(const Elem * elem,
47  const Order order,
48  const std::vector<Number> & elem_soln,
49  const int dim,
50  const int vdim,
51  std::vector<Number> & nodal_soln,
52  const bool add_p_level)
53 {
54  const unsigned int n_nodes = elem->n_nodes();
55  const ElemType elem_type = elem->type();
56 
57  const Order totalorder = order + add_p_level*elem->p_level();
58 
59  nodal_soln.resize(n_nodes*vdim);
60 
61  FEType p_refined_fe_type(totalorder, RAVIART_THOMAS);
62 
63  if (elem_type != TRI6 && elem_type != TRI7 &&
64  elem_type != QUAD8 && elem_type != QUAD9 &&
65  elem_type != TET14 && elem_type != HEX27)
66  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(elem_type) << " selected for RAVIART_THOMAS FE family!");
67 
68  const unsigned int n_sf = FEInterface::n_shape_functions(p_refined_fe_type, elem, false);
69 
70  std::vector<Point> refspace_nodes;
71  FEVectorBase::get_refspace_nodes(elem_type,refspace_nodes);
72  libmesh_assert_equal_to (refspace_nodes.size(), n_nodes);
73  libmesh_assert_equal_to (elem_soln.size(), n_sf);
74 
75  // Need to create new fe object so the shape function has the FETransformation
76  // applied to it.
77  std::unique_ptr<FEVectorBase> vis_fe = FEVectorBase::build(dim, p_refined_fe_type);
78 
79  const std::vector<std::vector<RealGradient>> & vis_phi = vis_fe->get_phi();
80 
81  vis_fe->reinit(elem,&refspace_nodes);
82 
83  // Zero before summation
84  std::fill(nodal_soln.begin(), nodal_soln.end(), 0);
85 
86  for (unsigned int n = 0; n < n_nodes; n++)
87  // u = Sum (u_i phi_i)
88  for (unsigned int i=0; i<n_sf; i++)
89  for (int d = 0; d < vdim; d++)
90  nodal_soln[vdim*n+d] += elem_soln[i]*(vis_phi[i][n](d));
91 
92  return;
93 } // raviart_thomas_nodal_soln
94 
95 
96 
97 unsigned int raviart_thomas_n_dofs(const ElemType t, const Order o)
98 {
99  libmesh_assert_greater (o, 0);
100  switch (t)
101  {
102  case TRI6:
103  case TRI7:
104  return o*(o+2);
105  case QUAD8:
106  case QUAD9:
107  return 2*o*(o+1);
108  case TET14:
109  return o*(o+1)*(o+3)/2;
110  case HEX27:
111  return 3*o*o*(o+1);
112  case INVALID_ELEM:
113  return 0;
114  default:
115  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(t) << " selected for RAVIART_THOMAS FE family!");
116  }
117 }
118 
119 
120 
121 unsigned int raviart_thomas_n_dofs(const Elem * e, const Order o)
122 {
123  libmesh_assert(e);
124  return raviart_thomas_n_dofs(e->type(), o);
125 }
126 
127 
128 
129 unsigned int raviart_thomas_n_dofs_at_node(const ElemType t,
130  const Order o,
131  const unsigned int n)
132 {
133  libmesh_assert_greater (o, 0);
134  switch (t)
135  {
136  case TRI6:
137  case TRI7:
138  {
139  switch (n)
140  {
141  case 0:
142  case 1:
143  case 2:
144  return 0;
145  case 3:
146  case 4:
147  case 5:
148  return o;
149  case 6:
150  libmesh_assert_equal_to(t, TRI7);
151  return 0;
152  default:
153  libmesh_error_msg("ERROR: Invalid node ID " << n);
154  }
155  }
156  case QUAD8:
157  case QUAD9:
158  {
159  switch (n)
160  {
161  case 0:
162  case 1:
163  case 2:
164  case 3:
165  return 0;
166  case 4:
167  case 5:
168  case 6:
169  case 7:
170  return o;
171  case 8:
172  libmesh_assert_equal_to(t, QUAD9);
173  return 0;
174  default:
175  libmesh_error_msg("ERROR: Invalid node ID " << n);
176  }
177  }
178  case TET14:
179  {
180  switch (n)
181  {
182  case 0:
183  case 1:
184  case 2:
185  case 3:
186  case 4:
187  case 5:
188  case 6:
189  case 7:
190  case 8:
191  case 9:
192  return 0;
193  case 10:
194  case 11:
195  case 12:
196  case 13:
197  return o*(o+1)/2;
198  default:
199  libmesh_error_msg("ERROR: Invalid node ID " << n);
200  }
201  }
202  case HEX27:
203  {
204  switch (n)
205  {
206  case 0:
207  case 1:
208  case 2:
209  case 3:
210  case 4:
211  case 5:
212  case 6:
213  case 7:
214  case 8:
215  case 9:
216  case 10:
217  case 11:
218  case 12:
219  case 13:
220  case 14:
221  case 15:
222  case 16:
223  case 17:
224  case 18:
225  case 19:
226  return 0;
227  case 20:
228  case 21:
229  case 22:
230  case 23:
231  case 24:
232  case 25:
233  return o*o;
234  case 26:
235  return 0;
236  default:
237  libmesh_error_msg("ERROR: Invalid node ID " << n);
238  }
239  }
240  case INVALID_ELEM:
241  return 0;
242  default:
243  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(t) << " selected for RAVIART_THOMAS FE family!");
244  }
245 }
246 
247 
248 
249 unsigned int raviart_thomas_n_dofs_at_node(const Elem & e,
250  const Order o,
251  const unsigned int n)
252 {
253  return raviart_thomas_n_dofs_at_node(e.type(), o, n);
254 }
255 
256 
257 
258 unsigned int raviart_thomas_n_dofs_per_elem(const ElemType t,
259  const Order o)
260 {
261  libmesh_assert_greater (o, 0);
262  switch (t)
263  {
264  case TRI6:
265  case TRI7:
266  return o*(o-1);
267  case QUAD8:
268  case QUAD9:
269  return 2*o*(o-1);
270  case TET14:
271  return (o+1)*o*(o-1)/2;
272  case HEX27:
273  return 3*o*o*(o-1);
274  case INVALID_ELEM:
275  return 0;
276  default:
277  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(t) << " selected for RAVIART_THOMAS FE family!");
278  }
279 }
280 
281 
282 
283 unsigned int raviart_thomas_n_dofs_per_elem(const Elem & e,
284  const Order o)
285 {
286  return raviart_thomas_n_dofs_per_elem(e.type(), o);
287 }
288 
289 
290 #ifdef LIBMESH_ENABLE_AMR
291 void raviart_thomas_compute_constraints (DofConstraints & /*constraints*/,
292  DofMap & /*dof_map*/,
293  const unsigned int /*variable_number*/,
294  const Elem * libmesh_dbg_var(elem),
295  const unsigned Dim)
296 {
297  // Only constrain elements in 2,3D.
298  if (Dim == 1)
299  return;
300 
301  libmesh_assert(elem);
302 
303  libmesh_not_implemented();
304 } // raviart_thomas_compute_constraints()
305 #endif // #ifdef LIBMESH_ENABLE_AMR
306 
307 } // anonymous namespace
ElemType
Defines an enum for geometric element types.
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40
unsigned int dim
const dof_id_type n_nodes
Definition: tecplot_io.C:67
libmesh_assert(ctx)
std::string enum_to_string(const T e)

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [16/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( ,
SUBDIVISION   
)

Definition at line 34 of file fe_subdivision_2D.C.

37  :
38  FE<2,SUBDIVISION>(fet)
39 {
40  // Only 2D meshes in 3D space are supported
41  libmesh_assert_equal_to(LIBMESH_DIM, 3);
42 }

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [17/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( template<>void FE 3,
L2_LAGRANGE   
)

Definition at line 69 of file fe_lagrange_shape_3D.C.

References libMesh::FE< Dim, T >::default_all_shapes(), fe_lagrange_1D_linear_shape(), fe_lagrange_1D_quadratic_shape(), FIRST, HEX20, HEX27, HEX8, index_range(), libmesh_ignore(), make_range(), Real, SECOND, and libMesh::Elem::type().

79 {
80  const ElemType type = elem->type();
81 
82  // Just loop on the harder-to-optimize cases
83  if (type != HEX8 && type != HEX27)
84  {
86  (elem,o,p,v,add_p_level);
87  return;
88  }
89 
90 #if LIBMESH_DIM == 3
91 
92  const unsigned int n_sf = v.size();
93 
94  switch (o)
95  {
96  // linear Lagrange shape functions
97  case FIRST:
98  {
99  switch (type)
100  {
101  // trilinear hexahedral shape functions
102  case HEX8:
103  case HEX20:
104  case HEX27:
105  {
106  libmesh_assert_less_equal (n_sf, 8);
107 
108  // 0 1 2 3 4 5 6 7
109  static const unsigned int i0[] = {0, 1, 1, 0, 0, 1, 1, 0};
110  static const unsigned int i1[] = {0, 0, 1, 1, 0, 0, 1, 1};
111  static const unsigned int i2[] = {0, 0, 0, 0, 1, 1, 1, 1};
112 
113  for (auto qp : index_range(p))
114  {
115  const Point & q_point = p[qp];
116  // Compute hex shape functions as a tensor-product
117  const Real xi = q_point(0);
118  const Real eta = q_point(1);
119  const Real zeta = q_point(2);
120 
121  // one_d_shapes[dim][i] = phi_i(p(dim))
122  Real one_d_shapes[3][2] = {
127  {fe_lagrange_1D_linear_shape(0, zeta),
128  fe_lagrange_1D_linear_shape(1, zeta)}};
129 
130  for (unsigned int i : make_range(n_sf))
131  v[i][qp] = one_d_shapes[0][i0[i]] *
132  one_d_shapes[1][i1[i]] *
133  one_d_shapes[2][i2[i]];
134  }
135  return;
136  }
137 
138  default:
139  libmesh_error(); // How did we get here?
140  }
141  }
142 
143 
144  // quadratic Lagrange shape functions
145  case SECOND:
146  {
147  switch (type)
148  {
149  // triquadratic hexahedral shape functions
150  case HEX8:
151 // TODO: refactor to optimize this
152 // libmesh_assert_msg(T == L2_LAGRANGE,
153 // "High order on first order elements only supported for L2 families");
154  libmesh_fallthrough();
155  case HEX27:
156  {
157  libmesh_assert_less_equal (n_sf, 27);
158 
159  // The only way to make any sense of this
160  // is to look at the mgflo/mg2/mgf documentation
161  // and make the cut-out cube!
162  // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
163  static const unsigned int i0[] = {0, 1, 1, 0, 0, 1, 1, 0, 2, 1, 2, 0, 0, 1, 1, 0, 2, 1, 2, 0, 2, 2, 1, 2, 0, 2, 2};
164  static const unsigned int i1[] = {0, 0, 1, 1, 0, 0, 1, 1, 0, 2, 1, 2, 0, 0, 1, 1, 0, 2, 1, 2, 2, 0, 2, 1, 2, 2, 2};
165  static const unsigned int i2[] = {0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 1, 1, 1, 1, 0, 2, 2, 2, 2, 1, 2};
166 
167  for (auto qp : index_range(p))
168  {
169  const Point & q_point = p[qp];
170  // Compute hex shape functions as a tensor-product
171  const Real xi = q_point(0);
172  const Real eta = q_point(1);
173  const Real zeta = q_point(2);
174 
175  // linear_shapes[dim][i] = phi_i(p(dim))
176  Real one_d_shapes[3][3] = {
186 
187  for (unsigned int i : make_range(n_sf))
188  v[i][qp] = one_d_shapes[0][i0[i]] *
189  one_d_shapes[1][i1[i]] *
190  one_d_shapes[2][i2[i]];
191  }
192  return;
193  }
194 
195  default:
196  libmesh_error(); // How did we get here?
197  }
198  }
199 
200  // unsupported order
201  default:
202  libmesh_error_msg("ERROR: Unsupported 3D FE order on HEX!: " << o);
203  }
204 #else // LIBMESH_DIM != 3
205  libmesh_ignore(elem, o, p, v, add_p_level);
206  libmesh_not_implemented();
207 #endif // LIBMESH_DIM == 3
208 }
ElemType
Defines an enum for geometric element types.
Real fe_lagrange_1D_quadratic_shape(const unsigned int i, const Real xi)
A specific instantiation of the FEBase class.
Definition: fe.h:127
void libmesh_ignore(const Args &...)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
IntRange< T > make_range(T beg, T end)
The 2-parameter make_range() helper function returns an IntRange<T> when both input parameters are of...
Definition: int_range.h:140
A Point defines a location in LIBMESH_DIM dimensional Real space.
Definition: point.h:39
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:117
Real fe_lagrange_1D_linear_shape(const unsigned int i, const Real xi)

◆ LIBMESH_DEFAULT_VECTORIZED_FE() [18/18]

libMesh::LIBMESH_DEFAULT_VECTORIZED_FE ( ,
HERMITE   
)

Definition at line 74 of file fe_hermite_shape_1D.C.

References libMesh::Utility::pow(), and Real.

81 {
82  using Utility::pow;
83 
84  switch (i)
85  {
86  case 0:
87  return 1.5 * xi;
88  case 1:
89  return -1.5 * xi;
90  case 2:
91  return 0.5 * (-1. + 3.*xi);
92  case 3:
93  return 0.5 * (1. + 3.*xi);
94  case 4:
95  return (8.*xi*xi + 4.*(xi*xi-1.))/24.;
96  case 5:
97  return (8.*xi*xi*xi + 12.*xi*(xi*xi-1.))/120.;
98  // case 6:
99  // return (8.*pow<4>(xi) + 20.*xi*xi*(xi*xi-1.) +
100  // 2.*(xi*xi-1)*(xi*xi-1))/720.;
101  default:
102  Real denominator = 720., xipower = 1.;
103  for (unsigned n=6; n != i; ++n)
104  {
105  xipower *= xi;
106  denominator *= (n+1);
107  }
108  return (8.*pow<4>(xi)*xipower +
109  (8.*(i-4)+4.)*xi*xi*xipower*(xi*xi-1.) +
110  (i-4)*(i-5)*xipower*(xi*xi-1.)*(xi*xi-1.))/denominator;
111  }
112 }
T pow(const T &x)
Definition: utility.h:328
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ LIBMESH_ERRORS_IN_LOW_D()

libMesh::LIBMESH_ERRORS_IN_LOW_D ( CLOUGH  )

Definition at line 73 of file fe_boundary.C.

99  { libmesh_error_msg("ERROR: Cannot reinit 1D NEDELEC_ONE elements!"); }

◆ LIBMESH_FE_NODAL_SOLN() [1/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( SCALAR  ,
scalar_nodal_soln   
)

Definition at line 54 of file fe_scalar.C.

60  { return o; }

◆ LIBMESH_FE_NODAL_SOLN() [2/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( RATIONAL_BERNSTEIN  ,
rational_nodal_soln   
)

Definition at line 122 of file fe_rational.C.

References libMesh::FE< Dim, T >::n_dofs().

127  { return FE<0,_underlying_fe_family>::n_dofs(t, o); }
A specific instantiation of the FEBase class.
Definition: fe.h:127

◆ LIBMESH_FE_NODAL_SOLN() [3/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( L2_HIERARCHIC  ,
l2_hierarchic_nodal_soln   
)

Definition at line 149 of file fe_l2_hierarchic.C.

154  { return l2_hierarchic_n_dofs(t, o); }

◆ LIBMESH_FE_NODAL_SOLN() [4/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( SIDE_HIERARCHIC  ,
side_hierarchic_nodal_soln   
)

Definition at line 201 of file fe_side_hierarchic.C.

213 {
214  libmesh_error_msg("No side variables in 0D!");
215 }

◆ LIBMESH_FE_NODAL_SOLN() [5/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( L2_LAGRANGE  ,
lagrange_nodal_soln   
)

Definition at line 216 of file fe_l2_lagrange.C.

223  { return l2_lagrange_n_dofs(t, o); }

◆ LIBMESH_FE_NODAL_SOLN() [6/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( LIBMESH_FE_SIDE_NODAL_SOLN()LIBMESH_DEFAULT_NDOFS(CLOUGH)template <> FEContinuity FE<0  CLOUGH,
clough_nodal_soln   
)

Definition at line 261 of file fe_clough.C.

References C_ONE.

270  { return C_ONE; }

◆ LIBMESH_FE_NODAL_SOLN() [7/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( LIBMESH_FE_SIDE_NODAL_SOLN()LIBMESH_DEFAULT_NDOFS(HERMITE)template <> FEContinuity FE<0  HERMITE,
hermite_nodal_soln   
)

Definition at line 303 of file fe_hermite.C.

312  { return C_ONE; }

◆ LIBMESH_FE_NODAL_SOLN() [8/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( XYZ  ,
xyz_nodal_soln   
)

Definition at line 367 of file fe_xyz.C.

References monomial_n_dofs().

372  { return monomial_n_dofs(t, o); }
unsigned int monomial_n_dofs(const ElemType t, const Order o)
Helper functions for Discontinuous-Pn type basis functions.
Definition: fe_monomial.C:37

◆ LIBMESH_FE_NODAL_SOLN() [9/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( MONOMIAL  ,
monomial_nodal_soln   
)

Definition at line 381 of file fe_monomial.C.

References monomial_n_dofs().

386  { return monomial_n_dofs(t, o); }
unsigned int monomial_n_dofs(const ElemType t, const Order o)
Helper functions for Discontinuous-Pn type basis functions.
Definition: fe_monomial.C:37

◆ LIBMESH_FE_NODAL_SOLN() [10/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( LIBMESH_FE_SIDE_NODAL_SOLN()LIBMESH_DEFAULT_NDOFS(BERNSTEIN)template <> FEContinuity FE<0  BERNSTEIN,
bernstein_nodal_soln   
)

Definition at line 415 of file fe_bernstein.C.

References C_ZERO.

422  { return C_ZERO; }

◆ LIBMESH_FE_NODAL_SOLN() [11/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( LIBMESH_FE_SIDE_NODAL_SOLN()LIBMESH_DEFAULT_NDOFS(HIERARCHIC)template <> FEContinuity FE<0  HIERARCHIC,
hierarchic_nodal_soln   
)

Definition at line 467 of file fe_hierarchic.C.

References C_ZERO.

476  { return C_ZERO; }

◆ LIBMESH_FE_NODAL_SOLN() [12/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( LAGRANGE  ,
lagrange_nodal_soln   
)

Definition at line 1070 of file fe_lagrange.C.

1077  { return lagrange_n_dofs(t, nullptr, o); }

◆ LIBMESH_FE_NODAL_SOLN() [13/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( SZABAB  ,
szabab_nodal_soln   
)

Definition at line 1287 of file fe_szabab.C.

1292  { return szabab_n_dofs(t, o); }

◆ LIBMESH_FE_NODAL_SOLN_DIM() [1/3]

libMesh::LIBMESH_FE_NODAL_SOLN_DIM ( LIBMESH_FE_NODAL_SOLN_DIM(  HIERARCHIC_VEC,
(FE< 0, HIERARCHIC >::nodal_soln)  ,
 
)

Definition at line 96 of file fe_hierarchic_vec.C.

106 { hierarchic_vec_nodal_soln(elem, order, elem_soln, 2 /*dim*/, nodal_soln, add_p_level); }

◆ LIBMESH_FE_NODAL_SOLN_DIM() [2/3]

libMesh::LIBMESH_FE_NODAL_SOLN_DIM ( LIBMESH_FE_NODAL_SOLN_DIM(  MONOMIAL_VEC,
(FE< 0, MONOMIAL >::nodal_soln)  ,
 
)

Definition at line 113 of file fe_monomial_vec.C.

124 {
125  monomial_vec_nodal_soln(elem, order, elem_soln, 2 /*dim*/, nodal_soln, add_p_level);
126 }

◆ LIBMESH_FE_NODAL_SOLN_DIM() [3/3]

libMesh::LIBMESH_FE_NODAL_SOLN_DIM ( LIBMESH_FE_NODAL_SOLN_DIM(  LAGRANGE_VEC,
(FE< 0, LAGRANGE >::nodal_soln)  ,
 
)

Definition at line 636 of file fe_lagrange_vec.C.

646 { lagrange_vec_nodal_soln(elem, order, elem_soln, 2 /*dim*/, nodal_soln, add_p_level); }

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [1/5]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( HIERARCHIC_VEC  )

Definition at line 117 of file fe_hierarchic_vec.C.

References Real, libMesh::FE< Dim, T >::shape(), and value.

132 {
133  Real value = FE<0,HIERARCHIC>::shape( type, order, i, p );
134  return libMesh::RealGradient( value );
135 }
RealVectorValue RealGradient
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const bool value
Definition: xdr_io.C:54

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [2/5]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( MONOMIAL_VEC  )

Definition at line 140 of file fe_monomial_vec.C.

References Real, libMesh::FE< Dim, T >::shape(), and value.

152 {
153  Real value = FE<0, MONOMIAL>::shape(type, order, i, p);
155 }
VectorValue< Real > RealVectorValue
Useful typedefs to allow transparent switching between Real and Complex data types.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const bool value
Definition: xdr_io.C:54

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [3/5]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( NEDELEC_ONE  )

Definition at line 372 of file fe_nedelec_one.C.

377  { NEDELEC_LOW_D_ERROR_MESSAGE }

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [4/5]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( RAVIART_THOMAS  )

Definition at line 387 of file fe_raviart.C.

394  { RAVIART_LOW_D_ERROR_MESSAGE }

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [5/5]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( LAGRANGE_VEC  )

Definition at line 657 of file fe_lagrange_vec.C.

References Real, libMesh::FE< Dim, T >::shape(), and value.

672 {
673  Real value = FE<0,LAGRANGE>::shape( type, order, i, p );
674  return libMesh::RealGradient( value );
675 }
RealVectorValue RealGradient
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const bool value
Definition: xdr_io.C:54

◆ libmesh_ignore()

template<class ... Args>
void libMesh::libmesh_ignore ( const Args &  ...)
inline

Definition at line 515 of file libmesh_common.h.

Referenced by add_cube_convex_hull_to_mesh(), libMesh::StaticCondensationDofMap::add_uncondensed_dof_plus_constraint_dofs(), adjust_linear_solver(), libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), assemble(), assemble_1D(), assemble_biharmonic(), assemble_cd(), assemble_func(), assemble_laplace(), assemble_mass(), assemble_matrices(), assemble_SchroedingerEquation(), assemble_shell(), assemble_stokes(), assemble_wave(), InfFERadialTest::base_point(), libMesh::System::boundary_project_vector(), libMesh::ShellMatrix< Number >::build(), libMesh::OptimizationSolver< T >::build(), libMesh::LinearSolver< Number >::build(), libMesh::SparseMatrix< ValOut >::build(), libMesh::Partitioner::build_graph(), libMesh::Preconditioner< Number >::build_preconditioner(), libMesh::FEMap::compute_inverse_map_second_derivs(), libMesh::FEMap::compute_single_point_map(), connect_children(), libMesh::TypeVector< Real >::cross(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::ExactErrorEstimator::estimate_error(), libMesh::ExodusII_IO::ExodusII_IO(), libMesh::TensorValue< T >::extrinsic_rotation_matrix(), libMesh::MeshCommunication::find_global_indices(), libMesh::MeshTools::Modification::flatten(), libMesh::System::init_data(), libMesh::PetscMatrix< T >::init_without_preallocation(), libMesh::Poly2TriTriangulator::insert_refinement_points(), integrate_function(), libMesh::TensorValue< T >::intrinsic_rotation_matrix(), libMesh::FEMap::inverse_map(), libMesh::Elem::is_vertex_on_parent(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Elem >(), LIBMESH_DEFAULT_VECTORIZED_FE(), line_print(), main(), libMesh::MeshCommunication::make_node_bcids_parallel_consistent(), libMesh::MeshCommunication::make_node_unique_ids_parallel_consistent(), libMesh::FEMap::map(), libMesh::FEMap::map_deriv(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::Nemesis_IO::Nemesis_IO(), libMesh::Parallel::Packing< Eigen::Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > >::pack(), libMesh::Parallel::Packing< Eigen::Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > >::packable_size(), libMesh::Parallel::Packing< Eigen::Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > >::packed_size(), libMesh::C0Polygon::permute(), libMesh::PetscSolverException::PetscSolverException(), libMesh::PetscMatrix< T >::preallocate(), libMesh::System::project_vector(), libMesh::RBEIMEvaluation::rb_eim_solves(), libMesh::STLIO::read_ascii(), libMesh::STLIO::read_binary(), libMesh::CheckpointIO::read_connectivity(), libMesh::SparseMatrix< ValOut >::read_matlab(), libMesh::NumericVector< Number >::read_matlab(), libMesh::StaticCondensationDofMap::reinit(), Biharmonic::JR::residual_and_jacobian(), libMesh::C0Polyhedron::retriangulate(), libMesh::MeshTools::Modification::rotate(), scale_mesh_and_plot(), libMesh::DofMap::set_constrained_sparsity_construction(), libMesh::Partitioner::set_interface_node_processor_ids_petscpartitioner(), set_lid_driven_bcs(), libMesh::Partitioner::set_parent_processor_ids(), libMesh::DofObject::set_unique_id(), libMesh::FE< Dim, LAGRANGE_VEC >::shape(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_deriv(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv(), libMesh::DofMap::should_p_refine(), libMesh::DofMap::should_p_refine_var(), libMesh::Sphere::Sphere(), TIMPI::StandardType< libMesh::FEType >::StandardType(), TIMPI::StandardType< libMesh::Point >::StandardType(), libMesh::Sphere::surface_coords(), VolumeTest::test_elem_invertible(), VolumeTest::testQuad4AspectRatio(), VolumeTest::testQuad4Jacobian(), VolumeTest::testQuad4MinMaxAngle(), VolumeTest::testQuad4Warpage(), InfFERadialTest::testSingleOrder(), VolumeTest::testTet4DihedralAngle(), VolumeTest::testTet4Jacobian(), VolumeTest::testTri3AspectRatio(), WriteVecAndScalar::testWriteNemesis(), tetrahedralize_domain(), transform_mesh_and_plot(), libMesh::NetGenMeshInterface::triangulate(), triangulate_domain(), triple_product(), libMesh::RBConstruction::truth_solve(), libMesh::TypeTensor< T >::TypeTensor(), libMesh::TypeVector< Real >::TypeVector(), libMesh::Parallel::Packing< Eigen::Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > >::unpack(), libMesh::Nemesis_IO::write_complex_magnitude(), libMesh::ExodusII_IO_Helper::write_elements(), libMesh::ExodusII_IO::write_nodal_data(), write_output(), libMesh::StaticCondensation::zero(), and libMesh::RemoteElem::~RemoteElem().

515 { }

◆ libmesh_imag() [1/2]

template<typename T >
T libMesh::libmesh_imag ( )
inline

Definition at line 187 of file libmesh_common.h.

187 { return 0; }

◆ libmesh_imag() [2/2]

template<typename T >
T libMesh::libmesh_imag ( std::complex< T >  a)
inline

Definition at line 194 of file libmesh_common.h.

References std::imag().

194 { return std::imag(a); }
boost::multiprecision::float128 imag(const boost::multiprecision::float128)

◆ libmesh_isinf() [1/2]

template<typename T >
bool libMesh::libmesh_isinf ( x)
inline

Definition at line 209 of file libmesh_common.h.

Referenced by InfFERadialTest::base_point(), libMesh::InfFEMap::inverse_map(), and libMesh::BoundingBox::max_size().

209 { return std::isinf(x); }

◆ libmesh_isinf() [2/2]

template<typename T >
bool libMesh::libmesh_isinf ( std::complex< T >  a)
inline

Definition at line 212 of file libmesh_common.h.

References std::imag(), and std::real().

213 { return (std::isinf(std::real(a)) || std::isinf(std::imag(a))); }
boost::multiprecision::float128 real(const boost::multiprecision::float128 in)
boost::multiprecision::float128 imag(const boost::multiprecision::float128)

◆ libmesh_isnan() [1/2]

template<typename T >
bool libMesh::libmesh_isnan ( x)
inline

◆ libmesh_isnan() [2/2]

template<typename T >
bool libMesh::libmesh_isnan ( std::complex< T >  a)
inline

Definition at line 204 of file libmesh_common.h.

References std::imag(), and std::real().

205 { return (std::isnan(std::real(a)) || std::isnan(std::imag(a))); }
boost::multiprecision::float128 real(const boost::multiprecision::float128 in)
boost::multiprecision::float128 imag(const boost::multiprecision::float128)

◆ libmesh_merge_move()

template<typename T >
void libMesh::libmesh_merge_move ( T &  target,
T &  source 
)

◆ libmesh_petsc_DMCoarsen()

PetscErrorCode libMesh::libmesh_petsc_DMCoarsen ( DM  dmf,
MPI_Comm  ,
DM *  dmc 
)

Help PETSc identify the coarser DM dmc given the fine DM dmf.

Definition at line 183 of file petsc_dm_wrapper.C.

References libMesh::PetscDMContext::coarser_dm, libMesh::PetscDMContext::global_dm, libmesh_assert(), libmesh_petsc_DMCreateSubDM(), LibmeshPetscCallQ(), PetscFunctionReturn(), subdm, and libMesh::PetscDMContext::subfields.

Referenced by libMesh::PetscDMWrapper::init_petscdm().

184  {
185  PetscFunctionBegin;
186 
187  libmesh_assert(dmc);
188  libmesh_assert(dmf);
189 
190  // Extract our context from the incoming dmf
191  void * ctx_f = nullptr;
192  LibmeshPetscCallQ(DMShellGetContext(dmf, &ctx_f));
193  libmesh_assert(ctx_f);
194  PetscDMContext * p_ctx_f = static_cast<PetscDMContext*>(ctx_f);
195 
196  // First, ensure that there exists a coarse DM that we want to
197  // set. There ought to be as we created it while walking the
198  // hierarchy.
199  libmesh_assert(p_ctx_f->coarser_dm);
200  libmesh_assert(*(p_ctx_f->coarser_dm));
201 
202  // In situations using fieldsplit we need to provide a coarser
203  // DM which only has the relevant subfields in it. Since we
204  // create global DMs for each mesh level, we need to also create
205  // the subDMs. We do this by checking the number of fields. When
206  // less than all the fields are used, we need to create the
207  // proper subDMs. We get the number of fields and their names
208  // from the incoming fine DM and the global reference DM
209  PetscInt nfieldsf, nfieldsg;
210  char ** fieldnamesf;
211  char ** fieldnamesg;
212 
213  libmesh_assert(p_ctx_f->global_dm);
214  DM * globaldm = p_ctx_f->global_dm;
215  LibmeshPetscCallQ(DMCreateFieldIS(dmf, &nfieldsf, &fieldnamesf, nullptr));
216  LibmeshPetscCallQ(DMCreateFieldIS(*globaldm, &nfieldsg, &fieldnamesg, nullptr));
217 
218  // If the probed number of fields is less than the number of
219  // global fields, this amounts to PETSc 'indicating' to us we
220  // are doing FS. So, we must create subDMs for the coarser
221  // DMs.
222  if ( nfieldsf < nfieldsg )
223  {
224  p_ctx_f->subfields.clear();
225  p_ctx_f->subfields.resize(nfieldsf);
226 
227  // To select the subDM fields we match fine grid DM field
228  // names to their global DM counterparts. Since PETSc can
229  // internally reassign field numbering under a fieldsplit,
230  // we must extract subsections via the field names. This is
231  // admittedly gross, but c'est la vie.
232  for (int i = 0; i < nfieldsf ; i++)
233  {
234  for (int j = 0; j < nfieldsg ;j++)
235  if ( strcmp( fieldnamesg[j], fieldnamesf[i] ) == 0 )
236  p_ctx_f->subfields[i] = j;
237  }
238 
239  // Next, for the found fields we create a subDM
240  DM subdm;
241  LibmeshPetscCallQ(libmesh_petsc_DMCreateSubDM(*(p_ctx_f->coarser_dm), nfieldsf,
242  p_ctx_f->subfields.data(), nullptr, &subdm));
243 
244  // Extract our coarse context from the created subDM so we
245  // can set its subfields for use in createInterp.
246  void * ctx_c = nullptr;
247  LibmeshPetscCallQ(DMShellGetContext(subdm, &ctx_c));
248  libmesh_assert(ctx_c);
249  PetscDMContext * p_ctx_c = static_cast<PetscDMContext*>(ctx_c);
250 
251  // propagate subfield info to subDM
252  p_ctx_c->subfields = p_ctx_f->subfields;
253 
254  // return created subDM to PETSc
255  *(dmc) = subdm;
256  }
257  else {
258  // No fieldsplit was requested so set the coarser DM to the
259  // global coarser DM.
260  *(dmc) = *(p_ctx_f->coarser_dm);
261  }
262 
263  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
264  }
PetscErrorCode PetscInt const PetscInt IS DM * subdm
libmesh_assert(ctx)
PetscErrorCode libmesh_petsc_DMCreateSubDM(DM dm, PetscInt numFields, PetscInt fields[], IS *is, DM *subdm) PetscErrorCode libmesh_petsc_DMCreateSubDM(DM dm
Help PETSc create a subDM given a global dm when using fieldsplit.
LibmeshPetscCallQ(DMShellGetContext(dm, &ctx))
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_DMCreateInterpolation()

PetscErrorCode libMesh::libmesh_petsc_DMCreateInterpolation ( DM  dmc,
DM  dmf,
Mat *  mat,
Vec *  vec 
)

Function to give PETSc that sets the Interpolation Matrix between two DMs.

Definition at line 268 of file petsc_dm_wrapper.C.

References libMesh::SparseMatrix< T >::create_submatrix(), libMesh::PetscDMContext::dof_vec, libMesh::PetscDMContext::global_dm, libMesh::PetscDMContext::K_interp_ptr, libMesh::PetscDMContext::K_sub_interp_ptr, libmesh_assert(), LibmeshPetscCallQ(), libMesh::PetscMatrixBase< T >::mat(), PetscFunctionReturn(), and libMesh::PetscDMContext::subfields.

Referenced by libMesh::PetscDMWrapper::init_petscdm().

270  {
271  PetscFunctionBegin;
272 
273  libmesh_assert(dmc);
274  libmesh_assert(dmf);
275  libmesh_assert(mat);
276  libmesh_assert(vec); // Optional scaling (not needed for mg)
277 
278  // Get a communicator from incoming DM
279  MPI_Comm comm;
280  LibmeshPetscCallQ(PetscObjectGetComm((PetscObject)dmc, &comm));
281 
282  // Extract our coarse context from the incoming DM
283  void * ctx_c = nullptr;
284  LibmeshPetscCallQ(DMShellGetContext(dmc, &ctx_c));
285  libmesh_assert(ctx_c);
286  PetscDMContext * p_ctx_c = static_cast<PetscDMContext*>(ctx_c);
287 
288  // Extract our fine context from the incoming DM
289  void * ctx_f = nullptr;
290  LibmeshPetscCallQ(DMShellGetContext(dmf, &ctx_f));
291  libmesh_assert(ctx_f);
292  PetscDMContext * p_ctx_f = static_cast<PetscDMContext*>(ctx_f);
293 
294  // Check for existing global projection matrix
295  libmesh_assert(p_ctx_c->K_interp_ptr);
296 
297  // If were doing fieldsplit we need to construct sub projection
298  // matrices. We compare the passed in number of DMs fields to a
299  // global DM in order to determine if a subprojection is needed.
300  PetscInt nfieldsf, nfieldsg;
301 
302  libmesh_assert(p_ctx_c->global_dm);
303  DM * globaldm = p_ctx_c->global_dm;
304 
305  LibmeshPetscCallQ(DMCreateFieldIS(dmf, &nfieldsf, nullptr, nullptr));
306  LibmeshPetscCallQ(DMCreateFieldIS(*globaldm, &nfieldsg, nullptr, nullptr));
307 
308  // If the probed number of fields is less than the number of
309  // global fields, this amounts to PETSc 'indicating' to us we
310  // are doing FS.
311  if ( nfieldsf < nfieldsg)
312  {
313  // Loop over the fields and merge their index sets.
314  std::vector<std::vector<numeric_index_type>> allrows,allcols;
315  std::vector<numeric_index_type> rows,cols;
316  allrows = p_ctx_f->dof_vec;
317  allcols = p_ctx_c->dof_vec;
318 
319  // For internal libmesh submat extraction need to merge all
320  // field dofs and then sort the vectors so that they match
321  // the Projection Matrix ordering
322  const int n_subfields = p_ctx_f->subfields.size();
323  if ( n_subfields >= 1 )
324  {
325  for (int i : p_ctx_f->subfields)
326  {
327  rows.insert(rows.end(), allrows[i].begin(), allrows[i].end());
328  cols.insert(cols.end(), allcols[i].begin(), allcols[i].end());
329  }
330  std::sort(rows.begin(),rows.end());
331  std::sort(cols.begin(),cols.end());
332  }
333 
334  // Now that we have merged the fine and coarse index sets
335  // were ready to make the submatrix and pass it off to PETSc
336  p_ctx_c->K_interp_ptr->create_submatrix (*p_ctx_c->K_sub_interp_ptr, rows, cols);
337 
338  // return to PETSc the created submatrix
339  *(mat) = p_ctx_c->K_sub_interp_ptr->mat();
340 
341  } // endif less incoming DM fields than global DM fields
342  else
343  {
344  // We are not doing fieldsplit, so return global projection
345  *(mat) = p_ctx_c->K_interp_ptr->mat();
346  }
347 
348  // Vec scaling isnt needed so were done.
349  *(vec) = LIBMESH_PETSC_NULLPTR;
350 
351  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
352  } // end libmesh_petsc_DMCreateInterpolation
libmesh_assert(ctx)
LibmeshPetscCallQ(DMShellGetContext(dm, &ctx))
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_DMCreateRestriction()

PetscErrorCode libMesh::libmesh_petsc_DMCreateRestriction ( DM  dmc,
DM  dmf,
Mat *  mat 
)

Function to give PETSc that sets the Restriction Matrix between two DMs.

Definition at line 356 of file petsc_dm_wrapper.C.

References libMesh::PetscDMContext::K_restrict_ptr, libmesh_assert(), LibmeshPetscCallQ(), libMesh::PetscMatrixBase< T >::mat(), and PetscFunctionReturn().

Referenced by libMesh::PetscDMWrapper::init_petscdm().

357  {
358  PetscFunctionBegin;
359 
360  libmesh_assert(dmc);
361  libmesh_assert(dmf);
362  libmesh_assert(mat);
363 
364  // get a communicator from incoming DM
365  MPI_Comm comm;
366  LibmeshPetscCallQ(PetscObjectGetComm((PetscObject)dmc, &comm));
367 
368  // extract our fine context from the incoming DM
369  void * ctx_f = nullptr;
370  LibmeshPetscCallQ(DMShellGetContext(dmf, &ctx_f));
371  libmesh_assert(ctx_f);
372  PetscDMContext * p_ctx_f = static_cast<PetscDMContext*>(ctx_f);
373 
374  // check / give PETSc its matrix
375  libmesh_assert(p_ctx_f->K_restrict_ptr);
376  *(mat) = p_ctx_f->K_restrict_ptr->mat();
377 
378  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
379  }
libmesh_assert(ctx)
LibmeshPetscCallQ(DMShellGetContext(dm, &ctx))
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_DMCreateSubDM()

PetscErrorCode libMesh::libmesh_petsc_DMCreateSubDM ( DM  dm,
PetscInt  numFields,
PetscInt  fields[],
IS *  is,
DM *  subdm 
)

Help PETSc create a subDM given a global dm when using fieldsplit.

Referenced by libMesh::PetscDMWrapper::init_petscdm(), and libmesh_petsc_DMCoarsen().

◆ libmesh_petsc_DMRefine()

PetscErrorCode libMesh::libmesh_petsc_DMRefine ( DM  dmc,
MPI_Comm  ,
DM *  dmf 
)

Help PETSc identify the finer DM given a dmc.

Definition at line 161 of file petsc_dm_wrapper.C.

References libMesh::PetscDMContext::finer_dm, libmesh_assert(), LibmeshPetscCallQ(), p_ctx, and PetscFunctionReturn().

Referenced by libMesh::PetscDMWrapper::init_petscdm().

162  {
163  PetscFunctionBegin;
164 
165  libmesh_assert(dmc);
166  libmesh_assert(dmf);
167 
168  // extract our context from the incoming dmc
169  void * ctx_c = nullptr;
170  LibmeshPetscCallQ(DMShellGetContext(dmc, & ctx_c));
171  libmesh_assert(ctx_c);
172  PetscDMContext * p_ctx = static_cast<PetscDMContext * >(ctx_c);
173 
174  // check / set the finer DM
177  *(dmf) = *(p_ctx->finer_dm);
178 
179  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
180  }
PetscDMContext * p_ctx
libmesh_assert(ctx)
LibmeshPetscCallQ(DMShellGetContext(dm, &ctx))
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_linesearch_shellfunc()

PetscErrorCode libMesh::libmesh_petsc_linesearch_shellfunc ( SNESLineSearch  linesearch,
void *  ctx 
)

Definition at line 567 of file petsc_nonlinear_solver.C.

References libMesh::ParallelObject::comm(), ctx, libMesh::PetscNonlinearSolver< T >::linesearch_object, and PetscFunctionReturn().

Referenced by libMesh::PetscNonlinearSolver< Number >::solve().

568  {
569  PetscFunctionBegin;
570 
571  // No way to safety-check this cast, since we got a void *...
573  static_cast<PetscNonlinearSolver<Number> *> (ctx);
574 
575  libmesh_parallel_only(solver->comm());
576 
577  solver->linesearch_object->linesearch(linesearch);
578  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
579  }
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_preconditioner_apply()

PetscErrorCode libMesh::libmesh_petsc_preconditioner_apply ( PC  ,
Vec  x,
Vec  y 
)

This function is called by PETSc to actually apply the preconditioner.

ctx will hold the Preconditioner.

Definition at line 69 of file petsc_linear_solver.C.

References libMesh::Preconditioner< T >::apply(), libMesh::ParallelObject::comm(), ctx, LibmeshPetscCallQ(), and PetscFunctionReturn().

Referenced by __libmesh_petsc_preconditioner_apply(), libMesh::PetscNonlinearSolver< Number >::init(), and libMesh::PetscLinearSolver< Number >::init().

70  {
71  PetscFunctionBegin;
72 
73  void * ctx;
74  LibmeshPetscCallQ(PCShellGetContext(pc,&ctx));
75  Preconditioner<Number> * preconditioner = static_cast<Preconditioner<Number> *>(ctx);
76 
77  PetscVector<Number> x_vec(x, preconditioner->comm());
78  PetscVector<Number> y_vec(y, preconditioner->comm());
79 
80  preconditioner->apply(x_vec,y_vec);
81 
82  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
83  }
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT Preconditioner< Number >
LibmeshPetscCallQ(DMShellGetContext(dm, &ctx))
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_preconditioner_setup()

PetscErrorCode libMesh::libmesh_petsc_preconditioner_setup ( PC  )

This function is called by PETSc to initialize the preconditioner.

ctx will hold the Preconditioner.

Definition at line 53 of file petsc_linear_solver.C.

References ctx, libMesh::Preconditioner< T >::initialized(), LibmeshPetscCallQ(), PetscFunctionReturn(), and libMesh::Preconditioner< T >::setup().

Referenced by __libmesh_petsc_preconditioner_setup(), libMesh::PetscNonlinearSolver< Number >::init(), and libMesh::PetscLinearSolver< Number >::init().

54  {
55  PetscFunctionBegin;
56 
57  void * ctx;
58  LibmeshPetscCallQ(PCShellGetContext(pc,&ctx));
59  Preconditioner<Number> * preconditioner = static_cast<Preconditioner<Number> *>(ctx);
60 
61  libmesh_error_msg_if(!preconditioner->initialized(),
62  "Preconditioner not initialized! Make sure you call init() before solve!");
63 
64  preconditioner->setup();
65 
66  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
67  }
template class LIBMESH_EXPORT Preconditioner< Number >
LibmeshPetscCallQ(DMShellGetContext(dm, &ctx))
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_recalculate_monitor()

PetscErrorCode libMesh::libmesh_petsc_recalculate_monitor ( SNES  snes,
PetscInt  it,
PetscReal  norm,
void *  mctx 
)

Definition at line 116 of file petsc_nonlinear_solver.C.

References libMesh::ParallelObject::comm(), ctx, PetscFunctionReturn(), and libMesh::PetscNonlinearSolver< T >::reuse_preconditioner_max_linear_its().

Referenced by libMesh::PetscNonlinearSolver< Number >::solve().

117  {
118  PetscFunctionBegin;
119 
120  // No way to safety-check this cast, since we got a void *...
122  static_cast<PetscNonlinearSolver<Number> *> (ctx);
123 
124  KSP ksp;
125  LibmeshPetscCall2(solver->comm(), SNESGetKSP(snes, &ksp));
126 
127  PetscInt niter;
128  LibmeshPetscCall2(solver->comm(), KSPGetIterationNumber(ksp, &niter));
129 
130  if (niter > cast_int<PetscInt>(solver->reuse_preconditioner_max_linear_its()))
131  {
132  // -2 is a magic number for "recalculate next time you need it
133  // and then not again"
134  LibmeshPetscCall2(solver->comm(), SNESSetLagPreconditioner(snes, -2));
135  }
136  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
137  }
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_snes_fd_residual()

PetscErrorCode libMesh::libmesh_petsc_snes_fd_residual ( SNES  snes,
Vec  x,
Vec  r,
void *  ctx 
)

Definition at line 253 of file petsc_nonlinear_solver.C.

References libMesh::NonlinearSolver< T >::_exact_constraint_enforcement, libMesh::PetscNonlinearSolver< T >::_zero_out_residual, libMesh::ParallelObject::comm(), ctx, libMesh::System::current_local_solution, libMesh::DofMap::enforce_constraints_on_residual(), libMesh::NonlinearSolver< T >::fd_residual_object, libMesh::System::get_dof_map(), libmesh_assert(), libmesh_petsc_snes_residual_helper(), PetscFunctionReturn(), libMesh::NonlinearImplicitSystem::ComputeResidual::residual(), libMesh::NonlinearSolver< T >::residual_object, libMesh::System::solution, libMesh::ResidualContext::solver, libMesh::PetscVector< T >::swap(), libMesh::ResidualContext::sys, libMesh::System::update(), and libMesh::PetscVector< T >::zero().

Referenced by __libmesh_petsc_snes_fd_residual().

254  {
255  PetscFunctionBegin;
256 
257  ResidualContext rc = libmesh_petsc_snes_residual_helper(snes, x, ctx);
258 
259  libmesh_parallel_only(rc.sys.comm());
260 
261  libmesh_assert(r);
262  PetscVector<Number> R(r, rc.sys.comm());
263 
264  if (rc.solver->_zero_out_residual)
265  R.zero();
266 
267  if (rc.solver->fd_residual_object != nullptr)
268  rc.solver->fd_residual_object->residual(*rc.sys.current_local_solution.get(), R, rc.sys);
269 
270  else if (rc.solver->residual_object != nullptr)
271  rc.solver->residual_object->residual(*rc.sys.current_local_solution.get(), R, rc.sys);
272 
273  else
274  libmesh_error_msg("Error! Unable to compute residual for forming finite difference Jacobian!");
275 
276  // Synchronize PETSc x to local solution since the local solution may be changed due to the constraints
277  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(rc.sys.solution.get());
278  PetscVector<Number> X_global(x, rc.sys.comm());
279 
280  X_global.swap(X_sys);
281  rc.sys.update();
282  X_global.swap(X_sys);
283 
284  R.close();
285 
286  if (rc.solver->_exact_constraint_enforcement)
287  {
288  rc.sys.get_dof_map().enforce_constraints_on_residual(rc.sys, &R, rc.sys.current_local_solution.get());
289  R.close();
290  }
291 
292  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
293  }
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
ResidualContext libmesh_petsc_snes_residual_helper(SNES snes, Vec x, void *ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_snes_jacobian()

PetscErrorCode libMesh::libmesh_petsc_snes_jacobian ( SNES  snes,
Vec  x,
Mat  jac,
Mat  pc,
void *  ctx 
)

Definition at line 442 of file petsc_nonlinear_solver.C.

References libMesh::PetscNonlinearSolver< T >::_current_nonlinear_iteration_number, libMesh::NonlinearSolver< T >::_exact_constraint_enforcement, libMesh::PetscNonlinearSolver< T >::_zero_out_jacobian, libMesh::SparseMatrix< T >::attach_dof_map(), libMesh::PetscMatrixBase< T >::close(), libMesh::ParallelObject::comm(), ctx, libMesh::System::current_local_solution, libMesh::DofMap::enforce_constraints_exactly(), libMesh::DofMap::enforce_constraints_on_jacobian(), libMesh::PetscMatrixBase< T >::get_context(), libMesh::System::get_dof_map(), libMesh::NonlinearImplicitSystem::ComputeJacobian::jacobian(), libMesh::NonlinearSolver< T >::jacobian, libMesh::NonlinearSolver< T >::jacobian_object, libmesh_assert(), libMesh::NonlinearSolver< T >::matvec, PetscFunctionReturn(), libMesh::NonlinearSolver< T >::residual_and_jacobian_object, libMesh::System::solution, libMesh::NonlinearSolver< T >::system(), libMesh::System::update(), and libMesh::SparseMatrix< T >::zero().

Referenced by __libmesh_petsc_snes_jacobian(), and libMesh::PetscNonlinearSolver< Number >::solve().

443  {
444  PetscFunctionBegin;
445 
446  LOG_SCOPE("jacobian()", "PetscNonlinearSolver");
447 
449 
450  // No way to safety-check this cast, since we got a void *...
452  static_cast<PetscNonlinearSolver<Number> *> (ctx);
453 
454  libmesh_parallel_only(solver->comm());
455 
456  // Get the current iteration number from the snes object,
457  // store it in the PetscNonlinearSolver object for possible use
458  // by the user's Jacobian function.
459  {
460  PetscInt n_iterations = 0;
461  LibmeshPetscCall2(solver->comm(), SNESGetIterationNumber(snes, &n_iterations));
462  solver->_current_nonlinear_iteration_number = cast_int<unsigned>(n_iterations);
463  }
464 
465  //-----------------------------------------------------------------------------
466  // if the user has provided both function pointers and objects only the pointer
467  // will be used, so catch that as an error
468  libmesh_error_msg_if(solver->jacobian && solver->jacobian_object,
469  "ERROR: cannot specify both a function and object to compute the Jacobian!");
470 
471  libmesh_error_msg_if(solver->matvec && solver->residual_and_jacobian_object,
472  "ERROR: cannot specify both a function and object to compute the combined Residual & Jacobian!");
473 
474  NonlinearImplicitSystem & sys = solver->system();
475 
476  PetscMatrixBase<Number> * const PC = pc ? PetscMatrixBase<Number>::get_context(pc, sys.comm()) : nullptr;
477  PetscMatrixBase<Number> * Jac = jac ? PetscMatrixBase<Number>::get_context(jac, sys.comm()) : nullptr;
478  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
479  PetscVector<Number> X_global(x, sys.comm());
480 
481  PetscMFFDMatrix<Number> mffd_jac(sys.comm());
482  PetscBool p_is_shell = PETSC_FALSE;
483  PetscBool j_is_mffd = PETSC_FALSE;
484  PetscBool j_is_shell = PETSC_FALSE;
485  if (pc)
486  LibmeshPetscCall2(sys.comm(), PetscObjectTypeCompare((PetscObject)pc, MATSHELL, &p_is_shell));
487  libmesh_assert(jac);
488  LibmeshPetscCall2(sys.comm(), PetscObjectTypeCompare((PetscObject)jac, MATMFFD, &j_is_mffd));
489  LibmeshPetscCall2(sys.comm(), PetscObjectTypeCompare((PetscObject)jac, MATSHELL, &j_is_shell));
490  if (j_is_mffd == PETSC_TRUE)
491  {
492  libmesh_assert(!Jac);
493  Jac = &mffd_jac;
494  mffd_jac = jac;
495  }
496 
497  // We already computed the Jacobian during the residual evaluation
498  if (solver->residual_and_jacobian_object)
499  {
500  // We could be doing matrix-free in which case we cannot rely on closing of explicit matrices
501  // that occurs during the PETSc residual callback
502  if ((j_is_shell == PETSC_TRUE) || (j_is_mffd == PETSC_TRUE))
503  Jac->close();
504 
505  if (pc && (p_is_shell == PETSC_TRUE))
506  PC->close();
507 
508  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
509  }
510 
511  // Set the dof maps
512  PC->attach_dof_map(sys.get_dof_map());
513  Jac->attach_dof_map(sys.get_dof_map());
514 
515  // Use the systems update() to get a good local version of the parallel solution
516  X_global.swap(X_sys);
517  sys.update();
518  X_global.swap(X_sys);
519 
520  // Enforce constraints (if any) exactly on the
521  // current_local_solution. This is the solution vector that is
522  // actually used in the computation of the residual below, and is
523  // not locked by debug-enabled PETSc the way that "x" is.
524  if (solver->_exact_constraint_enforcement)
525  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
526 
527  if (solver->_zero_out_jacobian)
528  PC->zero();
529 
530 
531  if (solver->jacobian != nullptr)
532  solver->jacobian(*sys.current_local_solution.get(), *PC, sys);
533 
534  else if (solver->jacobian_object != nullptr)
535  solver->jacobian_object->jacobian(*sys.current_local_solution.get(), *PC, sys);
536 
537  else if (solver->matvec != nullptr)
538  solver->matvec(*sys.current_local_solution.get(), nullptr, PC, sys);
539 
540  else
541  libmesh_error_msg("Error! Unable to compute residual and/or Jacobian!");
542 
543  PC->close();
544  if (solver->_exact_constraint_enforcement)
545  {
546  sys.get_dof_map().enforce_constraints_on_jacobian(sys, PC);
547  PC->close();
548  }
549 
550  if (Jac != PC)
551  {
552  // Assume that shells know what they're doing
553  libmesh_assert(!solver->_exact_constraint_enforcement || (j_is_mffd == PETSC_TRUE) ||
554  (j_is_shell == PETSC_TRUE));
555  Jac->close();
556  }
557 
558  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
559  }
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
static PetscMatrixBase< Number > * get_context(Mat mat, const TIMPI::Communicator &comm)
template class LIBMESH_EXPORT PetscMatrixBase< Number >
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_snes_mffd_interface()

PetscErrorCode libMesh::libmesh_petsc_snes_mffd_interface ( void *  ctx,
Vec  x,
Vec  r 
)

Definition at line 356 of file petsc_nonlinear_solver.C.

References libMesh::ParallelObject::comm(), libMesh::PetscNonlinearSolver< T >::computing_base_vector(), ctx, libmesh_petsc_snes_mffd_residual(), n_threads(), PetscFunctionReturn(), libMesh::PetscNonlinearSolver< T >::set_computing_base_vector(), TIMPI::Communicator::size(), libMesh::PetscNonlinearSolver< T >::snes(), and libMesh::PetscNonlinearSolver< T >::snes_mf_reuse_base().

Referenced by __libmesh_petsc_snes_mffd_interface(), and libMesh::PetscNonlinearSolver< Number >::solve().

357  {
358  PetscFunctionBegin;
359 
360  // No way to safety-check this cast, since we got a void *...
362  static_cast<PetscNonlinearSolver<Number> *> (ctx);
363 
364  LibmeshPetscCall2(solver->comm(), libmesh_petsc_snes_mffd_residual(solver->snes(), x, r, ctx));
365 
366 #if !PETSC_VERSION_LESS_THAN(3,8,4)
367 #ifndef NDEBUG
368 
369  // When the user requested to reuse the nonlinear residual as the base for doing matrix-free
370  // approximation of the Jacobian, we'll do a sanity check to make sure that that was safe to do
371  if (solver->snes_mf_reuse_base() && (solver->comm().size() == 1) && (libMesh::n_threads() == 1))
372  {
373  SNES snes = solver->snes();
374 
375  KSP ksp;
376  LibmeshPetscCall2(solver->comm(), SNESGetKSP(snes, &ksp));
377 
378  PetscInt ksp_it;
379  LibmeshPetscCall2(solver->comm(), KSPGetIterationNumber(ksp, &ksp_it));
380 
381  SNESType snes_type;
382  LibmeshPetscCall2(solver->comm(), SNESGetType(snes, &snes_type));
383 
384  libmesh_assert_msg(snes_type, "We're being called from SNES; snes_type should be non-null");
385 
386  Mat J;
387  LibmeshPetscCall2(solver->comm(), SNESGetJacobian(snes, &J, NULL, NULL, NULL));
388  libmesh_assert_msg(J, "We're being called from SNES; J should be non-null");
389 
390  MatType mat_type;
391  LibmeshPetscCall2(solver->comm(), MatGetType(J, &mat_type));
392  libmesh_assert_msg(mat_type, "We're being called from SNES; mat_type should be non-null");
393 
394  bool is_operator_mffd = strcmp(mat_type, MATMFFD) == 0;
395 
396  if ((ksp_it == PetscInt(0)) && is_operator_mffd)
397  {
398  bool computing_base_vector = solver->computing_base_vector();
399 
400  if (computing_base_vector)
401  {
402  Vec nonlinear_residual;
403 
404  LibmeshPetscCall2(solver->comm(), SNESGetFunction(snes, &nonlinear_residual, NULL, NULL));
405 
406  PetscBool vecs_equal;
407  LibmeshPetscCall2(solver->comm(), VecEqual(r, nonlinear_residual, &vecs_equal));
408 
409  libmesh_error_msg_if(!(vecs_equal == PETSC_TRUE),
410  "You requested to reuse the nonlinear residual vector as the base vector for "
411  "computing the action of the matrix-free Jacobian, but the vectors are not "
412  "the same. Your physics must have states; either remove the states "
413  "from your code or make sure that you set_mf_reuse_base(false)");
414  }
415 
416  // There are always exactly two function evaluations for the zeroth ksp iteration when doing
417  // matrix-free approximation of the Jacobian action: one corresponding to the evaluation of
418  // the base vector, and the other corresponding to evaluation of the perturbed vector. So we
419  // toggle back and forth between states
420  solver->set_computing_base_vector(!computing_base_vector);
421  }
422  }
423 #endif
424 #endif
425 
426  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
427  }
unsigned int n_threads()
Definition: libmesh_base.h:96
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
PetscErrorCode libmesh_petsc_snes_mffd_residual(SNES snes, Vec x, Vec r, void *ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_snes_mffd_residual()

PetscErrorCode libMesh::libmesh_petsc_snes_mffd_residual ( SNES  snes,
Vec  x,
Vec  r,
void *  ctx 
)

Definition at line 309 of file petsc_nonlinear_solver.C.

References libMesh::NonlinearSolver< T >::_exact_constraint_enforcement, libMesh::PetscNonlinearSolver< T >::_zero_out_residual, libMesh::ParallelObject::comm(), ctx, libMesh::System::current_local_solution, libMesh::DofMap::enforce_constraints_on_residual(), libMesh::System::get_dof_map(), libmesh_assert(), libmesh_petsc_snes_residual_helper(), libMesh::NonlinearSolver< T >::mffd_residual_object, PetscFunctionReturn(), libMesh::NonlinearImplicitSystem::ComputeResidual::residual(), libMesh::NonlinearSolver< T >::residual_object, libMesh::System::solution, libMesh::ResidualContext::solver, libMesh::PetscVector< T >::swap(), libMesh::ResidualContext::sys, libMesh::System::update(), and libMesh::PetscVector< T >::zero().

Referenced by libmesh_petsc_snes_mffd_interface().

310  {
311  PetscFunctionBegin;
312 
313  ResidualContext rc = libmesh_petsc_snes_residual_helper(snes, x, ctx);
314 
315  libmesh_parallel_only(rc.sys.comm());
316 
317  libmesh_assert(r);
318  PetscVector<Number> R(r, rc.sys.comm());
319 
320  if (rc.solver->_zero_out_residual)
321  R.zero();
322 
323  if (rc.solver->mffd_residual_object != nullptr)
324  rc.solver->mffd_residual_object->residual(*rc.sys.current_local_solution.get(), R, rc.sys);
325 
326  else if (rc.solver->residual_object != nullptr)
327  rc.solver->residual_object->residual(*rc.sys.current_local_solution.get(), R, rc.sys);
328 
329  else
330  libmesh_error_msg("Error! Unable to compute residual for forming finite differenced"
331  "Jacobian-vector products!");
332 
333  // Synchronize PETSc x to local solution since the local solution may be changed due to the constraints
334  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(rc.sys.solution.get());
335  PetscVector<Number> X_global(x, rc.sys.comm());
336 
337  X_global.swap(X_sys);
338  rc.sys.update();
339  X_global.swap(X_sys);
340 
341  R.close();
342 
343  if (rc.solver->_exact_constraint_enforcement)
344  {
345  rc.sys.get_dof_map().enforce_constraints_on_residual(rc.sys, &R, rc.sys.current_local_solution.get());
346  R.close();
347  }
348 
349  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
350  }
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
ResidualContext libmesh_petsc_snes_residual_helper(SNES snes, Vec x, void *ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_snes_monitor()

PetscErrorCode libMesh::libmesh_petsc_snes_monitor ( SNES  ,
PetscInt  its,
PetscReal  fnorm,
void *   
)

Definition at line 142 of file petsc_nonlinear_solver.C.

References out, and PetscFunctionReturn().

Referenced by __libmesh_petsc_snes_monitor(), and libMesh::PetscNonlinearSolver< Number >::setup_default_monitor().

143  {
144  PetscFunctionBegin;
145  libMesh::out << " NL step "
146  << std::setw(2) << its
147  << std::scientific
148  << ", |residual|_2 = " << fnorm
149  << std::endl;
150  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
151  }
OStreamProxy out
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_snes_postcheck()

PetscErrorCode libMesh::libmesh_petsc_snes_postcheck ( SNESLineSearch  ,
Vec  x,
Vec  y,
Vec  w,
PetscBool *  changed_y,
PetscBool *  changed_w,
void *  context 
)

Definition at line 601 of file petsc_nonlinear_solver.C.

References libMesh::ParallelObject::comm(), libmesh_assert(), PetscFunctionReturn(), libMesh::NonlinearImplicitSystem::ComputePostCheck::postcheck(), libMesh::NonlinearSolver< T >::postcheck, libMesh::NonlinearSolver< T >::postcheck_object, and libMesh::NonlinearSolver< T >::system().

Referenced by __libmesh_petsc_snes_postcheck(), and libMesh::PetscNonlinearSolver< Number >::init().

602  {
603  PetscFunctionBegin;
604 
605  LOG_SCOPE("postcheck()", "PetscNonlinearSolver");
606 
607  // PETSc almost certainly initializes these to false already, but
608  // it doesn't hurt to be explicit.
609  *changed_w = PETSC_FALSE;
610  *changed_y = PETSC_FALSE;
611 
612  libmesh_assert(context);
613 
614  // Cast the context to a NonlinearSolver object.
616  static_cast<PetscNonlinearSolver<Number> *> (context);
617 
618  libmesh_parallel_only(solver->comm());
619 
620  // If the user has provided both postcheck function pointer and
621  // object, this is ambiguous, so throw an error.
622  libmesh_error_msg_if(solver->postcheck && solver->postcheck_object,
623  "ERROR: cannot specify both a function and object for performing the solve postcheck!");
624 
625  // It's also possible that we don't need to do anything at all, in
626  // that case return early...
627  NonlinearImplicitSystem & sys = solver->system();
628 
629  if (!solver->postcheck && !solver->postcheck_object)
630  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
631 
632  // We definitely need to wrap at least "w"
633  PetscVector<Number> petsc_w(w, sys.comm());
634 
635  // The user sets these flags in his/her postcheck function to
636  // indicate whether they changed something.
637  bool
638  changed_search_direction = false,
639  changed_new_soln = false;
640 
641  if (solver->postcheck || solver->postcheck_object)
642  {
643  PetscVector<Number> petsc_x(x, sys.comm());
644  PetscVector<Number> petsc_y(y, sys.comm());
645 
646  if (solver->postcheck)
647  solver->postcheck(petsc_x,
648  petsc_y,
649  petsc_w,
650  changed_search_direction,
651  changed_new_soln,
652  sys);
653 
654  else if (solver->postcheck_object)
655  solver->postcheck_object->postcheck(petsc_x,
656  petsc_y,
657  petsc_w,
658  changed_search_direction,
659  changed_new_soln,
660  sys);
661  }
662 
663  // Record whether the user changed the solution or the search direction.
664  if (changed_search_direction)
665  *changed_y = PETSC_TRUE;
666 
667  if (changed_new_soln)
668  *changed_w = PETSC_TRUE;
669 
670  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
671  }
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_snes_precheck()

PetscErrorCode libMesh::libmesh_petsc_snes_precheck ( SNESLineSearch  ,
Vec  X,
Vec  Y,
PetscBool *  changed,
void *  context 
)

Definition at line 682 of file petsc_nonlinear_solver.C.

References libMesh::NonlinearSolver< T >::_exact_constraint_enforcement, libMesh::ParallelObject::comm(), libmesh_assert(), PetscFunctionReturn(), libMesh::NonlinearImplicitSystem::ComputePreCheck::precheck(), libMesh::NonlinearSolver< T >::precheck_object, libMesh::PetscVector< T >::swap(), and libMesh::NonlinearSolver< T >::system().

Referenced by libMesh::PetscNonlinearSolver< Number >::init().

683  {
684  PetscFunctionBegin;
685 
686  LOG_SCOPE("precheck()", "PetscNonlinearSolver");
687 
688  // PETSc almost certainly initializes these to false already, but
689  // it doesn't hurt to be explicit.
690  *changed = PETSC_FALSE;
691 
692  libmesh_assert(context);
693 
694  // Cast the context to a NonlinearSolver object.
696  static_cast<PetscNonlinearSolver<Number> *> (context);
697 
698  libmesh_parallel_only(solver->comm());
699 
700  // It's possible that we don't need to do anything at all, in
701  // that case return early...
702  if (!solver->precheck_object)
703  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
704 
705  // The user sets these flags in his/her postcheck function to
706  // indicate whether they changed something.
707  bool
708  petsc_changed = false;
709 
710  auto & sys = solver->system();
711  auto & x_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
712  PetscVector<Number> petsc_x(X, sys.comm());
713  PetscVector<Number> petsc_y(Y, sys.comm());
714 
715  // Use the systems update() to get a good local version of the parallel solution
716  petsc_x.swap(x_sys);
717  sys.update();
718  petsc_x.swap(x_sys);
719 
720  // Enforce constraints (if any) exactly on the
721  // current_local_solution. This is the solution vector that is
722  // actually used in the computation of residuals and Jacobians, and is
723  // not locked by debug-enabled PETSc the way that "x" is.
724  libmesh_assert(sys.current_local_solution.get());
725  auto & local_soln = *sys.current_local_solution.get();
726  if (solver->_exact_constraint_enforcement)
727  sys.get_dof_map().enforce_constraints_exactly(sys, &local_soln);
728 
729  solver->precheck_object->precheck(local_soln,
730  petsc_y,
731  petsc_changed,
732  sys);
733 
734  // Record whether the user changed the solution or the search direction.
735  if (petsc_changed)
736  *changed = PETSC_TRUE;
737 
738  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
739  }
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_snes_residual()

PetscErrorCode libMesh::libmesh_petsc_snes_residual ( SNES  snes,
Vec  x,
Vec  r,
void *  ctx 
)

Definition at line 167 of file petsc_nonlinear_solver.C.

References libMesh::NonlinearSolver< T >::_exact_constraint_enforcement, libMesh::PetscNonlinearSolver< T >::_zero_out_jacobian, libMesh::PetscNonlinearSolver< T >::_zero_out_residual, libMesh::ParallelObject::comm(), ctx, libMesh::System::current_local_solution, libMesh::DofMap::enforce_constraints_on_jacobian(), libMesh::DofMap::enforce_constraints_on_residual(), libMesh::System::get_dof_map(), libMesh::ImplicitSystem::get_system_matrix(), libmesh_assert(), libmesh_petsc_snes_residual_helper(), libMesh::NonlinearSolver< T >::matvec, PetscFunctionReturn(), libMesh::NonlinearImplicitSystem::ComputeResidual::residual(), libMesh::NonlinearSolver< T >::residual, libMesh::NonlinearImplicitSystem::ComputeResidualandJacobian::residual_and_jacobian(), libMesh::NonlinearSolver< T >::residual_and_jacobian_object, libMesh::NonlinearSolver< T >::residual_object, libMesh::System::solution, libMesh::ResidualContext::solver, libMesh::PetscVector< T >::swap(), libMesh::ResidualContext::sys, libMesh::System::update(), libMesh::PetscVector< T >::zero(), and libMesh::SparseMatrix< T >::zero().

Referenced by __libmesh_petsc_snes_residual(), and libMesh::PetscNonlinearSolver< Number >::solve().

168  {
169  PetscFunctionBegin;
170 
171  ResidualContext rc = libmesh_petsc_snes_residual_helper(snes, x, ctx);
172 
173  libmesh_parallel_only(rc.sys.comm());
174 
175  libmesh_assert(r);
176  PetscVector<Number> R(r, rc.sys.comm());
177 
178  if (rc.solver->_zero_out_residual)
179  R.zero();
180 
181  //-----------------------------------------------------------------------------
182  // if the user has provided both function pointers and objects only the pointer
183  // will be used, so catch that as an error
184  libmesh_error_msg_if(rc.solver->residual && rc.solver->residual_object,
185  "ERROR: cannot specify both a function and object to compute the Residual!");
186 
187  libmesh_error_msg_if(rc.solver->matvec && rc.solver->residual_and_jacobian_object,
188  "ERROR: cannot specify both a function and object to compute the combined Residual & Jacobian!");
189 
190  if (rc.solver->residual != nullptr)
191  rc.solver->residual(*rc.sys.current_local_solution.get(), R, rc.sys);
192 
193  else if (rc.solver->residual_object != nullptr)
194  rc.solver->residual_object->residual(*rc.sys.current_local_solution.get(), R, rc.sys);
195 
196  else if (rc.solver->matvec != nullptr)
197  rc.solver->matvec (*rc.sys.current_local_solution.get(), &R, nullptr, rc.sys);
198 
199  else if (rc.solver->residual_and_jacobian_object != nullptr)
200  {
201  auto & jac = rc.sys.get_system_matrix();
202 
203  if (rc.solver->_zero_out_jacobian)
204  jac.zero();
205 
206  rc.solver->residual_and_jacobian_object->residual_and_jacobian(
207  *rc.sys.current_local_solution.get(), &R, &jac, rc.sys);
208 
209  jac.close();
210  if (rc.solver->_exact_constraint_enforcement)
211  {
212  rc.sys.get_dof_map().enforce_constraints_on_jacobian(rc.sys, &jac);
213  jac.close();
214  }
215  }
216 
217  else
218  libmesh_error_msg("Error! Unable to compute residual and/or Jacobian!");
219 
220 
221  // Synchronize PETSc x to local solution since the local solution may be changed due to the constraints
222  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(rc.sys.solution.get());
223  PetscVector<Number> X_global(x, rc.sys.comm());
224 
225  X_global.swap(X_sys);
226  rc.sys.update();
227  X_global.swap(X_sys);
228 
229  R.close();
230 
231  if (rc.solver->_exact_constraint_enforcement)
232  {
233  rc.sys.get_dof_map().enforce_constraints_on_residual(rc.sys, &R, rc.sys.current_local_solution.get());
234  R.close();
235  }
236 
237  PetscFunctionReturn(LIBMESH_PETSC_SUCCESS);
238  }
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
ResidualContext libmesh_petsc_snes_residual_helper(SNES snes, Vec x, void *ctx)
void * ctx
PetscFunctionReturn(LIBMESH_PETSC_SUCCESS)

◆ libmesh_petsc_snes_residual_helper()

ResidualContext libMesh::libmesh_petsc_snes_residual_helper ( SNES  snes,
Vec  x,
void *  ctx 
)

Definition at line 57 of file petsc_nonlinear_solver.C.

References libMesh::PetscNonlinearSolver< T >::_current_nonlinear_iteration_number, libMesh::NonlinearSolver< T >::_exact_constraint_enforcement, libMesh::ParallelObject::comm(), ctx, libMesh::System::current_local_solution, libMesh::DofMap::enforce_constraints_exactly(), libMesh::System::get_dof_map(), libmesh_assert(), libMesh::System::solution, libMesh::PetscVector< T >::swap(), libMesh::NonlinearSolver< T >::system(), and libMesh::System::update().

Referenced by libmesh_petsc_snes_fd_residual(), libmesh_petsc_snes_mffd_residual(), and libmesh_petsc_snes_residual().

58 {
59  LOG_SCOPE("residual()", "PetscNonlinearSolver");
60 
61  libmesh_assert(x);
63 
64  // No way to safety-check this cast, since we got a void *...
66  static_cast<PetscNonlinearSolver<Number> *> (ctx);
67 
68  libmesh_parallel_only(solver->comm());
69 
70  // Get the current iteration number from the snes object,
71  // store it in the PetscNonlinearSolver object for possible use
72  // by the user's residual function.
73  {
74  PetscInt n_iterations = 0;
75  LibmeshPetscCall2(solver->comm(), SNESGetIterationNumber(snes, &n_iterations));
76  solver->_current_nonlinear_iteration_number = cast_int<unsigned>(n_iterations);
77  }
78 
79  NonlinearImplicitSystem & sys = solver->system();
80 
81  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
82 
83  PetscVector<Number> X_global(x, sys.comm());
84 
85  // Use the system's update() to get a good local version of the
86  // parallel solution. This operation does not modify the incoming
87  // "x" vector, it only localizes information from "x" into
88  // sys.current_local_solution.
89  X_global.swap(X_sys);
90  sys.update();
91  X_global.swap(X_sys);
92 
93  // Enforce constraints (if any) exactly on the
94  // current_local_solution. This is the solution vector that is
95  // actually used in the computation of the residual below, and is
96  // not locked by debug-enabled PETSc the way that "x" is.
97  if (solver->_exact_constraint_enforcement)
98  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
99 
100  return ResidualContext(solver, sys);
101 }
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
void * ctx

◆ libmesh_real() [1/2]

template<typename T >
T libMesh::libmesh_real ( a)
inline

Definition at line 186 of file libmesh_common.h.

Referenced by libMesh::FEMContext::_do_elem_position_set(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), libMesh::VariationalSmootherSystem::assembly(), libMesh::TransientRBEvaluation::compute_residual_dual_norm(), libMesh::RBEvaluation::compute_residual_dual_norm(), libMesh::RBConstruction::compute_residual_dual_norm_slow(), libMesh::ContinuationSystem::continuation_solve(), libMesh::MeshBase::copy_constraint_rows(), libMesh::FEMPhysics::eulerian_residual(), libMesh::RBEvaluation::eval_output_dual_norm(), libMesh::RBSCMConstruction::evaluate_stability_constant(), libMesh::RBSCMEvaluation::get_SCM_LB(), libMesh::RBSCMEvaluation::get_SCM_UB(), NonlinearNeoHookeCurrentConfig::init_for_qp(), libMesh::DenseSubVector< T >::max(), libMesh::DistributedVector< T >::max(), libMesh::LaspackVector< T >::max(), libMesh::EigenSparseVector< T >::max(), libMesh::DenseVector< Output >::max(), libMesh::DenseMatrix< Real >::max(), libMesh::DenseSubVector< T >::min(), libMesh::DistributedVector< T >::min(), libMesh::LaspackVector< T >::min(), libMesh::EigenSparseVector< T >::min(), libMesh::DenseVector< Output >::min(), libMesh::DenseMatrix< Real >::min(), libMesh::FEMSystem::numerical_jacobian(), libMesh::AutoAreaFunction::operator()(), libMesh::ContinuationSystem::solve_tangent(), MeshFunctionTest::test_subdomain_id_sets(), ParallelPointTest::testMapUnionVec(), MeshInputTest::testSingleElementImpl(), FETestBase< order, family, elem_type, 1 >::true_gradient(), libMesh::TransientRBConstruction::truth_solve(), libMesh::RBConstruction::truth_solve(), libMesh::TransientRBEvaluation::uncached_compute_residual_dual_norm(), libMesh::TransientRBConstruction::update_RB_initial_condition_all_N(), libMesh::GmshIO::write_post(), libMesh::EnsightIO::write_scalar_ascii(), and libMesh::EnsightIO::write_vector_ascii().

186 { return a; }

◆ libmesh_real() [2/2]

template<typename T >
T libMesh::libmesh_real ( std::complex< T >  a)
inline

Definition at line 191 of file libmesh_common.h.

References std::real().

191 { return std::real(a); }
boost::multiprecision::float128 real(const boost::multiprecision::float128 in)

◆ libmesh_terminate_handler()

void libMesh::libmesh_terminate_handler ( )

A terminate handler.

libMesh sets this to handle uncaught exceptions; it can also be called manually to print stack traces and perf logs and call MPI

Definition at line 293 of file libmesh.C.

References libMesh::PerfLog::clear(), err, GLOBAL_COMM_WORLD, old_terminate_handler, perflog, libMesh::PerfLog::print_log(), and write_traceout().

294 {
295 #ifdef LIBMESH_ENABLE_EXCEPTIONS
296  // If we have an active exception, it may have an error message that
297  // we should print.
298  libMesh::err << "libMesh terminating";
299  std::exception_ptr ex = std::current_exception();
300  if (ex)
301  {
302  try
303  {
304  std::rethrow_exception(ex);
305  }
306  catch (const std::exception & std_ex)
307  {
308  libMesh::err << ":\n" << std_ex.what();
309  }
310  }
311  libMesh::err << std::endl;
312 #endif
313 
314  // If this got called then we're probably crashing; let's print a
315  // stack trace. The trace files that are ultimately written depend on:
316  // 1.) Who throws the exception.
317  // 2.) Whether the C++ runtime unwinds the stack before the
318  // terminate_handler is called (this is implementation defined).
319  //
320  // The various cases are summarized in the table below:
321  //
322  // | libmesh exception | other exception
323  // -------------------------------------
324  // stack unwinds | A | B
325  // stack does not unwind | C | D
326  //
327  // Case A: There will be two stack traces in the file: one "useful"
328  // one, and one nearly empty one due to stack unwinding.
329  // Case B: You will get one nearly empty stack trace (not great, Bob!)
330  // Case C: You will get two nearly identical stack traces, ignore one of them.
331  // Case D: You will get one useful stack trace.
332  //
333  // Cases A and B (where the stack unwinds when an exception leaves
334  // main) appear to be non-existent in practice. I don't have a
335  // definitive list, but the stack does not unwind for GCC on either
336  // Mac or Linux. I think there's good reasons for this behavior too:
337  // it's much easier to get a stack trace when the stack doesn't
338  // unwind, for example.
340 
341  // We may care about performance data pre-crash; it would be sad to
342  // throw that away.
345 
346  // If we have MPI and it has been initialized, we need to be sure
347  // and call MPI_Abort instead of std::abort, so that the parallel
348  // job can die nicely.
349 #if defined(LIBMESH_HAVE_MPI)
350  int mpi_initialized;
351  MPI_Initialized (&mpi_initialized);
352 
353  if (mpi_initialized)
354  MPI_Abort(libMesh::GLOBAL_COMM_WORLD, 1);
355 #endif
356 
357 #ifdef LIBMESH_ENABLE_EXCEPTIONS
358  // The system terminate_handler may do useful things, or the user
359  // may have set their own terminate handler that we want to call.
361 #endif
362 
363  // The last attempt to die if nothing else has killed us
364  std::abort();
365 }
OStreamProxy err
PerfLog perflog
A PerfLog object to log performance.
MPI_Comm GLOBAL_COMM_WORLD
MPI Communicator used to initialize libMesh.
void write_traceout()
Writes a stack trace to a uniquely named file if –enable-tracefiles has been set by configure...
Definition: print_trace.C:240
std::terminate_handler old_terminate_handler
Definition: libmesh.C:290
void clear()
Clears all the internal data and restores the data structures to a pristine state.
Definition: perf_log.C:78
void print_log() const
Print the log.
Definition: perf_log.C:697

◆ libmesh_version_stdout()

void libMesh::libmesh_version_stdout ( )

Definition at line 23 of file libmesh_version.C.

References get_libmesh_version().

Referenced by main().

24 {
25  std::cout << "--------------------------------------------------------" << std::endl;
26  std::cout << "libMesh Library: Version = " << LIBMESH_LIB_VERSION;
27  std::cout << " (" << get_libmesh_version() << ")" << std::endl << std::endl;
28 
29  std::cout << LIBMESH_LIB_RELEASE << std::endl << std::endl;
30 
31  std::cout << "Build Date = " << LIBMESH_BUILD_DATE << std::endl;
32  std::cout << "Build Host = " << LIBMESH_BUILD_HOST << std::endl;
33  std::cout << "Build User = " << LIBMESH_BUILD_USER << std::endl;
34  std::cout << "Build Arch = " << LIBMESH_BUILD_ARCH << std::endl;
35  std::cout << "Build Rev = " << LIBMESH_BUILD_VERSION << std::endl << std::endl;
36 
37  // CXXFLAGS is ambiguous wth multiple methods - could add all three but why not libmesh-config?
38  //std::cout << "C++ Config = " << LIBMESH_CXX << " " << LIBMESH_CXXFLAGS << std::endl;
39  std::cout << "--------------------------------------------------------" << std::endl;
40 
41  return;
42 }
int get_libmesh_version()

◆ LIBMESH_VMA_INSTANTIATE() [1/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
int  ,
Real   
)

◆ LIBMESH_VMA_INSTANTIATE() [2/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
float  ,
Real   
)

◆ LIBMESH_VMA_INSTANTIATE() [3/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
double  ,
Real   
)

◆ LIBMESH_VMA_INSTANTIATE() [4/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
int  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [5/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
int  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [6/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
int  ,
Real   
)

◆ LIBMESH_VMA_INSTANTIATE() [7/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
float  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [8/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
float  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [9/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
float  ,
Real   
)

◆ LIBMESH_VMA_INSTANTIATE() [10/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
std::complex< float >  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [11/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
std::complex< float >  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [12/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
std::complex< float >  ,
Real   
)

◆ LIBMESH_VMA_INSTANTIATE() [13/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
double  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [14/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
double  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [15/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
double  ,
Real   
)

◆ LIBMESH_VMA_INSTANTIATE() [16/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
std::complex< double >  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [17/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
std::complex< double >  ,
Complex   
)

◆ LIBMESH_VMA_INSTANTIATE() [18/18]

libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
std::complex< double >  ,
Real   
)

◆ LibmeshPetscCallQ()

libMesh::LibmeshPetscCallQ ( DMShellGetContext(dm, &ctx )

◆ make_range() [1/2]

template<typename T >
IntRange<T> libMesh::make_range ( beg,
end 
)

The 2-parameter make_range() helper function returns an IntRange<T> when both input parameters are of type T.

This saves a bit of typing over calling the IntRange<T> constructor directly.

Definition at line 140 of file int_range.h.

Referenced by libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::DenseMatrix< Real >::_evd_lapack(), libMesh::Partitioner::_find_global_index_by_pid_map(), libMesh::DenseMatrix< Real >::_svd_helper(), libMesh::DenseMatrix< Real >::_svd_lapack(), libMesh::DenseMatrix< Real >::_svd_solve_lapack(), libMesh::DenseMatrixBase< T >::add(), libMesh::LaspackVector< T >::add(), libMesh::DenseMatrix< Real >::add(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::BoundaryInfo::add_elements(), libMesh::StaticCondensation::add_matrix(), libMesh::HPCoarsenTest::add_projection(), libMesh::RBDataSerialization::add_rb_eim_evaluation_data_to_builder(), libMesh::System::add_variable(), libMesh::DofMap::add_variable_group(), libMesh::System::add_variables(), libMesh::AdaptiveTimeSolver::adjoint_advance_timestep(), libMesh::UnsteadySolver::adjoint_advance_timestep(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::ImplicitSystem::adjoint_solve(), libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), libMesh::FEInterface::all_shape_derivs(), libMesh::EquationSystems::allgather(), libMesh::LaplaceMeshSmoother::allgather_graph(), alternative_fe_assembly(), libMesh::TriangulatorInterface::ArbitraryHole::ArbitraryHole(), libMesh::ClawSystem::assemble_advection_matrices(), libMesh::ClawSystem::assemble_avg_coupling_matrices(), libMesh::ClawSystem::assemble_boundary_condition_matrices(), libMesh::ClawSystem::assemble_jump_coupling_matrix(), libMesh::ClawSystem::assemble_mass_matrix(), libMesh::ExplicitSystem::assemble_qoi(), libMesh::ExplicitSystem::assemble_qoi_derivative(), libMesh::FEMSystem::assemble_qoi_derivative(), libMesh::VariationalSmootherSystem::assembly(), libMesh::FEMSystem::assembly(), libMesh::MeshCommunication::assign_global_indices(), libMesh::Partitioner::assign_partitioning(), libMesh::ExactSolution::attach_exact_deriv(), libMesh::ExactSolution::attach_exact_hessian(), libMesh::ExactSolution::attach_exact_value(), libMesh::FEMContext::attach_quadrature_rules(), libMesh::Elem::bracketing_nodes(), libMesh::RBConstructionBase< CondensedEigenSystem >::broadcast_parameters(), libMesh::EquationSystems::build_discontinuous_solution_vector(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), libMesh::Partitioner::build_graph(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::PetscDMWrapper::build_section(), libMesh::EquationSystems::build_variable_names(), libMesh::C0Polygon::C0Polygon(), libMesh::TriangulatorInterface::Hole::calculate_inside_point(), libMesh::System::calculate_norm(), libMesh::StaticCondensation::close(), libMesh::FEGenericBase< FEOutputType< T >::type >::coarsened_dof_values(), compute_enriched_soln(), libMesh::RBEIMConstruction::compute_max_eim_error(), compute_qp_soln(), compute_qp_soln(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), libMesh::HDGProblem::compute_stress(), libMesh::DenseMatrixBase< T >::condense(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SubProjector::construct_projection(), libMesh::Elem::contains_edge_of(), libMesh::Elem::contains_vertex_of(), libMesh::Polyhedron::convex(), libMesh::MeshBase::copy_constraint_rows(), libMesh::GMVIO::copy_nodal_solution(), libMesh::HDGProblem::create_identity_jacobian(), libMesh::HDGProblem::create_identity_residual(), libMesh::ElemCutter::cut_2D(), libMesh::ElemCutter::cut_3D(), libMesh::FE< Dim, LAGRANGE_VEC >::default_side_nodal_soln(), libMesh::DenseMatrix< Real >::det(), libMesh::MeshBase::detect_interior_parents(), libMesh::MeshTools::Modification::distort(), libMesh::RBEIMEvaluation::distribute_bfs(), libMesh::DofMap::distribute_dofs(), libMesh::DofMap::distribute_scalar_dofs(), DMlibMeshSetSystem_libMesh(), libMesh::DofObject::DofObject(), libMesh::Polyhedron::edges_adjacent_to_node(), libMesh::VariationalSmootherSystem::element_time_derivative(), libMesh::TriangulatorInterface::elems_to_segments(), libMesh::EquationSystems::enable_default_ghosting(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::ErrorEstimator::estimate_errors(), libMesh::FEMPhysics::eulerian_residual(), libMesh::OldSolutionValue< Output, point_output >::eval_at_node(), ShiftedGaussian::evaluate(), libMesh::ExactSolution::ExactSolution(), fe_assembly(), libMesh::MeshCommunication::find_global_indices(), libMesh::FEMContext::find_hardest_fe_type(), libMesh::TriangulatorInterface::Hole::find_ray_intersections(), libMesh::DTKAdapter::find_sys(), libMesh::EquationSystems::find_variable_numbers(), libMesh::VariationalSmootherConstraint::fix_node(), libMesh::C0Polygon::flip(), form_functionA(), form_functionB(), form_matrixA(), libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::RBConstructionBase< CondensedEigenSystem >::generate_training_parameters_random(), libMesh::CondensedEigenSystem::get_eigenpair(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::Node::get_info(), libMesh::Elem::get_info(), libMesh::System::get_info(), libMesh::Elem::get_node_index(), libMesh::EpetraMatrix< T >::get_row(), libMesh::DenseMatrix< Real >::get_transpose(), libMesh::EquationSystems::get_vars_active_subdomains(), libMesh::C0Polygon::has_affine_map(), libMesh::DofObject::has_dofs(), libMesh::DofMap::heterogeneously_constrain_element_jacobian_and_residual(), libMesh::TriangulatorInterface::increase_triangle_order(), libMesh::LaspackMatrix< T >::init(), libMesh::EquationSystems::init(), libMesh::DistributedVector< T >::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::QNodal::init_2D(), libMesh::QNodal::init_3D(), libMesh::UnsteadySolver::init_adjoints(), libMesh::TimeSolver::init_adjoints(), libMesh::WrappedFunctor< Output >::init_context(), libMesh::FEMSystem::init_context(), libMesh::RBEIMConstruction::init_context(), libMesh::OldSolutionBase< Output, point_output >::init_context(), libMesh::VariationalSmootherSystem::init_data(), libMesh::System::init_data(), libMesh::FEMContext::init_internal_data(), libMesh::ParmetisPartitioner::initialize(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::CondensedEigenSystem::initialize_condensed_dofs(), libMesh::RBEIMConstruction::initialize_eim_assembly_objects(), libMesh::RBEIMEvaluation::initialize_eim_theta_objects(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::TriangulatorInterface::insert_any_extra_boundary_points(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::Euler2Solver::integrate_adjoint_refinement_error_estimate(), libMesh::TwostepTimeSolver::integrate_adjoint_refinement_error_estimate(), libMesh::EulerSolver::integrate_adjoint_refinement_error_estimate(), libMesh::SteadySolver::integrate_adjoint_refinement_error_estimate(), libMesh::TwostepTimeSolver::integrate_adjoint_sensitivity(), libMesh::UnsteadySolver::integrate_adjoint_sensitivity(), libMesh::Euler2Solver::integrate_qoi_timestep(), libMesh::TwostepTimeSolver::integrate_qoi_timestep(), libMesh::EulerSolver::integrate_qoi_timestep(), libMesh::DofObject::invalidate_dofs(), libMesh::Polygon::is_flipped(), libMesh::HDGProblem::jacobian(), libMesh::EigenSparseMatrix< T >::l1_norm(), libMesh::LaspackMatrix< T >::l1_norm(), libMesh::TypeVector< Real >::l1_norm(), libMesh::NumericVector< Number >::l1_norm_diff(), libMesh::NumericVector< Number >::l2_norm_diff(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::MeshTools::libmesh_assert_contiguous_dof_ids(), LIBMESH_DEFAULT_VECTORIZED_FE(), libMesh::DenseSubVector< T >::linfty_norm(), libMesh::EigenSparseMatrix< T >::linfty_norm(), libMesh::HDGProblem::lm_face_jacobian(), libMesh::HDGProblem::lm_face_residual(), libMesh::RBDataDeserialization::load_parameter_ranges(), libMesh::RBDataDeserialization::load_rb_eim_evaluation_data(), libMesh::RBDataDeserialization::load_rb_scm_evaluation_data(), libMesh::RBConstruction::load_rb_solution(), libMesh::RBConstructionBase< CondensedEigenSystem >::load_training_set(), libMesh::Elem::local_node(), libMesh::PetscVector< libMesh::Number >::localize(), libMesh::Polyhedron::low_order_key(), main(), libMesh::FEMPhysics::mass_residual(), libMesh::DenseSubVector< T >::max(), libMesh::DofMap::max_constraint_error(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), ExodusTest< elem_type >::meshes_equal_enough(), libMesh::DenseSubVector< T >::min(), AllSecondOrderTest::MixedFixingImpl(), libMesh::DofObject::n_dofs(), libMesh::DGFEMContext::neighbor_side_fe_reinit(), libMesh::RBEIMEvaluation::node_distribute_bfs(), libMesh::RBParametrizedFunction::node_vectorized_evaluate(), libMesh::DifferentiablePhysics::nonlocal_mass_residual(), libMesh::FEMSystem::numerical_jacobian(), libMesh::OldSolutionBase< Output, point_output >::OldSolutionBase(), libMesh::Polygon::on_reference_element(), libMesh::Polyhedron::on_reference_element(), libMesh::FDMGradient< GradType >::operator()(), libMesh::PointLocatorNanoflann::operator()(), libMesh::BoundaryProjectSolution::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectEdges::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectSides::operator()(), libMesh::DofObject::operator=(), libMesh::RBThetaExpansion::output_index_1D(), libMesh::OverlapCoupling::OverlapCoupling(), libMesh::Parallel::Packing< Eigen::Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > >::pack(), libMesh::Parallel::Packing< Eigen::Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > >::packable_size(), libMesh::Parallel::Packing< Eigen::Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > >::packed_size(), libMesh::Partitioner::partition_unpartitioned_elements(), libMesh::C0Polygon::permute(), libMesh::MeshTools::Modification::permute_elements(), petsc_auto_fieldsplit(), libMesh::PetscVector< libMesh::Number >::PetscVector(), libMesh::Polyhedron::Polyhedron(), libMesh::FEMContext::pre_fe_reinit(), libMesh::RBConstruction::preevaluate_thetas(), libMesh::HDGProblem::pressure_dirichlet_residual(), libMesh::HDGProblem::pressure_face_jacobian(), libMesh::HDGProblem::pressure_face_residual(), libMesh::HDGProblem::pressure_volume_jacobian(), libMesh::HDGProblem::pressure_volume_residual(), libMesh::DenseVectorBase< T >::print(), libMesh::DenseMatrixBase< T >::print(), libMesh::SparseMatrix< ValOut >::print(), libMesh::DofObject::print_dof_info(), libMesh::NumericVector< Number >::print_global(), libMesh::MeshfreeInterpolation::print_info(), libMesh::SparseMatrix< ValOut >::print_matlab(), libMesh::NumericVector< Number >::print_matlab(), libMesh::DenseVectorBase< T >::print_scientific(), libMesh::DenseMatrixBase< T >::print_scientific(), libMesh::RBEIMConstruction::process_parameters_file(), libMesh::RBConstruction::process_parameters_file(), libMesh::System::project_vector(), libMesh::System::projection_matrix(), libMesh::Elem::quality(), libMesh::Face::quasicircumcenter(), libMesh::RBEIMEvaluation::rb_eim_solves(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO::read(), libMesh::ExodusII_IO_Helper::read_bex_cv_blocks(), libMesh::STLIO::read_binary(), libMesh::System::read_legacy_data(), libMesh::NumericVector< Number >::read_matlab(), libMesh::DynaIO::read_mesh(), libMesh::System::read_parallel_data(), libMesh::ExodusII_IO_Helper::read_qa_records(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vectors(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::StaticCondensationDofMap::reinit(), libMesh::FE< Dim, LAGRANGE_VEC >::reinit_dual_shape_coeffs(), libMesh::EquationSystems::reinit_mesh(), libMesh::EquationSystems::reinit_solutions(), libMesh::EquationSystems::reinit_systems(), libMesh::DistributedMesh::renumber_dof_objects(), libMesh::TransientRBEvaluation::resize_data_structures(), libMesh::C0Polyhedron::retriangulate(), libMesh::C0Polygon::retriangulate(), libMesh::FileSolutionHistory::retrieve(), libMesh::HDGProblem::scalar_dirichlet_jacobian(), libMesh::HDGProblem::scalar_dirichlet_residual(), libMesh::HDGProblem::scalar_face_jacobian(), libMesh::HDGProblem::scalar_face_residual(), libMesh::HDGProblem::scalar_volume_jacobian(), libMesh::HDGProblem::scalar_volume_residual(), libMesh::SparseMatrix< ValOut >::scale(), libMesh::DenseMatrix< Real >::scale_column(), libMesh::HPCoarsenTest::select_refinement(), libMesh::ImplicitSystem::sensitivity_solve(), libMesh::EquationSystems::sensitivity_solve(), libMesh::DofObject::set_n_systems(), libMesh::PltLoader::set_n_vars(), libMesh::DofObject::set_n_vars_per_group(), libMesh::PltLoader::set_n_zones(), libMesh::DofMap::set_nonlocal_dof_objects(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::SystemSubsetBySubdomain::set_var_nums(), PerElemTest< elem_type >::setUp(), FETestBase< order, family, elem_type, 1 >::setUp(), SparseMatrixTest< LaspackMatrix< Number > >::setValues(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_deriv(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv(), libMesh::SimplexRefiner::should_refine_elem(), libMesh::Poly2TriTriangulator::should_refine_elem(), libMesh::Polyhedron::side_clones(), libMesh::RBEIMEvaluation::side_distribute_bfs(), libMesh::Polyhedron::side_has_edge_nodes(), libMesh::RBParametrizedFunction::side_vectorized_evaluate(), libMesh::BoundaryInfo::side_with_boundary_id(), libMesh::Polyhedron::sides_on_edge(), libMesh::BoundaryInfo::sides_with_boundary_id(), libMesh::QoISet::size(), libMesh::VariationalMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), libMesh::EquationSystems::solve(), libMesh::PatchRecoveryErrorEstimator::specpoly(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), libMesh::Polyhedron::subelement_coordinates(), libMesh::Polygon::subtriangle_coordinates(), SystemsTest::test100KVariables(), ConstraintOperatorTest::test1DCoarseningOperator(), SystemsTest::test2DProjectVectorFE(), SystemsTest::test3DProjectVectorFE(), ElemTest< elem_type >::test_flip(), ElemTest< elem_type >::test_n_refinements(), ElemTest< elem_type >::test_orient(), ElemTest< elem_type >::test_orient_elements(), ElemTest< elem_type >::test_permute(), EdgeTest< ElemClass, edge_type, indexbegin, indexend >::testBuildEdgePtr(), SideTest< ElemClass, side_type, indexbegin, indexend >::testBuildSidePtr(), SideTest< ElemClass, side_type, indexbegin, indexend >::testBuildSidePtrFill(), VolumeTest::testC0Polygon(), VolumeTest::testC0PolygonMethods(), VolumeTest::testC0PolyhedronMethods(), PackingTypesTest::testDynamicEigenMatrix(), PackingTypesTest::testDynamicEigenVector(), ConnectedComponentsTest::testEdge(), EdgeTest< ElemClass, edge_type, indexbegin, indexend >::testIsNodeOnEdge(), SideTest< ElemClass, side_type, indexbegin, indexend >::testIsNodeOnSide(), ParallelPointTest::testMapUnionVec(), EdgeTest< ElemClass, edge_type, indexbegin, indexend >::testNodesOnEdge(), SideTest< ElemClass, side_type, indexbegin, indexend >::testNodesOnSide(), PackingTypesTest::testNonFixedScalar(), LumpedMassMatrixTest::testNumerics(), FETest< order, family, elem_type >::testPartitionOfUnity(), PetscMatrixTest::testPetscCopyFromHash(), MeshTriangulationTest::testPoly2TriHolesInterpRefined(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testPostInitAddVectorTypeChange(), SideTest< ElemClass, side_type, indexbegin, indexend >::testSidePtr(), SideTest< ElemClass, side_type, indexbegin, indexend >::testSidePtrFill(), MeshTriangulationTest::testTriangleHoleContains(), MeshTriangulationTest::testTriangulatorRoundHole(), SparseMatrixTest< LaspackMatrix< Number > >::testValues(), libMesh::Elem::topologically_equal(), libMesh::BoundaryInfo::transfer_boundary_ids_from_children(), libMesh::NetGenMeshInterface::triangulate(), libMesh::Poly2TriTriangulator::triangulate_current_points(), libMesh::Elem::true_centroid(), libMesh::Parallel::Packing< Eigen::Matrix< Scalar, Rows, Cols, Options, MaxRows, MaxCols > >::unpack(), libMesh::UnsteadySolver::UnsteadySolver(), libMesh::EquationSystems::update(), libMesh::DofMap::use_coupled_neighbor_dofs(), libMesh::HDGProblem::vector_dirichlet_residual(), libMesh::HDGProblem::vector_face_jacobian(), libMesh::HDGProblem::vector_face_residual(), libMesh::HDGProblem::vector_volume_jacobian(), libMesh::HDGProblem::vector_volume_residual(), libMesh::RBParametrizedFunction::vectorized_evaluate(), libMesh::TriangulatorInterface::verify_holes(), libMesh::MeshTetInterface::volume_to_surface_mesh(), libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve(), libMesh::Elem::which_neighbor_am_i(), libMesh::FroIO::write(), libMesh::TetGenIO::write(), libMesh::MEDITIO::write_ascii(), libMesh::TecplotIO::write_ascii(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::Elem::write_connectivity(), libMesh::PltLoader::write_dat(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::Nemesis_IO_Helper::write_elements(), libMesh::System::write_header(), libMesh::GmshIO::write_mesh(), libMesh::Nemesis_IO_Helper::write_nodal_coordinates(), libMesh::System::write_parallel_data(), libMesh::XdrIO::write_serialized_bcs_helper(), libMesh::System::write_serialized_blocked_dof_objects(), libMesh::XdrIO::write_serialized_connectivity(), libMesh::XdrIO::write_serialized_nodes(), libMesh::XdrIO::write_serialized_nodesets(), libMesh::System::write_serialized_vector(), libMesh::System::write_serialized_vectors(), and libMesh::DenseSubMatrix< T >::zero().

141 {
142  return {beg, end};
143 }

◆ make_range() [2/2]

template<typename T >
IntRange<T> libMesh::make_range ( end)

The 1-parameter version of make_range() saves even more typing in the common case of a 0 starting point.

Example usage:

for (auto i : make_range(10))

will loop from 0 to 9. In more realistic cases such as:

for (auto i : make_range(foo()))

this construction guarantees that the function foo() is called exactly once rather than once per loop iteration.

Definition at line 161 of file int_range.h.

162 {
163  return {T(0), end};
164 }

◆ MeshCommunication::find_global_indices< MeshBase::const_element_iterator >()

◆ MeshCommunication::find_global_indices< MeshBase::const_node_iterator >()

◆ MeshCommunication::find_global_indices< MeshBase::element_iterator >()

template LIBMESH_EXPORT void libMesh::MeshCommunication::find_global_indices< MeshBase::element_iterator > ( const Parallel::Communicator ,
const libMesh::BoundingBox ,
const MeshBase::element_iterator ,
const MeshBase::element_iterator ,
std::vector< dof_id_type > &   
) const

◆ MeshCommunication::find_global_indices< MeshBase::node_iterator >()

template LIBMESH_EXPORT void libMesh::MeshCommunication::find_global_indices< MeshBase::node_iterator > ( const Parallel::Communicator ,
const libMesh::BoundingBox ,
const MeshBase::node_iterator ,
const MeshBase::node_iterator ,
std::vector< dof_id_type > &   
) const

◆ MeshCommunication::find_local_indices< MeshBase::const_element_iterator >()

◆ monomial_n_dofs() [1/2]

unsigned int libMesh::monomial_n_dofs ( const ElemType  t,
const Order  o 
)

Helper functions for Discontinuous-Pn type basis functions.

Definition at line 37 of file fe_monomial.C.

References C0POLYGON, C0POLYHEDRON, CONSTANT, EDGE2, EDGE3, EDGE4, libMesh::Utility::enum_to_string(), FIRST, FOURTH, HEX20, HEX27, HEX8, INVALID_ELEM, NODEELEM, PRISM15, PRISM18, PRISM20, PRISM21, PRISM6, PYRAMID13, PYRAMID14, PYRAMID18, PYRAMID5, QUAD4, QUAD8, QUAD9, QUADSHELL4, QUADSHELL8, QUADSHELL9, SECOND, TET10, TET14, TET4, THIRD, TRI3, TRI6, TRI7, and TRISHELL3.

Referenced by LIBMESH_FE_NODAL_SOLN(), monomial_n_dofs(), libMesh::FE< Dim, LAGRANGE_VEC >::n_dofs(), and libMesh::FE< Dim, LAGRANGE_VEC >::n_dofs_per_elem().

38 {
39  switch (o)
40  {
41 
42  // constant shape functions
43  // no matter what shape there is only one DOF.
44  case CONSTANT:
45  return (t != INVALID_ELEM) ? 1 : 0;
46 
47 
48  // Discontinuous linear shape functions
49  // expressed in the monomials.
50  case FIRST:
51  {
52  switch (t)
53  {
54  case NODEELEM:
55  return 1;
56 
57  case EDGE2:
58  case EDGE3:
59  case EDGE4:
60  return 2;
61 
62  case C0POLYGON:
63  case TRI3:
64  case TRISHELL3:
65  case TRI6:
66  case TRI7:
67  case QUAD4:
68  case QUADSHELL4:
69  case QUAD8:
70  case QUADSHELL8:
71  case QUAD9:
72  case QUADSHELL9:
73  return 3;
74 
75  case TET4:
76  case TET10:
77  case TET14:
78  case HEX8:
79  case HEX20:
80  case HEX27:
81  case PRISM6:
82  case PRISM15:
83  case PRISM18:
84  case PRISM20:
85  case PRISM21:
86  case PYRAMID5:
87  case PYRAMID13:
88  case PYRAMID14:
89  case PYRAMID18:
90  case C0POLYHEDRON:
91  return 4;
92 
93  case INVALID_ELEM:
94  return 0;
95 
96  default:
97  libmesh_error_msg("ERROR: Bad ElemType = " << Utility::enum_to_string(t) << " for " << Utility::enum_to_string(o) << " order approximation!");
98  }
99  }
100 
101 
102  // Discontinuous quadratic shape functions
103  // expressed in the monomials.
104  case SECOND:
105  {
106  switch (t)
107  {
108  case NODEELEM:
109  return 1;
110 
111  case EDGE2:
112  case EDGE3:
113  case EDGE4:
114  return 3;
115 
116  case C0POLYGON:
117  case TRI3:
118  case TRISHELL3:
119  case TRI6:
120  case TRI7:
121  case QUAD4:
122  case QUADSHELL4:
123  case QUAD8:
124  case QUADSHELL8:
125  case QUAD9:
126  case QUADSHELL9:
127  return 6;
128 
129  case TET4:
130  case TET10:
131  case TET14:
132  case HEX8:
133  case HEX20:
134  case HEX27:
135  case PRISM6:
136  case PRISM15:
137  case PRISM18:
138  case PRISM20:
139  case PRISM21:
140  case PYRAMID5:
141  case PYRAMID13:
142  case PYRAMID14:
143  case PYRAMID18:
144  case C0POLYHEDRON:
145  return 10;
146 
147  case INVALID_ELEM:
148  return 0;
149 
150  default:
151  libmesh_error_msg("ERROR: Bad ElemType = " << Utility::enum_to_string(t) << " for " << Utility::enum_to_string(o) << " order approximation!");
152  }
153  }
154 
155 
156  // Discontinuous cubic shape functions
157  // expressed in the monomials.
158  case THIRD:
159  {
160  switch (t)
161  {
162  case NODEELEM:
163  return 1;
164 
165  case EDGE2:
166  case EDGE3:
167  case EDGE4:
168  return 4;
169 
170  case C0POLYGON:
171  case TRI3:
172  case TRISHELL3:
173  case TRI6:
174  case TRI7:
175  case QUAD4:
176  case QUADSHELL4:
177  case QUAD8:
178  case QUADSHELL8:
179  case QUAD9:
180  case QUADSHELL9:
181  return 10;
182 
183  case TET4:
184  case TET10:
185  case TET14:
186  case HEX8:
187  case HEX20:
188  case HEX27:
189  case PRISM6:
190  case PRISM15:
191  case PRISM18:
192  case PRISM20:
193  case PRISM21:
194  case PYRAMID5:
195  case PYRAMID13:
196  case PYRAMID14:
197  case PYRAMID18:
198  case C0POLYHEDRON:
199  return 20;
200 
201  case INVALID_ELEM:
202  return 0;
203 
204  default:
205  libmesh_error_msg("ERROR: Bad ElemType = " << Utility::enum_to_string(t) << " for " << Utility::enum_to_string(o) << " order approximation!");
206  }
207  }
208 
209 
210  // Discontinuous quartic shape functions
211  // expressed in the monomials.
212  case FOURTH:
213  {
214  switch (t)
215  {
216  case NODEELEM:
217  return 1;
218 
219  case EDGE2:
220  case EDGE3:
221  return 5;
222 
223  case C0POLYGON:
224  case TRI3:
225  case TRISHELL3:
226  case TRI6:
227  case TRI7:
228  case QUAD4:
229  case QUADSHELL4:
230  case QUAD8:
231  case QUADSHELL8:
232  case QUAD9:
233  case QUADSHELL9:
234  return 15;
235 
236  case TET4:
237  case TET10:
238  case TET14:
239  case HEX8:
240  case HEX20:
241  case HEX27:
242  case PRISM6:
243  case PRISM15:
244  case PRISM18:
245  case PRISM20:
246  case PRISM21:
247  case PYRAMID5:
248  case PYRAMID13:
249  case PYRAMID14:
250  case C0POLYHEDRON:
251  return 35;
252 
253  case INVALID_ELEM:
254  return 0;
255 
256  default:
257  libmesh_error_msg("ERROR: Bad ElemType = " << Utility::enum_to_string(t) << " for " << Utility::enum_to_string(o) << " order approximation!");
258  }
259  }
260 
261 
262  default:
263  {
264  const unsigned int order = static_cast<unsigned int>(o);
265  switch (t)
266  {
267  case NODEELEM:
268  return 1;
269 
270  case EDGE2:
271  case EDGE3:
272  return (order+1);
273 
274  case C0POLYGON:
275  case TRI3:
276  case TRISHELL3:
277  case TRI6:
278  case TRI7:
279  case QUAD4:
280  case QUADSHELL4:
281  case QUAD8:
282  case QUADSHELL8:
283  case QUAD9:
284  case QUADSHELL9:
285  return (order+1)*(order+2)/2;
286 
287  case TET4:
288  case TET10:
289  case TET14:
290  case HEX8:
291  case HEX20:
292  case HEX27:
293  case PRISM6:
294  case PRISM15:
295  case PRISM18:
296  case PRISM20:
297  case PRISM21:
298  case PYRAMID5:
299  case PYRAMID13:
300  case PYRAMID14:
301  case C0POLYHEDRON:
302  return (order+1)*(order+2)*(order+3)/6;
303 
304  case INVALID_ELEM:
305  return 0;
306 
307  default:
308  libmesh_error_msg("ERROR: Bad ElemType = " << Utility::enum_to_string(t) << " for " << Utility::enum_to_string(o) << " order approximation!");
309  }
310  }
311  }
312 } // monomial_n_dofs()
std::string enum_to_string(const T e)

◆ monomial_n_dofs() [2/2]

unsigned int libMesh::monomial_n_dofs ( const Elem e,
const Order  o 
)

Definition at line 30 of file fe_monomial.C.

References libmesh_assert(), monomial_n_dofs(), and libMesh::Elem::type().

31 {
32  libmesh_assert(e);
33  return monomial_n_dofs(e->type(), o);
34 }
libmesh_assert(ctx)
unsigned int monomial_n_dofs(const ElemType t, const Order o)
Helper functions for Discontinuous-Pn type basis functions.
Definition: fe_monomial.C:37

◆ n_threads()

unsigned int libMesh::n_threads ( )
inline

◆ numeric_petsc_cast()

PetscInt* libMesh::numeric_petsc_cast ( const numeric_index_type p)
inline

◆ numeric_trilinos_cast()

int* libMesh::numeric_trilinos_cast ( const numeric_index_type p)
inline

Definition at line 854 of file trilinos_epetra_vector.h.

Referenced by libMesh::EpetraMatrix< T >::add_matrix(), libMesh::EpetraVector< T >::add_vector(), and libMesh::EpetraVector< T >::insert().

855 {
856  return reinterpret_cast<int *>(const_cast<numeric_index_type *>(p));
857 }
dof_id_type numeric_index_type
Definition: id_types.h:99

◆ on_command_line()

bool libMesh::on_command_line ( std::string  arg)
Returns
true if the argument arg was specified on the command line, false otherwise.

For backwards compatibility with past option naming conventions, libMesh searches for the given argument first in its original form, then with all underscores changed to dashes, then with all dashes (except any leading dashes) changed to underscores, and returns true if any of the above finds a match.

This routine manipulates the command_line cursor and should not be called concurrently with similar utilities in multiple threads.

Definition at line 987 of file libmesh.C.

References add_command_line_name().

Referenced by assert_argument(), Biharmonic::Biharmonic(), libMesh::PetscDMWrapper::build_section(), libMesh::Node::choose_processor_id(), command_line_next(), default_solver_package(), libMesh::DofMap::distribute_dofs(), libMesh::NewtonSolver::init(), libMesh::NloptOptimizationSolver< T >::init(), libMesh::PetscNonlinearSolver< Number >::init(), libMesh::TimeSolver::init_data(), main(), petsc_auto_fieldsplit(), print_trace(), libMesh::System::read_header(), libMesh::TimeSolver::reinit(), libMesh::System::reinit_constraints(), libMesh::MacroFunctions::report_error(), libMesh::Partitioner::set_node_processor_ids(), libMesh::CachingSetup::setup(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::System::System(), GetPotTest::testCommandLine(), libMesh::DofMap::use_coupled_neighbor_dofs(), and libMesh::LibMeshInit::~LibMeshInit().

988 {
989  // Make sure the command line parser is ready for use. If it's not,
990  // then we'll have to treat the command line as empty, for maximum
991  // compatibility with programs that don't use LibMeshInit but
992  // indirectly (e.g. via error handling code) query the command line.
993  if (!command_line.get())
994  return false;
995 
996  // Keep track of runtime queries, for later
998 
999  bool found_it = command_line->search(arg);
1000 
1001  if (!found_it)
1002  {
1003  // Try with all dashes instead of underscores
1004  std::replace(arg.begin(), arg.end(), '_', '-');
1005  found_it = command_line->search(arg);
1006  }
1007 
1008  if (!found_it)
1009  {
1010  // OK, try with all underscores instead of dashes
1011  auto name_begin = arg.begin();
1012  while (*name_begin == '-')
1013  ++name_begin;
1014  std::replace(name_begin, arg.end(), '-', '_');
1015  found_it = command_line->search(arg);
1016  }
1017 
1018  return found_it;
1019 }
void add_command_line_name(const std::string &name)
Add a name to the set of queried command-line names.
Definition: libmesh.C:956

◆ operator!=() [1/5]

bool libMesh::operator!= ( const OrderWrapper lhs,
const OrderWrapper rhs 
)
inline

Definition at line 113 of file fe_type.h.

113 { return !(lhs == rhs); }

◆ operator!=() [2/5]

bool libMesh::operator!= ( int  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 158 of file fe_type.h.

158 { return !(lhs == rhs); }

◆ operator!=() [3/5]

bool libMesh::operator!= ( const OrderWrapper lhs,
int  rhs 
)
inline

Definition at line 159 of file fe_type.h.

159 { return !(lhs == rhs); }

◆ operator!=() [4/5]

bool libMesh::operator!= ( Order  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 160 of file fe_type.h.

160 { return !(lhs == rhs); }

◆ operator!=() [5/5]

bool libMesh::operator!= ( const OrderWrapper lhs,
Order  rhs 
)
inline

Definition at line 161 of file fe_type.h.

161 { return !(lhs == rhs); }

◆ operator""_R() [1/3]

constexpr Real libMesh::operator""_R ( const char *  r)

The C++ standard doesn't support literals at higher than long double precision, so if we're in quadruple precision we need our own user-defined literal operator.

If we're not in quadruple precision then we just need a zero-overhead passthrough.

We'll use a simple _R since we're already qualified by the libMesh namespace here.

Definition at line 290 of file libmesh.h.

References Real.

290 { return Real(r); }
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ operator""_R() [2/3]

constexpr Real libMesh::operator""_R ( long double  r)

Definition at line 292 of file libmesh.h.

292 { return r; }

◆ operator""_R() [3/3]

constexpr Real libMesh::operator""_R ( unsigned long long  r)

Definition at line 293 of file libmesh.h.

References Real.

293 { return Real(r); }
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ operator*() [1/4]

template<unsigned int N, typename T , typename Scalar >
boostcopy::enable_if_c< ScalarTraits<Scalar>::value, TypeNTensor<N,typename CompareTypes<Scalar, T>::supertype> >::type libMesh::operator* ( const Scalar &  ,
const TypeNTensor< N, T > &   
)

Definition at line 323 of file type_n_tensor.h.

324 {
325  libmesh_not_implemented();
326  return TypeNTensor<N,typename CompareTypes<Scalar, T>::supertype>();
327 }

◆ operator*() [2/4]

template<typename T , typename Scalar >
boostcopy::enable_if_c< ScalarTraits<Scalar>::value, TypeVector<typename CompareTypes<T, Scalar>::supertype> >::type libMesh::operator* ( const Scalar &  factor,
const TypeVector< T > &  v 
)
inline

Definition at line 768 of file type_vector.h.

770 {
771  return v * factor;
772 }

◆ operator*() [3/4]

template<typename T , typename Scalar >
boostcopy::enable_if_c< ScalarTraits<Scalar>::value, TypeTensor<typename CompareTypes<T, Scalar>::supertype> >::type libMesh::operator* ( const Scalar &  factor,
const TypeTensor< T > &  t 
)
inline

Definition at line 1003 of file type_tensor.h.

1005 {
1006  return t * factor;
1007 }

◆ operator*() [4/4]

template<typename T , typename T2 >
TypeVector<typename CompareTypes<T,T2>::supertype> libMesh::operator* ( const TypeVector< T > &  a,
const TypeTensor< T2 > &  b 
)
inline

Definition at line 1224 of file type_tensor.h.

References libMesh::TypeTensor< T >::left_multiply().

1225 {
1226  return b.left_multiply(a);
1227 }

◆ operator+() [1/2]

template<typename T >
Order libMesh::operator+ ( Order  o,
p 
)
inline

Definition at line 93 of file enum_order.h.

94  {
95  return static_cast<Order>(static_cast<int>(o) + int(p));
96  }
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40

◆ operator+() [2/2]

template<typename T >
Order libMesh::operator+ ( p,
Order  o 
)
inline

Definition at line 105 of file enum_order.h.

106  {
107  return o + p;
108  }

◆ operator+=()

template<typename T >
Order& libMesh::operator+= ( Order o,
p 
)
inline

Definition at line 111 of file enum_order.h.

112  {
113  o = o + p;
114  return o;
115  }

◆ operator-()

template<typename T >
Order libMesh::operator- ( Order  o,
p 
)
inline

Definition at line 99 of file enum_order.h.

100  {
101  return static_cast<Order>(static_cast<int>(o) - int(p));
102  }
Order
defines an enum for polynomial orders.
Definition: enum_order.h:40

◆ operator-=()

template<typename T >
Order& libMesh::operator-= ( Order o,
p 
)
inline

Definition at line 118 of file enum_order.h.

119  {
120  o = o - p;
121  return o;
122  }

◆ operator/()

template<unsigned int N, typename T , typename Scalar >
boostcopy::enable_if_c< ScalarTraits<Scalar>::value, TypeNTensor<N,typename CompareTypes<Scalar, T>::supertype> >::type libMesh::operator/ ( const Scalar &  ,
const TypeNTensor< N, T > &   
)

Definition at line 333 of file type_n_tensor.h.

334 {
335  libmesh_not_implemented();
336  return TypeNTensor<N,typename CompareTypes<Scalar, T>::supertype>();
337 }

◆ operator<() [1/5]

bool libMesh::operator< ( const OrderWrapper lhs,
const OrderWrapper rhs 
)
inline

Definition at line 114 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

114 { return lhs.get_order() < rhs.get_order(); }

◆ operator<() [2/5]

bool libMesh::operator< ( int  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 162 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

162 { return lhs < rhs.get_order(); }

◆ operator<() [3/5]

bool libMesh::operator< ( const OrderWrapper lhs,
int  rhs 
)
inline

Definition at line 163 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

163 { return lhs.get_order() < rhs; }

◆ operator<() [4/5]

bool libMesh::operator< ( Order  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 164 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

164 { return lhs < rhs.get_order(); }

◆ operator<() [5/5]

bool libMesh::operator< ( const OrderWrapper lhs,
Order  rhs 
)
inline

Definition at line 165 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

165 { return lhs.get_order() < rhs; }

◆ operator<<() [1/10]

template<typename T >
std::ostream & libMesh::operator<< ( std::ostream &  os,
const SparseMatrix< T > &  m 
)
template <typename U>
friend std::ostream & operator << (std::ostream & os, const SparseMatrix<U> & m);
Note
The above syntax, which does not require any prior declaration of operator<<, declares any instantiation of SparseMatrix<X> is friend to any instantiation of operator<<(ostream &, SparseMatrix<Y> &). It would not happen in practice, but in principle it means that SparseMatrix<Complex> would be friend to operator<<(ostream &, SparseMatrix<Real>).
The form below, which requires a previous declaration of the operator<<(stream &, SparseMatrix<T> &) function (see top of this file), means that any instantiation of SparseMatrix<T> is friend to the specialization operator<<(ostream &, SparseMatrix<T> &), but e.g. SparseMatrix<U> is not friend to the same function. So this is slightly different to the form above...

This method seems to be the "preferred" technique, see http://www.parashift.com/c++-faq-lite/template-friends.html

Definition at line 680 of file sparse_matrix.h.

681 {
682  m.print(os);
683  return os;
684 }

◆ operator<<() [2/10]

std::ostream& libMesh::operator<< ( std::ostream &  os,
const MeshfreeInterpolation mfi 
)

Definition at line 57 of file meshfree_interpolation.C.

References libMesh::MeshfreeInterpolation::print_info().

58 {
59  mfi.print_info(os);
60  return os;
61 }

◆ operator<<() [3/10]

std::ostream& libMesh::operator<< ( std::ostream &  os,
const OrderWrapper order 
)
inline

Overload stream operators.

Definition at line 182 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

183 {
184  os << order.get_order();
185  return os;
186 }

◆ operator<<() [4/10]

std::ostream& libMesh::operator<< ( std::ostream &  os,
const Node n 
)
inline

Definition at line 229 of file node.h.

References libMesh::Node::print_info().

230 {
231  n.print_info(os);
232  return os;
233 }

◆ operator<<() [5/10]

std::ostream& libMesh::operator<< ( std::ostream &  os,
const QBase q 
)

Definition at line 337 of file quadrature.C.

References libMesh::QBase::print_info().

338 {
339  q.print_info(os);
340  return os;
341 }

◆ operator<<() [6/10]

std::ostream& libMesh::operator<< ( std::ostream &  os,
const Parameters p 
)
inline

Definition at line 385 of file parameters.h.

References libMesh::Parameters::print().

386 {
387  p.print(os);
388  return os;
389 }

◆ operator<<() [7/10]

std::ostream& libMesh::operator<< ( std::ostream &  os,
const FEAbstract fe 
)

Definition at line 875 of file fe_abstract.C.

References libMesh::FEAbstract::print_info().

876 {
877  fe.print_info(os);
878  return os;
879 }

◆ operator<<() [8/10]

std::ostream& libMesh::operator<< ( std::ostream &  os,
const MeshBase m 
)

Definition at line 1569 of file mesh_base.C.

References libMesh::MeshBase::print_info().

1570 {
1571  m.print_info(os);
1572  return os;
1573 }

◆ operator<<() [9/10]

std::ostream& libMesh::operator<< ( std::ostream &  os,
const EquationSystems es 
)

Definition at line 1698 of file equation_systems.C.

References libMesh::EquationSystems::print_info().

1700 {
1701  es.print_info(os);
1702  return os;
1703 }

◆ operator<<() [10/10]

std::ostream& libMesh::operator<< ( std::ostream &  os,
const Elem e 
)
inline

Definition at line 2368 of file elem.h.

References libMesh::Elem::print_info().

2369 {
2370  e.print_info(os);
2371  return os;
2372 }

◆ operator<=() [1/5]

bool libMesh::operator<= ( const OrderWrapper lhs,
const OrderWrapper rhs 
)
inline

Definition at line 116 of file fe_type.h.

116 { return !(lhs > rhs); }

◆ operator<=() [2/5]

bool libMesh::operator<= ( int  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 170 of file fe_type.h.

170 { return !(lhs > rhs); }

◆ operator<=() [3/5]

bool libMesh::operator<= ( const OrderWrapper lhs,
int  rhs 
)
inline

Definition at line 171 of file fe_type.h.

171 { return !(lhs > rhs); }

◆ operator<=() [4/5]

bool libMesh::operator<= ( Order  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 172 of file fe_type.h.

172 { return !(lhs > rhs); }

◆ operator<=() [5/5]

bool libMesh::operator<= ( const OrderWrapper lhs,
Order  rhs 
)
inline

Definition at line 173 of file fe_type.h.

173 { return !(lhs > rhs); }

◆ operator==() [1/4]

bool libMesh::operator== ( const OrderWrapper lhs,
const OrderWrapper rhs 
)
inline

Overload comparison operators for OrderWrapper.

Definition at line 112 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

112 { return lhs.get_order() == rhs.get_order(); }

◆ operator==() [2/4]

bool libMesh::operator== ( const OrderWrapper lhs,
int  rhs 
)
inline

Definition at line 155 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

155 { return lhs.get_order() == rhs; }

◆ operator==() [3/4]

bool libMesh::operator== ( Order  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 156 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

156 { return lhs == rhs.get_order(); }

◆ operator==() [4/4]

bool libMesh::operator== ( const OrderWrapper lhs,
Order  rhs 
)
inline

Definition at line 157 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

157 { return lhs.get_order() == rhs; }

◆ operator>() [1/5]

bool libMesh::operator> ( const OrderWrapper lhs,
const OrderWrapper rhs 
)
inline

Definition at line 115 of file fe_type.h.

115 { return rhs < lhs; }

◆ operator>() [2/5]

bool libMesh::operator> ( int  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 166 of file fe_type.h.

166 { return rhs < lhs; }

◆ operator>() [3/5]

bool libMesh::operator> ( const OrderWrapper lhs,
int  rhs 
)
inline

Definition at line 167 of file fe_type.h.

167 { return rhs < lhs; }

◆ operator>() [4/5]

bool libMesh::operator> ( Order  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 168 of file fe_type.h.

168 { return rhs < lhs; }

◆ operator>() [5/5]

bool libMesh::operator> ( const OrderWrapper lhs,
Order  rhs 
)
inline

Definition at line 169 of file fe_type.h.

169 { return rhs < lhs; }

◆ operator>=() [1/5]

bool libMesh::operator>= ( const OrderWrapper lhs,
const OrderWrapper rhs 
)
inline

Definition at line 117 of file fe_type.h.

117 { return !(lhs < rhs); }

◆ operator>=() [2/5]

bool libMesh::operator>= ( int  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 174 of file fe_type.h.

174 { return !(lhs < rhs); }

◆ operator>=() [3/5]

bool libMesh::operator>= ( const OrderWrapper lhs,
int  rhs 
)
inline

Definition at line 175 of file fe_type.h.

175 { return !(lhs < rhs); }

◆ operator>=() [4/5]

bool libMesh::operator>= ( Order  lhs,
const OrderWrapper rhs 
)
inline

Definition at line 176 of file fe_type.h.

176 { return !(lhs < rhs); }

◆ operator>=() [5/5]

bool libMesh::operator>= ( const OrderWrapper lhs,
Order  rhs 
)
inline

Definition at line 177 of file fe_type.h.

177 { return !(lhs < rhs); }

◆ OrderWrapperOperators()

libMesh::OrderWrapperOperators ( int  )

Definition at line 147 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

154  { return lhs == rhs.get_order(); }

◆ out()

OStreamProxy libMesh::out ( std::cout  )

◆ outer_product() [1/3]

template<typename T , typename T2 , typename std::enable_if< ScalarTraits< T >::value, int >::type = 0>
TypeVector<typename CompareTypes<T, T2>::supertype> libMesh::outer_product ( const T &  a,
const TypeVector< T2 > &  b 
)

Definition at line 1166 of file type_vector.h.

References libmesh_conj().

1167 {
1168  TypeVector<typename CompareTypes<T, T2>::supertype> ret;
1169  for (unsigned int i = 0; i < LIBMESH_DIM; i++)
1170  ret(i) = a * libmesh_conj(b(i));
1171 
1172  return ret;
1173 }
T libmesh_conj(T a)

◆ outer_product() [2/3]

template<typename T , typename T2 , typename std::enable_if< ScalarTraits< T2 >::value, int >::type = 0>
TypeVector<typename CompareTypes<T, T2>::supertype> libMesh::outer_product ( const TypeVector< T > &  a,
const T2 &  b 
)

Definition at line 1177 of file type_vector.h.

References libmesh_conj().

1178 {
1179  TypeVector<typename CompareTypes<T, T2>::supertype> ret;
1180  const auto conj_b = libmesh_conj(b);
1181  for (unsigned int i = 0; i < LIBMESH_DIM; i++)
1182  ret(i) = a(i) * conj_b;
1183 
1184  return ret;
1185 }
T libmesh_conj(T a)

◆ outer_product() [3/3]

template<typename T , typename T2 >
TypeTensor<typename CompareTypes<T, T2>::supertype> libMesh::outer_product ( const TypeVector< T > &  a,
const TypeVector< T2 > &  b 
)
inline

Definition at line 1433 of file type_tensor.h.

References libmesh_conj().

Referenced by TypeTensorTest::testOuterProduct(), and TypeVectorTestBase< VectorValue< Number > >::testScalarMult().

1434 {
1435  TypeTensor<typename CompareTypes<T, T2>::supertype> ret;
1436  for (unsigned int i=0; i<LIBMESH_DIM; i++)
1437  for (unsigned int j=0; j<LIBMESH_DIM; j++)
1438  ret(i,j) = a(i) * libmesh_conj(b(j));
1439 
1440  return ret;
1441 }
T libmesh_conj(T a)

◆ perflog()

PerfLog libMesh::perflog ( "libMesh"  ,
#ifdef LIBMESH_ENABLE_PERFORMANCE_LOGGING true #else false #  endif 
)

◆ petsc_auto_fieldsplit()

void libMesh::petsc_auto_fieldsplit ( PC  my_pc,
const System sys 
)

Definition at line 52 of file petsc_auto_fieldsplit.C.

References libMesh::ParallelObject::comm(), command_line_value(), libMesh::System::get_dof_map(), libMesh::System::get_mesh(), libMesh::DofMap::local_variable_indices(), make_range(), libMesh::System::n_vars(), libMesh::System::name(), on_command_line(), and libMesh::System::variable_name().

Referenced by libMesh::PetscLinearSolver< Number >::init_names(), and libMesh::PetscDiffSolver::setup_petsc_data().

54 {
55  std::string sys_prefix = "--solver_group_";
56 
57  if (libMesh::on_command_line("--solver-system-names"))
58  {
59  sys_prefix = sys_prefix + sys.name() + "_";
60  }
61 
62  std::map<std::string, std::vector<dof_id_type>> group_indices;
63 
64  if (libMesh::on_command_line("--solver-variable-names"))
65  {
66  for (auto v : make_range(sys.n_vars()))
67  {
68  const std::string & var_name = sys.variable_name(v);
69 
70  std::vector<dof_id_type> var_idx;
72  (var_idx, sys.get_mesh(), v);
73 
74  std::string group_command = sys_prefix + var_name;
75 
76  const std::string empty_string;
77 
78  std::string group_name = libMesh::command_line_value
79  (group_command, empty_string);
80 
81  if (group_name != empty_string)
82  {
83  std::vector<dof_id_type> & indices =
84  group_indices[group_name];
85  const bool prior_indices = !indices.empty();
86  indices.insert(indices.end(), var_idx.begin(),
87  var_idx.end());
88  if (prior_indices)
89  std::sort(indices.begin(), indices.end());
90  }
91  else
92  {
93  indices_to_fieldsplit (sys.comm(), var_idx, my_pc, var_name);
94  }
95  }
96  }
97 
98  for (const auto & [field_name, indices] : group_indices)
99  indices_to_fieldsplit(sys.comm(), indices, my_pc, field_name);
100 }
void local_variable_indices(T &idx, const MeshBase &mesh, unsigned int var_num) const
If T == dof_id_type, counts, if T == std::vector<dof_id_type>, fills an array of, those dof indices w...
Definition: dof_map.C:1151
const Parallel::Communicator & comm() const
const MeshBase & get_mesh() const
Definition: system.h:2358
T command_line_value(const std::string &, T)
Definition: libmesh.C:1024
const std::string & variable_name(const unsigned int i) const
Definition: system.h:2478
IntRange< T > make_range(T beg, T end)
The 2-parameter make_range() helper function returns an IntRange<T> when both input parameters are of...
Definition: int_range.h:140
bool on_command_line(std::string arg)
Definition: libmesh.C:987
const std::string & name() const
Definition: system.h:2342
unsigned int n_vars() const
Definition: system.h:2430
const DofMap & get_dof_map() const
Definition: system.h:2374

◆ PetscFunctionReturn()

libMesh::PetscFunctionReturn ( LIBMESH_PETSC_SUCCESS  )

Referenced by __libmesh_petsc_diff_solver_jacobian(), __libmesh_petsc_diff_solver_monitor(), __libmesh_petsc_diff_solver_residual(), __libmesh_petsc_preconditioner_apply(), __libmesh_petsc_preconditioner_setup(), __libmesh_petsc_snes_fd_residual(), __libmesh_petsc_snes_jacobian(), __libmesh_petsc_snes_mffd_interface(), __libmesh_petsc_snes_monitor(), __libmesh_petsc_snes_postcheck(), __libmesh_petsc_snes_residual(), __libmesh_tao_equality_constraints(), __libmesh_tao_equality_constraints_jacobian(), __libmesh_tao_gradient(), __libmesh_tao_hessian(), __libmesh_tao_inequality_constraints(), __libmesh_tao_inequality_constraints_jacobian(), __libmesh_tao_objective(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), DMCreate_libMesh(), DMCreateDomainDecomposition_libMesh(), DMCreateFieldDecomposition_libMesh(), DMCreateGlobalVector_libMesh(), DMCreateMatrix_libMesh(), DMDestroy_libMesh(), DMlibMeshCreateDomainDecompositionDM(), DMlibMeshCreateFieldDecompositionDM(), DMlibMeshFunction(), DMlibMeshGetBlocks(), DMlibMeshGetSystem(), DMlibMeshGetSystem_libMesh(), DMlibMeshGetVariables(), DMlibMeshGetVec_Private(), DMlibMeshJacobian(), DMlibMeshSetSystem(), DMlibMeshSetSystem_libMesh(), DMlibMeshSetUpName_Private(), DMSetUp_libMesh(), DMVariableBounds_libMesh(), DMView_libMesh(), form_functionA(), form_functionB(), form_matrixA(), libmesh_petsc_DMCoarsen(), libmesh_petsc_DMCreateInterpolation(), libmesh_petsc_DMCreateRestriction(), libmesh_petsc_DMRefine(), libmesh_petsc_linesearch_shellfunc(), libmesh_petsc_preconditioner_apply(), libmesh_petsc_preconditioner_setup(), libmesh_petsc_recalculate_monitor(), libmesh_petsc_snes_fd_residual(), libmesh_petsc_snes_jacobian(), libmesh_petsc_snes_mffd_interface(), libmesh_petsc_snes_mffd_residual(), libmesh_petsc_snes_monitor(), libmesh_petsc_snes_postcheck(), libmesh_petsc_snes_precheck(), libmesh_petsc_snes_residual(), SNESFunction_DMlibMesh(), and SNESJacobian_DMlibMesh().

◆ pPR() [1/2]

template<typename T >
PetscReal * libMesh::pPR ( T *  ptr)

Definition at line 186 of file petsc_macro.h.

Referenced by libMesh::PetscNonlinearSolver< Number >::solve().

187 {
188  return &(ptr->backend().value());
189 }

◆ pPR() [2/2]

template<typename T >
const PetscReal * libMesh::pPR ( const T *  ptr)

Definition at line 192 of file petsc_macro.h.

193 {
194  return &(ptr->backend().value());
195 }

◆ pPS() [1/2]

template<typename T >
PetscScalar * libMesh::pPS ( T *  ptr)

◆ pPS() [2/2]

template<typename T >
const PetscScalar * libMesh::pPS ( const T *  ptr)

Definition at line 180 of file petsc_macro.h.

181 {
182  return &(ptr->backend().value());
183 }

◆ print_helper() [1/7]

template<typename P >
void libMesh::print_helper ( std::ostream &  os,
const P *  param 
)

Helper functions for printing scalar, vector, vector<vector> and vector<vector<vector>> types.

Called from Parameters::Parameter<T>::print(...).

Definition at line 535 of file parameters.h.

Referenced by libMesh::Parameters::Parameter< T >::print().

536 {
537  os << *param;
538 }

◆ print_helper() [2/7]

template<typename P >
void libMesh::print_helper ( std::ostream &  os,
const std::vector< P > *  param 
)

Definition at line 558 of file parameters.h.

559 {
560  for (const auto & p : *param)
561  os << p << " ";
562 }

◆ print_helper() [3/7]

template<typename P >
void libMesh::print_helper ( std::ostream &  os,
const std::vector< std::vector< P >> *  param 
)

Definition at line 566 of file parameters.h.

567 {
568  for (const auto & pv : *param)
569  for (const auto & p : pv)
570  os << p << " ";
571 }

◆ print_helper() [4/7]

template<typename P >
void libMesh::print_helper ( std::ostream &  os,
const std::vector< std::vector< std::vector< P >>> *  param 
)

Definition at line 575 of file parameters.h.

576 {
577  for (const auto & pvv : *param)
578  for (const auto & pv : pvv)
579  for (const auto & p : pv)
580  os << p << " ";
581 }

◆ print_helper() [5/7]

template<typename P1 , typename P2 , typename C , typename A >
void libMesh::print_helper ( std::ostream &  os,
const std::map< P1, P2, C, A > *  param 
)

Definition at line 585 of file parameters.h.

586 {
587  os << '{';
588  std::size_t sz = param->size();
589  for (auto KV : *param)
590  {
591  os << '\'' << KV.first << "\' => \'" << KV.second << '\'';
592  if (--sz)
593  os << ", ";
594  }
595  os << '}';
596 }

◆ print_helper() [6/7]

template<>
void libMesh::print_helper ( std::ostream &  os,
const char *  param 
)
inline

Definition at line 542 of file parameters.h.

543 {
544  // Specialization so that we don't print out unprintable characters
545  os << static_cast<int>(*param);
546 }

◆ print_helper() [7/7]

template<>
void libMesh::print_helper ( std::ostream &  os,
const unsigned char *  param 
)
inline

Definition at line 550 of file parameters.h.

551 {
552  // Specialization so that we don't print out unprintable characters
553  os << static_cast<int>(*param);
554 }

◆ print_trace()

void libMesh::print_trace ( std::ostream &  out_stream = std::cerr)

Print a stack trace (for code compiled with gcc)

Definition at line 202 of file print_trace.C.

References on_command_line().

Referenced by libMesh::MacroFunctions::report_error(), and write_traceout().

203 {
204  // First try a GDB backtrace. They are better than what you get
205  // from calling backtrace() because you don't have to do any
206  // demangling, and they include line numbers! If the GDB backtrace
207  // fails, for example if your system does not have GDB, fall back to
208  // calling backtrace().
209  bool gdb_worked = false;
210 
211  // Let the user disable GDB backtraces by configuring with
212  // --without-gdb-command or with a command line option.
213  if ((std::string(LIBMESH_GDB_COMMAND) != std::string("no") &&
214  !libMesh::on_command_line("--no-gdb-backtrace")) ||
215  libMesh::on_command_line("--gdb"))
216  gdb_worked = gdb_backtrace(out_stream);
217 
218  // This part requires that your compiler at least supports
219  // backtraces. Demangling is also nice, but it will still run
220  // without it.
221 #if defined(LIBMESH_HAVE_GLIBC_BACKTRACE)
222  if (!gdb_worked)
223  {
224  void * addresses[40];
225  char ** strings;
226 
227  int size = backtrace(addresses, 40);
228  strings = backtrace_symbols(addresses, size);
229  out_stream << "Stack frames: " << size << std::endl;
230  for (int i = 0; i < size; i++)
231  out_stream << i << ": " << process_trace(strings[i]) << std::endl;
232  std::free(strings);
233  }
234 #endif
235 }
bool on_command_line(std::string arg)
Definition: libmesh.C:987

◆ PS()

template<typename T >
PetscScalar libMesh::PS ( val)

◆ query_ghosting_functors()

void libMesh::query_ghosting_functors ( const MeshBase mesh,
processor_id_type  pid,
MeshBase::const_element_iterator  elem_it,
MeshBase::const_element_iterator  elem_end,
connected_elem_set_type connected_elements 
)

Definition at line 297 of file mesh_communication.C.

References as_range(), libMesh::MeshBase::elem_ptr(), libMesh::MeshBase::ghosting_functors_begin(), libMesh::MeshBase::ghosting_functors_end(), libMesh::DofObject::id(), libmesh_assert(), mesh, and remote_elem.

Referenced by libMesh::MeshCommunication::delete_remote_elements(), and libMesh::CheckpointIO::write().

302 {
303  for (auto & gf :
306  {
307  GhostingFunctor::map_type elements_to_ghost;
308  libmesh_assert(gf);
309  (*gf)(elem_it, elem_end, pid, elements_to_ghost);
310 
311  // We can ignore the CouplingMatrix in ->second, but we
312  // need to ghost all the elements in ->first.
313  for (auto & pr : elements_to_ghost)
314  {
315  const Elem * elem = pr.first;
316  libmesh_assert(elem != remote_elem);
317  libmesh_assert(mesh.elem_ptr(elem->id()) == elem);
318  connected_elements.insert(elem);
319  }
320  }
321 
322  // The GhostingFunctors won't be telling us about the elements from
323  // pid; we need to add those ourselves.
324  for (; elem_it != elem_end; ++elem_it)
325  connected_elements.insert(*elem_it);
326 }
This is the base class from which all geometric element types are derived.
Definition: elem.h:94
MeshBase & mesh
std::map< const Elem *, const CouplingMatrix *, CompareDofObjectsByPIDAndThenID > map_type
What elements do we care about and what variables do we care about on each element?
dof_id_type id() const
Definition: dof_object.h:828
SimpleRange< IndexType > as_range(const std::pair< IndexType, IndexType > &p)
Helper function that allows us to treat a homogenous pair as a range.
Definition: simple_range.h:57
libmesh_assert(ctx)
virtual const Elem * elem_ptr(const dof_id_type i) const =0
std::set< GhostingFunctor * >::const_iterator ghosting_functors_begin() const
Beginning of range of ghosting functors.
Definition: mesh_base.h:1291
std::set< GhostingFunctor * >::const_iterator ghosting_functors_end() const
End of range of ghosting functors.
Definition: mesh_base.h:1297
const RemoteElem * remote_elem
Definition: remote_elem.C:57

◆ rational_all_shape_derivs()

template<typename OutputShape >
void libMesh::rational_all_shape_derivs ( const Elem elem,
const FEType  underlying_fe_type,
const std::vector< Point > &  p,
std::vector< std::vector< OutputShape >> *  comps[3],
const bool  add_p_level 
)

Definition at line 1338 of file fe.C.

References libMesh::Elem::dim(), index_range(), libMesh::Elem::n_nodes(), and rational_fe_weighted_shapes_derivs().

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs().

1343 {
1344  const int my_dim = elem.dim();
1345 
1346  std::vector<std::vector<Real>> shapes;
1347  std::vector<std::vector<std::vector<Real>>> derivs(my_dim);
1348 
1349  rational_fe_weighted_shapes_derivs(&elem, underlying_fe_type,
1350  shapes, derivs, p, add_p_level);
1351 
1352  std::vector<Real> shape_sums(p.size(), 0);
1353  std::vector<std::vector<Real>> shape_deriv_sums(my_dim);
1354  for (int d=0; d != my_dim; ++d)
1355  shape_deriv_sums[d].resize(p.size());
1356 
1357  for (auto i : index_range(shapes))
1358  {
1359  libmesh_assert_equal_to ( p.size(), shapes[i].size() );
1360  for (auto j : index_range(p))
1361  shape_sums[j] += shapes[i][j];
1362 
1363  for (int d=0; d != my_dim; ++d)
1364  for (auto j : index_range(p))
1365  shape_deriv_sums[d][j] += derivs[d][i][j];
1366  }
1367 
1368  for (int d=0; d != my_dim; ++d)
1369  {
1370  auto & comps_d = *comps[d];
1371  libmesh_assert_equal_to(comps_d.size(), elem.n_nodes());
1372 
1373  for (auto i : index_range(comps_d))
1374  {
1375  auto & comps_di = comps_d[i];
1376  auto & derivs_di = derivs[d][i];
1377 
1378  for (auto j : index_range(comps_di))
1379  comps_di[j] = (shape_sums[j] * derivs_di[j] -
1380  shapes[i][j] * shape_deriv_sums[d][j]) /
1381  shape_sums[j] / shape_sums[j];
1382  }
1383  }
1384 }
void rational_fe_weighted_shapes_derivs(const Elem *elem, const FEType fe_type, std::vector< std::vector< Real >> &shapes, std::vector< std::vector< std::vector< Real >>> &derivs, const std::vector< Point > &p, const bool add_p_level)
Definition: fe.C:1065
virtual unsigned int n_nodes() const =0
virtual unsigned short dim() const =0
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:117

◆ rational_all_shape_derivs< Real >()

template LIBMESH_EXPORT void libMesh::rational_all_shape_derivs< Real > ( const Elem elem,
const FEType  underlying_fe_type,
const std::vector< Point > &  p,
std::vector< std::vector< Real >> *  comps[3],
const bool  add_p_level 
)

◆ rational_all_shapes()

void libMesh::rational_all_shapes ( const Elem elem,
const FEType  underlying_fe_type,
const std::vector< Point > &  p,
std::vector< std::vector< Real >> &  v,
const bool  add_p_level 
)

Definition at line 1308 of file fe.C.

References index_range(), and rational_fe_weighted_shapes().

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::all_shapes().

1313 {
1314  std::vector<std::vector<Real>> shapes;
1315 
1316  rational_fe_weighted_shapes(&elem, underlying_fe_type, shapes, p,
1317  add_p_level);
1318 
1319  std::vector<Real> shape_sums(p.size(), 0);
1320 
1321  for (auto i : index_range(v))
1322  {
1323  libmesh_assert_equal_to ( p.size(), shapes[i].size() );
1324  for (auto j : index_range(p))
1325  shape_sums[j] += shapes[i][j];
1326  }
1327 
1328  for (auto i : index_range(v))
1329  {
1330  libmesh_assert_equal_to ( p.size(), v[i].size() );
1331  for (auto j : index_range(v[i]))
1332  v[i][j] = shapes[i][j] / shape_sums[j];
1333  }
1334 }
void rational_fe_weighted_shapes(const Elem *elem, const FEType underlying_fe_type, std::vector< std::vector< Real >> &shapes, const std::vector< Point > &p, const bool add_p_level)
Helper functions for rational basis functions.
Definition: fe.C:1027
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...
Definition: int_range.h:117

◆ rational_fe_shape()

Real libMesh::rational_fe_shape ( const Elem elem,
const FEType  underlying_fe_type,
const unsigned int  i,
const Point p,
const bool  add_p_level 
)

Definition at line 1119 of file fe.C.

References libMesh::DofObject::get_extra_datum(), libMesh::Elem::mapping_data(), libMesh::Elem::n_nodes(), libMesh::Elem::node_ref(), libMesh::Elem::p_level(), and Real.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::shape().

1124 {
1125  int extra_order = add_p_level * elem.p_level();
1126 
1127  const unsigned int n_sf =
1128  FEInterface::n_shape_functions(underlying_fe_type, extra_order, &elem);
1129 
1130  libmesh_assert_equal_to (n_sf, elem.n_nodes());
1131 
1132  std::vector<Real> node_weights(n_sf);
1133 
1134  const unsigned char datum_index = elem.mapping_data();
1135 
1136  Real weighted_shape_i = 0, weighted_sum = 0;
1137 
1138  for (unsigned int sf=0; sf<n_sf; sf++)
1139  {
1140  Real node_weight =
1141  elem.node_ref(sf).get_extra_datum<Real>(datum_index);
1142  Real weighted_shape = node_weight *
1143  FEInterface::shape(underlying_fe_type, extra_order, &elem, sf, p);
1144  weighted_sum += weighted_shape;
1145  if (sf == i)
1146  weighted_shape_i = weighted_shape;
1147  }
1148 
1149  return weighted_shape_i / weighted_sum;
1150 }
unsigned char mapping_data() const
Definition: elem.h:3136
unsigned int p_level() const
Definition: elem.h:3108
const Node & node_ref(const unsigned int i) const
Definition: elem.h:2529
virtual unsigned int n_nodes() const =0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
T get_extra_datum(const unsigned int index) const
Gets the value on this object of the extra datum associated with index, which should have been obtain...
Definition: dof_object.h:1146

◆ rational_fe_shape_deriv()

Real libMesh::rational_fe_shape_deriv ( const Elem elem,
const FEType  underlying_fe_type,
const unsigned int  i,
const unsigned int  j,
const Point p,
const bool  add_p_level 
)

Definition at line 1153 of file fe.C.

References libMesh::Elem::dim(), libMesh::DofObject::get_extra_datum(), libMesh::Elem::mapping_data(), n_nodes, libMesh::Elem::n_nodes(), libMesh::Elem::node_ref(), libMesh::Elem::p_level(), and Real.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::shape_deriv().

1159 {
1160  libmesh_assert_less(j, elem.dim());
1161 
1162  int extra_order = add_p_level * elem.p_level();
1163 
1164  const unsigned int n_sf =
1165  FEInterface::n_shape_functions(underlying_fe_type, extra_order, &elem);
1166 
1167  const unsigned int n_nodes = elem.n_nodes();
1168  libmesh_assert_equal_to (n_sf, n_nodes);
1169 
1170  std::vector<Real> node_weights(n_nodes);
1171 
1172  const unsigned char datum_index = elem.mapping_data();
1173  for (unsigned int n=0; n<n_nodes; n++)
1174  node_weights[n] =
1175  elem.node_ref(n).get_extra_datum<Real>(datum_index);
1176 
1177  Real weighted_shape_i = 0, weighted_sum = 0,
1178  weighted_grad_i = 0, weighted_grad_sum = 0;
1179 
1180  for (unsigned int sf=0; sf<n_sf; sf++)
1181  {
1182  Real weighted_shape = node_weights[sf] *
1183  FEInterface::shape(underlying_fe_type, extra_order, &elem, sf, p);
1184  Real weighted_grad = node_weights[sf] *
1185  FEInterface::shape_deriv(underlying_fe_type, extra_order, &elem, sf, j, p);
1186  weighted_sum += weighted_shape;
1187  weighted_grad_sum += weighted_grad;
1188  if (sf == i)
1189  {
1190  weighted_shape_i = weighted_shape;
1191  weighted_grad_i = weighted_grad;
1192  }
1193  }
1194 
1195  return (weighted_sum * weighted_grad_i - weighted_shape_i * weighted_grad_sum) /
1196  weighted_sum / weighted_sum;
1197 }
unsigned char mapping_data() const
Definition: elem.h:3136
unsigned int p_level() const
Definition: elem.h:3108
const dof_id_type n_nodes
Definition: tecplot_io.C:67
const Node & node_ref(const unsigned int i) const
Definition: elem.h:2529
virtual unsigned int n_nodes() const =0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual unsigned short dim() const =0
T get_extra_datum(const unsigned int index) const
Gets the value on this object of the extra datum associated with index, which should have been obtain...
Definition: dof_object.h:1146

◆ rational_fe_shape_second_deriv()

Real libMesh::rational_fe_shape_second_deriv ( const Elem elem,
const FEType  underlying_fe_type,
const unsigned int  i,
const unsigned int  j,
const Point p,
const bool  add_p_level 
)

Definition at line 1202 of file fe.C.

References libMesh::DofObject::get_extra_datum(), libMesh::Elem::mapping_data(), n_nodes, libMesh::Elem::n_nodes(), libMesh::Elem::node_ref(), libMesh::Elem::p_level(), and Real.

Referenced by libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv().

1208 {
1209  unsigned int j1, j2;
1210  switch (j)
1211  {
1212  case 0:
1213  // j = 0 ==> d^2 phi / dxi^2
1214  j1 = j2 = 0;
1215  break;
1216  case 1:
1217  // j = 1 ==> d^2 phi / dxi deta
1218  j1 = 0;
1219  j2 = 1;
1220  break;
1221  case 2:
1222  // j = 2 ==> d^2 phi / deta^2
1223  j1 = j2 = 1;
1224  break;
1225  case 3:
1226  // j = 3 ==> d^2 phi / dxi dzeta
1227  j1 = 0;
1228  j2 = 2;
1229  break;
1230  case 4:
1231  // j = 4 ==> d^2 phi / deta dzeta
1232  j1 = 1;
1233  j2 = 2;
1234  break;
1235  case 5:
1236  // j = 5 ==> d^2 phi / dzeta^2
1237  j1 = j2 = 2;
1238  break;
1239  default:
1240  libmesh_error();
1241  }
1242 
1243  int extra_order = add_p_level * elem.p_level();
1244 
1245  const unsigned int n_sf =
1246  FEInterface::n_shape_functions(underlying_fe_type, extra_order,
1247  &elem);
1248 
1249  const unsigned int n_nodes = elem.n_nodes();
1250  libmesh_assert_equal_to (n_sf, n_nodes);
1251 
1252  std::vector<Real> node_weights(n_nodes);
1253 
1254  const unsigned char datum_index = elem.mapping_data();
1255  for (unsigned int n=0; n<n_nodes; n++)
1256  node_weights[n] =
1257  elem.node_ref(n).get_extra_datum<Real>(datum_index);
1258 
1259  Real weighted_shape_i = 0, weighted_sum = 0,
1260  weighted_grada_i = 0, weighted_grada_sum = 0,
1261  weighted_gradb_i = 0, weighted_gradb_sum = 0,
1262  weighted_hess_i = 0, weighted_hess_sum = 0;
1263 
1264  for (unsigned int sf=0; sf<n_sf; sf++)
1265  {
1266  Real weighted_shape = node_weights[sf] *
1267  FEInterface::shape(underlying_fe_type, extra_order, &elem, sf,
1268  p);
1269  Real weighted_grada = node_weights[sf] *
1270  FEInterface::shape_deriv(underlying_fe_type, extra_order,
1271  &elem, sf, j1, p);
1272  Real weighted_hess = node_weights[sf] *
1273  FEInterface::shape_second_deriv(underlying_fe_type,
1274  extra_order, &elem, sf, j, p);
1275  weighted_sum += weighted_shape;
1276  weighted_grada_sum += weighted_grada;
1277  Real weighted_gradb = weighted_grada;
1278  if (j1 != j2)
1279  {
1280  weighted_gradb = (j1 == j2) ? weighted_grada :
1281  node_weights[sf] *
1282  FEInterface::shape_deriv(underlying_fe_type, extra_order,
1283  &elem, sf, j2, p);
1284  weighted_grada_sum += weighted_grada;
1285  }
1286  weighted_hess_sum += weighted_hess;
1287  if (sf == i)
1288  {
1289  weighted_shape_i = weighted_shape;
1290  weighted_grada_i = weighted_grada;
1291  weighted_gradb_i = weighted_gradb;
1292  weighted_hess_i = weighted_hess;
1293  }
1294  }
1295 
1296  if (j1 == j2)
1297  weighted_gradb_sum = weighted_grada_sum;
1298 
1299  return (weighted_sum * weighted_hess_i - weighted_grada_i * weighted_gradb_sum -
1300  weighted_shape_i * weighted_hess_sum - weighted_gradb_i * weighted_grada_sum +
1301  2 * weighted_grada_sum * weighted_shape_i * weighted_gradb_sum / weighted_sum) /
1302  weighted_sum / weighted_sum;
1303 }
unsigned char mapping_data() const
Definition: elem.h:3136
unsigned int p_level() const
Definition: elem.h:3108
const dof_id_type n_nodes
Definition: tecplot_io.C:67
const Node & node_ref(const unsigned int i) const
Definition: elem.h:2529
virtual unsigned int n_nodes() const =0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
T get_extra_datum(const unsigned int index) const
Gets the value on this object of the extra datum associated with index, which should have been obtain...
Definition: dof_object.h:1146

◆ rational_fe_weighted_shapes()

void libMesh::rational_fe_weighted_shapes ( const Elem elem,
const FEType  underlying_fe_type,
std::vector< std::vector< Real >> &  shapes,
const std::vector< Point > &  p,
const bool  add_p_level 
)

Helper functions for rational basis functions.

Definition at line 1027 of file fe.C.

References dim, libMesh::Elem::dim(), libMesh::DofObject::get_extra_datum(), libMesh::Elem::mapping_data(), libMesh::Elem::n_nodes(), libMesh::Elem::node_ref(), libMesh::Elem::p_level(), and Real.

Referenced by rational_all_shapes().

1032 {
1033  const int extra_order = add_p_level * elem->p_level();
1034 
1035  const int dim = elem->dim();
1036 
1037  const unsigned int n_sf =
1038  FEInterface::n_shape_functions(underlying_fe_type, extra_order,
1039  elem);
1040 
1041  libmesh_assert_equal_to (n_sf, elem->n_nodes());
1042 
1043  std::vector<Real> node_weights(n_sf);
1044 
1045  const unsigned char datum_index = elem->mapping_data();
1046  for (unsigned int n=0; n<n_sf; n++)
1047  node_weights[n] =
1048  elem->node_ref(n).get_extra_datum<Real>(datum_index);
1049 
1050  const std::size_t n_p = p.size();
1051 
1052  shapes.resize(n_sf);
1053  for (unsigned int i=0; i != n_sf; ++i)
1054  {
1055  auto & shapes_i = shapes[i];
1056  shapes_i.resize(n_p, 0);
1057  FEInterface::shapes(dim, underlying_fe_type, elem, i, p,
1058  shapes_i, add_p_level);
1059  for (auto & s : shapes_i)
1060  s *= node_weights[i];
1061  }
1062 }
unsigned char mapping_data() const
Definition: elem.h:3136
unsigned int dim
unsigned int p_level() const
Definition: elem.h:3108
const Node & node_ref(const unsigned int i) const
Definition: elem.h:2529
virtual unsigned int n_nodes() const =0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual unsigned short dim() const =0
T get_extra_datum(const unsigned int index) const
Gets the value on this object of the extra datum associated with index, which should have been obtain...
Definition: dof_object.h:1146

◆ rational_fe_weighted_shapes_derivs()

void libMesh::rational_fe_weighted_shapes_derivs ( const Elem elem,
const FEType  fe_type,
std::vector< std::vector< Real >> &  shapes,
std::vector< std::vector< std::vector< Real >>> &  derivs,
const std::vector< Point > &  p,
const bool  add_p_level 
)

Definition at line 1065 of file fe.C.

References dim, libMesh::Elem::dim(), libMesh::DofObject::get_extra_datum(), libMesh::Elem::mapping_data(), libMesh::Elem::n_nodes(), libMesh::Elem::node_ref(), libMesh::Elem::p_level(), and Real.

Referenced by rational_all_shape_derivs().

1071 {
1072  const int extra_order = add_p_level * elem->p_level();
1073  const unsigned int dim = elem->dim();
1074 
1075  const unsigned int n_sf =
1076  FEInterface::n_shape_functions(fe_type, extra_order, elem);
1077 
1078  libmesh_assert_equal_to (n_sf, elem->n_nodes());
1079 
1080  libmesh_assert_equal_to (dim, derivs.size());
1081  for (unsigned int d = 0; d != dim; ++d)
1082  derivs[d].resize(n_sf);
1083 
1084  std::vector<Real> node_weights(n_sf);
1085 
1086  const unsigned char datum_index = elem->mapping_data();
1087  for (unsigned int n=0; n<n_sf; n++)
1088  node_weights[n] =
1089  elem->node_ref(n).get_extra_datum<Real>(datum_index);
1090 
1091  const std::size_t n_p = p.size();
1092 
1093  shapes.resize(n_sf);
1094  for (unsigned int i=0; i != n_sf; ++i)
1095  shapes[i].resize(n_p, 0);
1096 
1097  FEInterface::all_shapes(dim, fe_type, elem, p, shapes, add_p_level);
1098 
1099  for (unsigned int i=0; i != n_sf; ++i)
1100  {
1101  auto & shapes_i = shapes[i];
1102 
1103  for (auto & s : shapes_i)
1104  s *= node_weights[i];
1105 
1106  for (unsigned int d = 0; d != dim; ++d)
1107  {
1108  auto & derivs_di = derivs[d][i];
1109  derivs_di.resize(n_p);
1110  FEInterface::shape_derivs(fe_type, elem, i, d, p,
1111  derivs_di, add_p_level);
1112  for (auto & dip : derivs_di)
1113  dip *= node_weights[i];
1114  }
1115  }
1116 }
unsigned char mapping_data() const
Definition: elem.h:3136
unsigned int dim
unsigned int p_level() const
Definition: elem.h:3108
const Node & node_ref(const unsigned int i) const
Definition: elem.h:2529
virtual unsigned int n_nodes() const =0
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual unsigned short dim() const =0
T get_extra_datum(const unsigned int index) const
Gets the value on this object of the extra datum associated with index, which should have been obtain...
Definition: dof_object.h:1146

◆ RealTraits_true() [1/3]

libMesh::RealTraits_true ( float  )

◆ RealTraits_true() [2/3]

libMesh::RealTraits_true ( double  )

◆ RealTraits_true() [3/3]

libMesh::RealTraits_true ( long  double)

◆ reconnect_nodes()

void libMesh::reconnect_nodes ( connected_elem_set_type connected_elements,
connected_node_set_type connected_nodes 
)

Definition at line 370 of file mesh_communication.C.

372 {
373  // We're done using the nodes list for element decisions; now
374  // let's reuse it for nodes of the elements we've decided on.
375  connected_nodes.clear();
376 
377  // Use the newer API
378  connect_nodes(connected_elements, connected_nodes, connected_nodes,
379  connected_nodes);
380 }

◆ REINIT_ERROR() [1/2]

libMesh::REINIT_ERROR ( ,
RAVIART_THOMAS  ,
reinit   
)

Definition at line 101 of file fe_boundary.C.

101 { libmesh_error_msg("ERROR: Cannot reinit 1D RAVIART_THOMAS elements!"); }

◆ REINIT_ERROR() [2/2]

libMesh::REINIT_ERROR ( ,
L2_RAVIART_THOMAS  ,
reinit   
)

Definition at line 103 of file fe_boundary.C.

103 { libmesh_error_msg("ERROR: Cannot reinit 1D L2_RAVIART_THOMAS elements!"); }

◆ relative_fuzzy_equals()

template<typename T , typename T2 >
bool libMesh::relative_fuzzy_equals ( const T &  var1,
const T2 &  var2,
const Real  tol = TOLERANCE * TOLERANCE 
)

Function to check whether two variables are equal within a relative tolerance.

Parameters
var1The first variable to be checked
var2The second variable to be checked
tolThe relative tolerance to be used
Returns
true if var1 and var2 are equal within relative tol

Definition at line 78 of file fuzzy_equals.h.

References absolute_fuzzy_equals(), and l1_norm().

Referenced by main(), libMesh::FE< Dim, LAGRANGE_VEC >::matches_cache(), NumericVectorTest< DistributedVector< Number > >::Operations(), libMesh::TypeVector< Real >::relative_fuzzy_equals(), SparseMatrixTest< LaspackMatrix< Number > >::testClone(), TypeVectorTestBase< VectorValue< Number > >::testEqualityBase(), and TypeVectorTestBase< VectorValue< Number > >::testInEqualityBase().

79 {
80  return absolute_fuzzy_equals(
81  var1,
82  var2,
83  tol * (MetaPhysicL::raw_value(l1_norm(var1)) + MetaPhysicL::raw_value(l1_norm(var2))));
84 }
bool absolute_fuzzy_equals(const T &var1, const T2 &var2, const Real tol=TOLERANCE *TOLERANCE)
Function to check whether two variables are equal within an absolute tolerance.
Definition: fuzzy_equals.h:64
auto l1_norm(const T &var)
Computes the L1 norm.
Definition: fuzzy_equals.h:37

◆ ScalarTraits_true() [1/8]

libMesh::ScalarTraits_true ( char  )

◆ ScalarTraits_true() [2/8]

libMesh::ScalarTraits_true ( short  )

◆ ScalarTraits_true() [3/8]

libMesh::ScalarTraits_true ( int  )

◆ ScalarTraits_true() [4/8]

libMesh::ScalarTraits_true ( long  )

◆ ScalarTraits_true() [5/8]

libMesh::ScalarTraits_true ( unsigned  char)

◆ ScalarTraits_true() [6/8]

libMesh::ScalarTraits_true ( float  )

◆ ScalarTraits_true() [7/8]

libMesh::ScalarTraits_true ( double  )

◆ ScalarTraits_true() [8/8]

libMesh::ScalarTraits_true ( Real  )

◆ SIDEMAP_ERROR() [1/3]

libMesh::SIDEMAP_ERROR ( ,
NEDELEC_ONE  ,
side_map   
)

Definition at line 100 of file fe_boundary.C.

100 { libmesh_error_msg("ERROR: Cannot side_map 1D NEDELEC_ONE elements!"); }

◆ SIDEMAP_ERROR() [2/3]

libMesh::SIDEMAP_ERROR ( ,
RAVIART_THOMAS  ,
side_map   
)

Definition at line 102 of file fe_boundary.C.

102 { libmesh_error_msg("ERROR: Cannot side_map 1D RAVIART_THOMAS elements!"); }

◆ SIDEMAP_ERROR() [3/3]

libMesh::SIDEMAP_ERROR ( ,
L2_RAVIART_THOMAS  ,
side_map   
)

Definition at line 104 of file fe_boundary.C.

104 { libmesh_error_msg("ERROR: Cannot side_map 1D L2_RAVIART_THOMAS elements!"); }

◆ SIGN()

template<typename T >
T libMesh::SIGN ( a,
b 
)
inline

Definition at line 33 of file newton_solver.C.

Referenced by libMesh::NewtonSolver::line_search().

34 {
35  return b >= 0 ? std::abs(a) : -std::abs(a);
36 }

◆ solid_angle()

template<typename T >
T libMesh::solid_angle ( const TypeVector< T > &  v01,
const TypeVector< T > &  v02,
const TypeVector< T > &  v03 
)
inline

Definition at line 1051 of file type_vector.h.

References Real, and triple_product().

Referenced by libMesh::C0Polyhedron::retriangulate(), and TypeVectorTestBase< VectorValue< Number > >::testSolidAngle().

1054 {
1055  const Real norm01 = v01.norm(),
1056  norm02 = v02.norm(),
1057  norm03 = v03.norm();
1058  const T tan_half_angle =
1059  triple_product(v01, v02, v03) /
1060  ((v01*v02)*norm03 + (v01*v03)*norm02 + (v02*v03)*norm01 +
1061  norm01*norm02*norm03);
1062 
1063  return Real(2)*std::atan(tan_half_angle);
1064 }
T triple_product(const TypeVector< T > &a, const TypeVector< T > &b, const TypeVector< T > &c)
Definition: type_vector.h:1029
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ split_mesh()

std::unique_ptr< CheckpointIO > libMesh::split_mesh ( MeshBase mesh,
processor_id_type  nsplits 
)

split_mesh takes the given initialized/opened mesh and partitions it into nsplits pieces or chunks.

It returns a CheckpointIO object that can be used to write the mesh chunks into individual files (e.g. by calling checkpoint_obj.write(out_file_name)) - the number of files is equal to the number of chunks. This function supports MPI parallelism and can be used with several MPI procs to speed up splitting.

Definition at line 138 of file checkpoint_io.C.

References libMesh::ParallelObject::comm(), mesh, libMesh::MeshBase::partition(), TIMPI::Communicator::rank(), and TIMPI::Communicator::size().

Referenced by main().

139 {
140  // There is currently an issue with DofObjects not being properly
141  // reset if the mesh is not first repartitioned onto 1 processor
142  // *before* being repartitioned onto the desired number of
143  // processors. So, this is a workaround, but not a particularly
144  // onerous one.
145  mesh.partition(1);
146  mesh.partition(nsplits);
147 
148  processor_id_type my_num_chunks = 0;
149  processor_id_type my_first_chunk = 0;
150  chunking(mesh.comm().size(), mesh.comm().rank(), nsplits, my_num_chunks, my_first_chunk);
151 
152  auto cpr = std::make_unique<CheckpointIO>(mesh);
153  cpr->current_processor_ids().clear();
154  for (processor_id_type i = my_first_chunk; i < my_first_chunk + my_num_chunks; i++)
155  cpr->current_processor_ids().push_back(i);
156  cpr->current_n_processors() = nsplits;
157  cpr->parallel() = true;
158  return cpr;
159 }
MeshBase & mesh
uint8_t processor_id_type

◆ SUPERTYPE() [1/27]

libMesh::SUPERTYPE ( unsigned  char,
short   
)

◆ SUPERTYPE() [2/27]

libMesh::SUPERTYPE ( unsigned  char,
int   
)

◆ SUPERTYPE() [3/27]

libMesh::SUPERTYPE ( unsigned  char,
float   
)

◆ SUPERTYPE() [4/27]

libMesh::SUPERTYPE ( unsigned  char,
double   
)

◆ SUPERTYPE() [5/27]

libMesh::SUPERTYPE ( unsigned  char,
long  double 
)

◆ SUPERTYPE() [6/27]

libMesh::SUPERTYPE ( char  ,
short   
)

◆ SUPERTYPE() [7/27]

libMesh::SUPERTYPE ( char  ,
int   
)

◆ SUPERTYPE() [8/27]

libMesh::SUPERTYPE ( char  ,
float   
)

◆ SUPERTYPE() [9/27]

libMesh::SUPERTYPE ( char  ,
double   
)

◆ SUPERTYPE() [10/27]

libMesh::SUPERTYPE ( char  ,
long  double 
)

◆ SUPERTYPE() [11/27]

libMesh::SUPERTYPE ( short  ,
int   
)

◆ SUPERTYPE() [12/27]

libMesh::SUPERTYPE ( short  ,
float   
)

◆ SUPERTYPE() [13/27]

libMesh::SUPERTYPE ( short  ,
double   
)

◆ SUPERTYPE() [14/27]

libMesh::SUPERTYPE ( short  ,
long  double 
)

◆ SUPERTYPE() [15/27]

libMesh::SUPERTYPE ( int  ,
float   
)

◆ SUPERTYPE() [16/27]

libMesh::SUPERTYPE ( int  ,
double   
)

◆ SUPERTYPE() [17/27]

libMesh::SUPERTYPE ( int  ,
long  double 
)

◆ SUPERTYPE() [18/27]

libMesh::SUPERTYPE ( float  ,
double   
)

◆ SUPERTYPE() [19/27]

libMesh::SUPERTYPE ( float  ,
long  double 
)

◆ SUPERTYPE() [20/27]

libMesh::SUPERTYPE ( double  ,
long  double 
)

◆ SUPERTYPE() [21/27]

libMesh::SUPERTYPE ( unsigned  char,
Real   
)

◆ SUPERTYPE() [22/27]

libMesh::SUPERTYPE ( char  ,
Real   
)

◆ SUPERTYPE() [23/27]

libMesh::SUPERTYPE ( short  ,
Real   
)

◆ SUPERTYPE() [24/27]

libMesh::SUPERTYPE ( int  ,
Real   
)

◆ SUPERTYPE() [25/27]

libMesh::SUPERTYPE ( float  ,
Real   
)

◆ SUPERTYPE() [26/27]

libMesh::SUPERTYPE ( double  ,
Real   
)

◆ SUPERTYPE() [27/27]

libMesh::SUPERTYPE ( long  double,
Real   
)

◆ triple_product()

template<typename T >
T libMesh::triple_product ( const TypeVector< T > &  a,
const TypeVector< T > &  b,
const TypeVector< T > &  c 
)
inline

◆ warned_about_auto_ptr()

bool libMesh::warned_about_auto_ptr ( false  )

◆ write_traceout()

void libMesh::write_traceout ( )

Writes a stack trace to a uniquely named file if –enable-tracefiles has been set by configure, otherwise does nothing.

Note
We append to the trace file rather than overwriting it. This allows multiple traces to be written to the same file.

Definition at line 240 of file print_trace.C.

References global_processor_id(), and print_trace().

Referenced by libmesh_terminate_handler(), and libMesh::MacroFunctions::report_error().

241 {
242 #ifdef LIBMESH_ENABLE_TRACEFILES
243  std::stringstream outname;
244  outname << "traceout_" << static_cast<std::size_t>(libMesh::global_processor_id()) << '_' << getpid() << ".txt";
245  std::ofstream traceout(outname.str().c_str(), std::ofstream::app);
246  libMesh::print_trace(traceout);
247 #endif
248 }
void print_trace(std::ostream &out_stream=std::cerr)
Print a stack trace (for code compiled with gcc)
Definition: print_trace.C:202
processor_id_type global_processor_id()
Definition: libmesh_base.h:85

◆ Xdr::data< std::complex< double > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::complex< double > > ( std::complex< double > &  ,
std::string_view   
)

◆ Xdr::data< std::complex< float > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::complex< float > > ( std::complex< float > &  ,
std::string_view   
)

◆ Xdr::data< std::complex< long double > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::complex< long double > > ( std::complex< long double > &  ,
std::string_view   
)

◆ Xdr::data< std::complex< Real > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::complex< Real > > ( std::complex< Real > &  ,
std::string_view   
)

◆ Xdr::data< std::string >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::string > ( std::string &  ,
std::string_view   
)

◆ Xdr::data< std::vector< char > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< char > > ( std::vector< char > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< double > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< double > > ( std::vector< double > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< float > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< float > > ( std::vector< float > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< int > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< int > > ( std::vector< int > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< long double > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< long double > > ( std::vector< long double > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< long int > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< long int > > ( std::vector< long int > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< long long > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< long long > > ( std::vector< long long > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< Real > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< Real > > ( std::vector< Real > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< short int > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< short int > > ( std::vector< short int > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< signed char > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< signed char > > ( std::vector< signed char > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< std::complex< double > > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< std::complex< double > > > ( std::vector< std::complex< double >> &  ,
std::string_view   
)

◆ Xdr::data< std::vector< std::complex< float > > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< std::complex< float > > > ( std::vector< std::complex< float >> &  ,
std::string_view   
)

◆ Xdr::data< std::vector< std::complex< long double > > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< std::complex< long double > > > ( std::vector< std::complex< long double >> &  ,
std::string_view   
)

◆ Xdr::data< std::vector< std::complex< Real > > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< std::complex< Real > > > ( std::vector< std::complex< Real >> &  ,
std::string_view   
)

◆ Xdr::data< std::vector< std::string > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< std::string > > ( std::vector< std::string > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< unsigned char > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< unsigned char > > ( std::vector< unsigned char > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< unsigned int > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< unsigned int > > ( std::vector< unsigned int > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< unsigned long int > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< unsigned long int > > ( std::vector< unsigned long int > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< unsigned long long > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< unsigned long long > > ( std::vector< unsigned long long > &  ,
std::string_view   
)

◆ Xdr::data< std::vector< unsigned short int > >()

template LIBMESH_EXPORT void libMesh::Xdr::data< std::vector< unsigned short int > > ( std::vector< unsigned short int > &  ,
std::string_view   
)

Variable Documentation

◆ always_false

template<class T >
constexpr std::false_type libMesh::always_false {}

This is a helper variable template for cases when we want to use a default compile-time error with constexpr-based if conditions.

The templating delays the triggering of the static assertion until the template is instantiated.

Definition at line 638 of file libmesh_common.h.

◆ AztecLinearSolver< Number >

template class LIBMESH_EXPORT libMesh::AztecLinearSolver< Number >

Definition at line 282 of file trilinos_aztec_linear_solver.C.

◆ caching

const bool* libMesh::caching = nullptr
static

◆ caching_setup

libMesh::CachingSetup libMesh::caching_setup

◆ ctx

void* libMesh::ctx = nullptr

Definition at line 74 of file petsc_dm_wrapper.C.

Referenced by __libmesh_petsc_diff_solver_jacobian(), __libmesh_petsc_diff_solver_monitor(), __libmesh_petsc_diff_solver_residual(), __libmesh_petsc_snes_fd_residual(), __libmesh_petsc_snes_jacobian(), __libmesh_petsc_snes_mffd_interface(), __libmesh_petsc_snes_residual(), __libmesh_tao_equality_constraints(), __libmesh_tao_equality_constraints_jacobian(), __libmesh_tao_gradient(), __libmesh_tao_hessian(), __libmesh_tao_inequality_constraints(), __libmesh_tao_inequality_constraints_jacobian(), __libmesh_tao_objective(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), form_functionA(), form_functionB(), form_matrixA(), libMesh::PetscMatrixBase< Number >::get_context(), if(), libmesh_petsc_linesearch_shellfunc(), libmesh_petsc_preconditioner_apply(), libmesh_petsc_preconditioner_setup(), libmesh_petsc_recalculate_monitor(), libmesh_petsc_snes_fd_residual(), libmesh_petsc_snes_jacobian(), libmesh_petsc_snes_mffd_interface(), libmesh_petsc_snes_mffd_residual(), libmesh_petsc_snes_residual(), libmesh_petsc_snes_residual_helper(), libMesh::PetscVector< libMesh::Number >::localize_to_one(), SNESFunction_DMlibMesh(), SNESJacobian_DMlibMesh(), libMesh::Parallel::Packing< Elem *const >::unpack(), libMesh::Parallel::Packing< Node *const >::unpack(), libMesh::Parallel::Packing< const Elem *const >::unpack(), and libMesh::Parallel::Packing< const Node *const >::unpack().

◆ cube_number_column

const unsigned char libMesh::cube_number_column

Definition at line 84 of file number_lookups.C.

◆ cube_number_page

const unsigned char libMesh::cube_number_page

Definition at line 308 of file number_lookups.C.

◆ cube_number_row

const unsigned char libMesh::cube_number_row

Definition at line 196 of file number_lookups.C.

◆ DenseMatrix< Complex >

template class LIBMESH_EXPORT libMesh::DenseMatrix< Complex >

Definition at line 49 of file dense_matrix.C.

◆ DenseMatrix< Real >

template class LIBMESH_EXPORT libMesh::DenseMatrix< Real >

Definition at line 35 of file dense_matrix.C.

◆ DenseMatrixBase< Complex >

template class LIBMESH_EXPORT libMesh::DenseMatrixBase< Complex >

Definition at line 29 of file dense_matrix_base.C.

◆ DenseMatrixBase< Real >

template class LIBMESH_EXPORT libMesh::DenseMatrixBase< Real >

Definition at line 26 of file dense_matrix_base.C.

◆ DenseSubMatrix< Complex >

template class LIBMESH_EXPORT libMesh::DenseSubMatrix< Complex >

Definition at line 71 of file dense_submatrix.C.

◆ DenseSubMatrix< Real >

template class LIBMESH_EXPORT libMesh::DenseSubMatrix< Real >

Definition at line 68 of file dense_submatrix.C.

◆ DenseSubVector< Complex >

template class LIBMESH_EXPORT libMesh::DenseSubVector< Complex >

Definition at line 30 of file dense_subvector.C.

◆ DenseSubVector< Real >

template class LIBMESH_EXPORT libMesh::DenseSubVector< Real >

Definition at line 27 of file dense_subvector.C.

◆ DenseVector< Complex >

template class LIBMESH_EXPORT libMesh::DenseVector< Complex >

Definition at line 32 of file dense_vector.C.

◆ DenseVector< Real >

template class LIBMESH_EXPORT libMesh::DenseVector< Real >

Definition at line 29 of file dense_vector.C.

Referenced by NonlinearNeoHookeCurrentConfig::get_residual().

◆ DenseVectorBase< Complex >

template class LIBMESH_EXPORT libMesh::DenseVectorBase< Complex >

Definition at line 54 of file dense_vector_base.C.

◆ DenseVectorBase< Real >

template class LIBMESH_EXPORT libMesh::DenseVectorBase< Real >

Definition at line 51 of file dense_vector_base.C.

◆ DiagonalMatrix< Number >

template class LIBMESH_EXPORT libMesh::DiagonalMatrix< Number >

Definition at line 341 of file diagonal_matrix.C.

◆ DistributedVector< Number >

template class LIBMESH_EXPORT libMesh::DistributedVector< Number >

Definition at line 712 of file distributed_vector.C.

◆ EigenPreconditioner< Number >

template class LIBMESH_EXPORT libMesh::EigenPreconditioner< Number >

Definition at line 52 of file eigen_preconditioner.C.

◆ EigenSolver< Number >

template class LIBMESH_EXPORT libMesh::EigenSolver< Number >

Definition at line 106 of file eigen_solver.C.

◆ EigenSparseLinearSolver< Number >

template class LIBMESH_EXPORT libMesh::EigenSparseLinearSolver< Number >

Definition at line 437 of file eigen_sparse_linear_solver.C.

◆ EigenSparseMatrix< Number >

template class LIBMESH_EXPORT libMesh::EigenSparseMatrix< Number >

Definition at line 402 of file eigen_sparse_matrix.C.

◆ EigenSparseVector< Number >

template class LIBMESH_EXPORT libMesh::EigenSparseVector< Number >

Definition at line 476 of file eigen_sparse_vector.C.

◆ EpetraMatrix< Number >

template class LIBMESH_EXPORT libMesh::EpetraMatrix< Number >

Definition at line 605 of file trilinos_epetra_matrix.C.

◆ EpetraVector< Number >

template class LIBMESH_EXPORT libMesh::EpetraVector< Number >

Definition at line 927 of file trilinos_epetra_vector.C.

◆ err

OStreamProxy libMesh::err(std::cerr)

Referenced by libMesh::ExactSolution::_compute_error(), libMesh::QComposite< QSubCell >::add_subelem_values(), libMesh::LaspackLinearSolver< T >::adjoint_solve(), libMesh::MeshTools::Modification::all_tri(), assemble_SchroedingerEquation(), libMesh::FEMSystem::assembly(), assert_argument(), InfFERadialTest::base_point(), libMesh::Factory< Base >::build(), libMesh::Patch::build_around_element(), cast_ptr(), cast_ref(), libMesh::Elem::centroid(), libMesh::ExodusII_IO_Helper::check_existing_vars(), libMesh::MeshCommunication::check_for_duplicate_global_indices(), libMesh::InfFE< Dim, T_radial, T_map >::compute_face_functions(), libMesh::FEMap::compute_single_point_map(), libMesh::Elem::contains_point(), libMesh::GMVIO::copy_nodal_solution(), libMesh::ElemCutter::cut_2D(), libMesh::ElemCutter::cut_3D(), libMesh::ParsedFEMFunction< T >::eval(), libMesh::ParsedFunction< T >::eval(), libMesh::PerfLog::fast_pop(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::PetscLinearSolver< Number >::get_converged_reason(), libMesh::PetscLinearSolver< Number >::get_initial_residual(), libMesh::UNVIO::groups_in(), libMesh::ReferenceCounter::increment_constructor_count(), libMesh::ReferenceCounter::increment_destructor_count(), libMesh::PointLocatorTree::init(), libMesh::QJacobi::init_1D(), libMesh::ExodusII_IO_Helper::initialize(), libMesh::EpetraVector< T >::inputNonlocalValues(), libMesh::FEMap::inverse_map(), libMesh::FEInterface::inverse_map(), libmesh_terminate_handler(), main(), libMesh::InfFE< Dim, T_radial, T_map >::nodal_soln(), libMesh::ErrorVector::plot_error(), libMesh::MeshTetInterface::process_hull_integrity_result(), libMesh::Elem::quality(), FEMParameters::read(), libMesh::GMVIO::read(), libMesh::Nemesis_IO::read(), libMesh::ExodusII_IO_Helper::read_elemental_var_values(), libMesh::PltLoader::read_header(), libMesh::GmshIO::read_mesh(), libMesh::ExodusII_IO_Helper::read_nodal_var_values(), libMesh::DofMap::reinit(), libMesh::LaspackLinearSolver< T >::set_laspack_preconditioner_type(), libMesh::PetscPreconditioner< T >::set_petsc_preconditioner_type(), libMesh::PetscLinearSolver< Number >::set_petsc_solver_type(), libMesh::SlepcEigenSolver< libMesh::Number >::set_slepc_problem_type(), libMesh::SlepcEigenSolver< libMesh::Number >::set_slepc_solver_type(), libMesh::AztecLinearSolver< T >::set_solver_type(), libMesh::InfFE< Dim, T_radial, T_map >::shape(), libMesh::InfFE< Dim, T_radial, T_map >::shape_deriv(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv(), libMesh::EigenSparseLinearSolver< T >::solve(), libMesh::LaspackLinearSolver< T >::solve(), start_output(), StreamRedirector::StreamRedirector(), ConstraintOperatorTest::test1DCoarseningOperator(), libMesh::NameBasedIO::write(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::TecplotIO::write_binary(), libMesh::GMVIO::write_binary(), libMesh::GMVIO::write_discontinuous_gmv(), libMesh::ExodusII_IO_Helper::write_information_records(), libMesh::VTKIO::write_nodal_data(), libMesh::NameBasedIO::write_nodal_data(), libMesh::GmshIO::write_post(), libMesh::LibMeshInit::~LibMeshInit(), and StreamRedirector::~StreamRedirector().

◆ ErrorVectorReal

DIE A HORRIBLE DEATH HERE typedef float libMesh::ErrorVectorReal

◆ example_one_factory

FactoryImp<ExampleOneFunction, FunctionBase<Number> > libMesh::example_one_factory("example_one") ( "example_one"  )

◆ FEGenericBase< Real >

template class LIBMESH_EXPORT libMesh::FEGenericBase< Real >

Definition at line 2625 of file fe_base.C.

◆ FEGenericBase< RealGradient >

template class LIBMESH_EXPORT libMesh::FEGenericBase< RealGradient >

Definition at line 2626 of file fe_base.C.

◆ FETransformationBase< Real >

template class LIBMESH_EXPORT libMesh::FETransformationBase< Real >

Definition at line 80 of file fe_transformation_base.C.

◆ FETransformationBase< RealGradient >

template class LIBMESH_EXPORT libMesh::FETransformationBase< RealGradient >

Definition at line 81 of file fe_transformation_base.C.

◆ FEXYZ< 2 >

template class LIBMESH_EXPORT libMesh::FEXYZ< 2 >

Definition at line 236 of file fe_xyz_boundary.C.

◆ FEXYZ< 3 >

template class LIBMESH_EXPORT libMesh::FEXYZ< 3 >

Definition at line 237 of file fe_xyz_boundary.C.

◆ fields

PetscErrorCode PetscInt const PetscInt libMesh::fields[]

Definition at line 62 of file petsc_dm_wrapper.C.

Referenced by if().

◆ GLOBAL_COMM_WORLD

int libMesh::GLOBAL_COMM_WORLD = MPI_COMM_NULL

MPI Communicator used to initialize libMesh.

Something to use with CHKERRABORT if we're just using PETSc's MPI "uni" stub.

Definition at line 246 of file libmesh_common.h.

Referenced by libmesh_terminate_handler(), and libMesh::LibMeshInit::~LibMeshInit().

◆ H1FETransformation< Real >

template class LIBMESH_EXPORT libMesh::H1FETransformation< Real >

Definition at line 708 of file h1_fe_transformation.C.

◆ H1FETransformation< RealGradient >

template class LIBMESH_EXPORT libMesh::H1FETransformation< RealGradient >

Definition at line 709 of file h1_fe_transformation.C.

◆ HCurlFETransformation< RealGradient >

template class LIBMESH_EXPORT libMesh::HCurlFETransformation< RealGradient >

Definition at line 270 of file hcurl_fe_transformation.C.

◆ HDivFETransformation< RealGradient >

template class LIBMESH_EXPORT libMesh::HDivFETransformation< RealGradient >

Definition at line 194 of file hdiv_fe_transformation.C.

◆ imaginary

const Number libMesh::imaginary

The imaginary unit, \sqrt{-1} .

Referenced by libMesh::InfFE< Dim, T_radial, T_map >::compute_data().

◆ INSTANTIATE_SUBDIVISION_FE

libMesh::INSTANTIATE_SUBDIVISION_FE

Definition at line 1463 of file fe.C.

◆ INSTANTIATE_SUBDIVISION_MAPS

libMesh::INSTANTIATE_SUBDIVISION_MAPS

Definition at line 2146 of file fe_map.C.

◆ invalid_int

const int libMesh::invalid_int = std::numeric_limits<int>::max()

A number which is used quite often to represent an invalid or uninitialized value for an integer.

Definition at line 316 of file libmesh.h.

◆ invalid_uint

const unsigned int libMesh::invalid_uint = static_cast<unsigned int>(-1)

A number which is used quite often to represent an invalid or uninitialized value for an unsigned integer.

Definition at line 310 of file libmesh.h.

Referenced by libMesh::Xdr::_complex_data_stream(), libMesh::FEMContext::_do_elem_position_set(), libMesh::DofMap::_dof_indices(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::MeshFunction::_gradient_on_elem(), libMesh::Xdr::_xfp_data_stream(), libMesh::BoundaryInfo::add_elements(), libMesh::MeshRefinement::add_node(), alternative_fe_assembly(), libMesh::Elem::as_parent_node(), libMesh::CompositeFEMFunction< Output >::attach_subfunction(), libMesh::CompositeFunction< Output >::attach_subfunction(), libMesh::MeshTools::SidesToElemMap::build(), libMesh::Pyramid14::center_node_on_side(), libMesh::Prism18::center_node_on_side(), libMesh::RemoteElem::center_node_on_side(), libMesh::Elem::center_node_on_side(), libMesh::CompositeFEMFunction< Output >::component(), libMesh::CompositeFunction< Output >::component(), libMesh::InfFE< Dim, T_radial, T_map >::compute_node_indices_fast(), libMesh::InfFE< Dim, T_radial, T_map >::compute_shape_indices(), libMesh::Xdr::data_stream(), libMesh::MeshFunction::discontinuous_value(), libMesh::DofMap::dof_indices(), libMesh::FEMContext::elem_position_get(), libMesh::DynaIO::ElementDefinition::ElementDefinition(), libMesh::FEMPhysics::eulerian_residual(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshBase::get_elem_integer_index(), libMesh::Elem::get_node_index(), libMesh::MeshBase::get_node_integer_index(), libMesh::FEAbstract::get_refspace_nodes(), libMesh::DofObject::has_dofs(), libMesh::MeshFunction::hessian(), libMesh::MeshTools::Generation::Private::idx(), libMesh::QBase::init(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::FEMap::inverse_map(), libMesh::DofMap::is_evaluable(), libMesh::Edge2::is_vertex(), libMesh::Quad4::is_vertex(), libMesh::Pyramid5::is_vertex(), libMesh::Prism6::is_vertex(), libMesh::Tri3::is_vertex(), libMesh::Hex8::is_vertex(), libMesh::Tet4::is_vertex(), libMesh::NodeElem::is_vertex(), libMesh::HDGProblem::jacobian(), libMesh::MeshTools::libmesh_assert_equal_n_systems(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_flags(), libMesh::DistributedMesh::libmesh_assert_valid_parallel_p_levels(), libMesh::Elem::local_node(), libMesh::Pyramid::local_singular_node(), libMesh::Elem::local_singular_node(), main(), libMesh::FEMSystem::mesh_position_get(), libMesh::DofObject::n_dofs(), libMesh::PeriodicBoundaries::neighbor(), libMesh::FEMSystem::numerical_jacobian(), libMesh::DofMap::old_dof_indices(), libMesh::MeshFunction::operator()(), libMesh::Polyhedron::opposite_node(), libMesh::Polyhedron::opposite_side(), libMesh::Prism::opposite_side(), libMesh::Elem::parent_bracketing_nodes(), libMesh::CheckpointIO::read_connectivity(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::XdrIO::read_serialized_connectivity(), libMesh::StaticCondensationDofMap::reinit(), libMesh::HDGProblem::residual(), libMesh::C0Polyhedron::retriangulate(), libMesh::BoundaryInfo::side_with_boundary_id(), libMesh::SparsityPattern::Build::sorted_connected_dofs(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::Polyhedron::subelement_coordinates(), libMesh::Polygon::subtriangle_coordinates(), ElemTest< elem_type >::test_center_node_on_side(), ElemTest< elem_type >::test_contains_point_node(), ElemTest< elem_type >::test_flip(), ElemTest< elem_type >::test_n_refinements(), ElemTest< elem_type >::test_static_data(), VolumeTest::testC0PolyhedronMethods(), FETest< order, family, elem_type >::testLoop(), MeshBaseTest::testMeshBaseVerifyIsPrepared(), libMesh::Node::valence(), libMesh::MeshTools::volume(), libMesh::Elem::which_child_am_i(), libMesh::Elem::which_neighbor_am_i(), libMesh::Elem::which_side_am_i(), libMesh::ExodusII_IO_Helper::write_elements(), and libMesh::System::write_serialized_blocked_dof_objects().

◆ InverseDistanceInterpolation< 1 >

template class LIBMESH_EXPORT libMesh::InverseDistanceInterpolation< 1 >

Definition at line 341 of file meshfree_interpolation.C.

◆ InverseDistanceInterpolation< 2 >

template class LIBMESH_EXPORT libMesh::InverseDistanceInterpolation< 2 >

Definition at line 342 of file meshfree_interpolation.C.

◆ InverseDistanceInterpolation< 3 >

template class LIBMESH_EXPORT libMesh::InverseDistanceInterpolation< 3 >

Definition at line 343 of file meshfree_interpolation.C.

◆ is

PetscErrorCode PetscInt const PetscInt IS* libMesh::is

◆ LaspackLinearSolver< Number >

template class LIBMESH_EXPORT libMesh::LaspackLinearSolver< Number >

Definition at line 552 of file laspack_linear_solver.C.

◆ LaspackMatrix< Number >

template class LIBMESH_EXPORT libMesh::LaspackMatrix< Number >

Definition at line 656 of file laspack_matrix.C.

◆ LaspackVector< Number >

template class LIBMESH_EXPORT libMesh::LaspackVector< Number >

Definition at line 531 of file laspack_vector.C.

◆ libmesh_dim

constexpr std::size_t libMesh::libmesh_dim = LIBMESH_DIM
static

Definition at line 640 of file libmesh_common.h.

Referenced by libMesh::TypeVector< Real >::l1_norm().

◆ libmesh_errhandler

MPI_Errhandler libMesh::libmesh_errhandler

Definition at line 251 of file libmesh.C.

◆ LinearSolver< Number >

template class LIBMESH_EXPORT libMesh::LinearSolver< Number >

Definition at line 229 of file linear_solver.C.

◆ LocationMap< Elem >

template class LIBMESH_EXPORT libMesh::LocationMap< Elem >

Definition at line 203 of file location_maps.C.

◆ LocationMap< Node >

template class LIBMESH_EXPORT libMesh::LocationMap< Node >

Definition at line 204 of file location_maps.C.

◆ LumpedMassMatrix< Number >

template class LIBMESH_EXPORT libMesh::LumpedMassMatrix< Number >

Definition at line 111 of file lumped_mass_matrix.C.

◆ MeshOutput< DistributedMesh >

template class LIBMESH_EXPORT libMesh::MeshOutput< DistributedMesh >

Definition at line 182 of file mesh_output.C.

◆ MeshOutput< MeshBase >

template class LIBMESH_EXPORT libMesh::MeshOutput< MeshBase >

Definition at line 180 of file mesh_output.C.

◆ MeshOutput< UnstructuredMesh >

template class LIBMESH_EXPORT libMesh::MeshOutput< UnstructuredMesh >

Definition at line 181 of file mesh_output.C.

◆ MIN_ELEM_PER_PROC

const unsigned int libMesh::MIN_ELEM_PER_PROC = 4

◆ NloptOptimizationSolver< Number >

template class LIBMESH_EXPORT libMesh::NloptOptimizationSolver< Number >

Definition at line 453 of file nlopt_optimization_solver.C.

◆ NonlinearSolver< Number >

template class LIBMESH_EXPORT libMesh::NonlinearSolver< Number >

Definition at line 113 of file nonlinear_solver.C.

◆ NoxNonlinearSolver< Number >

template class LIBMESH_EXPORT libMesh::NoxNonlinearSolver< Number >

Definition at line 444 of file trilinos_nox_nonlinear_solver.C.

◆ NumericVector< Number >

template class LIBMESH_EXPORT libMesh::NumericVector< Number >

Definition at line 704 of file numeric_vector.C.

Referenced by SigmaPhysics::init_context(), HeatSystem::init_context(), and main().

◆ numFields

PetscErrorCode PetscInt libMesh::numFields

Definition at line 62 of file petsc_dm_wrapper.C.

Referenced by if().

◆ old_terminate_handler

std::terminate_handler libMesh::old_terminate_handler

Definition at line 290 of file libmesh.C.

Referenced by libmesh_terminate_handler(), and libMesh::LibMeshInit::~LibMeshInit().

◆ OptimizationSolver< Number >

template class LIBMESH_EXPORT libMesh::OptimizationSolver< Number >

Definition at line 89 of file optimization_solver.C.

◆ out

OStreamProxy libMesh::out(std::cout)

Referenced by __libmesh_nlopt_objective(), __libmesh_petsc_diff_solver_jacobian(), __libmesh_petsc_diff_solver_monitor(), __libmesh_petsc_diff_solver_residual(), libMesh::ParmetisPartitioner::_do_repartition(), add_matching_tests_to_runner(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::RBEIMConstruction::apply_normalization_to_solution_snapshots(), assemble(), libMesh::RBConstruction::assemble_all_affine_operators(), libMesh::RBConstruction::assemble_all_affine_vectors(), libMesh::RBConstruction::assemble_all_output_vectors(), assemble_and_solve(), assemble_ellipticdg(), libMesh::TransientRBConstruction::assemble_misc_matrices(), libMesh::RBConstruction::assemble_misc_matrices(), libMesh::FEMSystem::assembly(), Biharmonic::Biharmonic(), libMesh::Parallel::Sort< KeyType, IdxType >::bin(), libMesh::QBase::build(), build_adjoint_refinement_error_estimator(), build_domain(), libMesh::Nemesis_IO_Helper::build_element_and_node_maps(), build_error_estimator(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::BoundaryInfo::build_side_list_from_node_list(), libMesh::DofMap::build_sparsity(), libMesh::RBParametrized::check_if_valid_params(), libMesh::System::compare(), libMesh::EquationSystems::compare(), libMesh::Nemesis_IO_Helper::compute_border_node_ids(), libMesh::Nemesis_IO_Helper::compute_communication_map_parameters(), libMesh::RBConstruction::compute_Fq_representor_innerprods(), libMesh::Nemesis_IO_Helper::compute_internal_and_border_elems_and_internal_nodes(), libMesh::Nemesis_IO_Helper::compute_node_communication_maps(), libMesh::Nemesis_IO_Helper::compute_num_global_elem_blocks(), libMesh::Nemesis_IO_Helper::compute_num_global_nodesets(), libMesh::Nemesis_IO_Helper::compute_num_global_sidesets(), libMesh::RBConstruction::compute_output_dual_innerprods(), libMesh::TransientRBEvaluation::compute_residual_dual_norm(), libMesh::RBSCMConstruction::compute_SCM_bounding_box(), libMesh::Nemesis_IO_Helper::construct_nemesis_filename(), libMesh::ContinuationSystem::continuation_solve(), libMesh::ExodusII_IO_Helper::create(), libMesh::UnstructuredMesh::create_pid_mesh(), create_random_point_cloud(), libMesh::DofObject::debug_buffer(), do_compare(), libMesh::UNVIO::elements_in(), libMesh::UNVIO::elements_out(), libMesh::RBConstruction::enrich_basis_from_rhs_terms(), libMesh::RBSCMConstruction::enrich_C_J(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::RBSCMConstruction::evaluate_stability_constant(), exact_grad(), exact_value(), libMesh::Nemesis_IO_Helper::get_cmap_params(), libMesh::Nemesis_IO_Helper::get_eb_info_global(), libMesh::Nemesis_IO_Helper::get_elem_cmap(), libMesh::Nemesis_IO_Helper::get_elem_map(), libMesh::Nemesis_IO_Helper::get_init_global(), libMesh::Nemesis_IO_Helper::get_init_info(), libMesh::Nemesis_IO_Helper::get_loadbal_param(), libMesh::Nemesis_IO_Helper::get_node_cmap(), libMesh::Nemesis_IO_Helper::get_node_map(), libMesh::Nemesis_IO_Helper::get_ns_param_global(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), libMesh::Utility::get_timestamp(), libMesh::TransientRBConstruction::greedy_termination_test(), libMesh::RBConstruction::greedy_termination_test(), libMesh::StatisticsVector< ErrorVectorReal >::histogram(), Biharmonic::init(), libMesh::AdvectionSystem::init_data(), Biharmonic::JR::initialize(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::ContinuationSystem::initialize_tangent(), libMesh::RBConstructionBase< CondensedEigenSystem >::initialize_training_parameters(), integrate_function(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libmesh_petsc_snes_monitor(), libMesh::NewtonSolver::line_search(), main(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::MeshInput< MeshBase >::MeshInput(), libMesh::MeshOutput< MeshBase >::MeshOutput(), libMesh::ExodusII_IO_Helper::message(), libMesh::UNVIO::nodes_in(), libMesh::UNVIO::nodes_out(), libMesh::Xdr::open(), libMesh::ExodusII_IO_Helper::open(), libMesh::PointLocatorTree::operator()(), Biharmonic::output(), output_norms(), libMesh::MetisPartitioner::partition_range(), libMesh::SFCPartitioner::partition_range(), libMesh::RBSCMConstruction::perform_SCM_greedy(), NavierSystem::postprocess(), libMesh::DofMap::prepare_send_list(), libMesh::RBParameters::print(), libMesh::RBConstruction::print_basis_function_orthogonality(), libMesh::NloptOptimizationSolver< T >::print_converged_reason(), libMesh::TaoOptimizationSolver< T >::print_converged_reason(), libMesh::LaspackLinearSolver< T >::print_converged_reason(), libMesh::PetscNonlinearSolver< Number >::print_converged_reason(), libMesh::AztecLinearSolver< T >::print_converged_reason(), libMesh::LinearSolver< Number >::print_converged_reason(), libMesh::NewtonSolver::print_convergence(), libMesh::RBParametrized::print_discrete_parameter_values(), libMesh::DofObject::print_dof_info(), libMesh::ExodusII_IO_Helper::print_header(), print_help(), libMesh::AdvectionSystem::print_info(), libMesh::TransientRBConstruction::print_info(), libMesh::RBSCMConstruction::print_info(), libMesh::ClawSystem::print_info(), libMesh::RBEIMConstruction::print_info(), libMesh::RBConstruction::print_info(), libMesh::RBEIMEvaluation::print_local_eim_basis_functions(), libMesh::PerfLog::print_log(), libMesh::SparseMatrix< ValOut >::print_matlab(), libMesh::NumericVector< Number >::print_matlab(), libMesh::Nemesis_IO_Helper::put_node_cmap(), libMesh::Tet::qual_bounds(), libMesh::Hex::qual_bounds(), libMesh::Polygon::qual_bounds(), libMesh::Tri::qual_bounds(), libMesh::Quad::qual_bounds(), libMesh::Polyhedron::qual_bounds(), libMesh::InfQuad::qual_bounds(), FEMParameters::read(), libMesh::TetGenIO::read(), libMesh::PltLoader::read(), libMesh::Nemesis_IO::read(), libMesh::PltLoader::read_data(), libMesh::ExodusII_IO_Helper::read_elem_in_block(), libMesh::ExodusII_IO_Helper::read_elem_num_map(), libMesh::PltLoader::read_header(), libMesh::System::read_header(), libMesh::UNVIO::read_implementation(), libMesh::ExodusII_IO_Helper::read_node_num_map(), libMesh::ExodusII_IO_Helper::read_qa_records(), libMesh::TransientRBConstruction::read_riesz_representors_from_files(), libMesh::RBConstruction::read_riesz_representors_from_files(), libMesh::AbaqusIO::read_sideset(), libMesh::ExodusII_IO_Helper::read_var_names_impl(), libMesh::System::reinit_constraints(), Biharmonic::run(), run_timestepping(), libMesh::TetGenWrapper::set_switches(), set_system_parameters(), libMesh::ContinuationSystem::set_Theta(), libMesh::ContinuationSystem::set_Theta_LOCA(), libMesh::TwostepTimeSolver::solve(), libMesh::EigenSparseLinearSolver< T >::solve(), libMesh::NewtonSolver::solve(), libMesh::UnsteadySolver::solve(), libMesh::EigenTimeSolver::solve(), libMesh::NloptOptimizationSolver< T >::solve(), libMesh::ClawSystem::solve_conservation_law(), libMesh::ContinuationSystem::solve_tangent(), start_output(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::MacroFunctions::stop(), libMesh::MeshRefinement::test_level_one(), libMesh::MeshRefinement::test_unflagged(), libMesh::RBEIMConstruction::train_eim_approximation_with_greedy(), libMesh::RBEIMConstruction::train_eim_approximation_with_POD(), libMesh::RBConstruction::train_reduced_basis_with_greedy(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::DTKSolutionTransfer::transfer(), libMesh::TransientRBConstruction::truth_solve(), libMesh::TransientRBEvaluation::uncached_compute_residual_dual_norm(), libMesh::TransientRBConstruction::update_residual_terms(), libMesh::RBConstruction::update_residual_terms(), libMesh::ContinuationSystem::update_solution(), libMesh::TransientRBConstruction::update_system(), libMesh::RBConstruction::update_system(), usage(), usage_error(), Biharmonic::viewParameters(), libMesh::XdrIO::write(), libMesh::TecplotIO::write_ascii(), libMesh::MeshOutput< MeshBase >::write_discontinuous_equation_systems(), libMesh::Nemesis_IO::write_element_data(), libMesh::MeshOutput< MeshBase >::write_equation_systems(), libMesh::Nemesis_IO_Helper::write_nodesets(), write_output_footers(), write_output_solvedata(), libMesh::GmshIO::write_post(), libMesh::TransientRBConstruction::write_riesz_representors_to_files(), libMesh::RBConstruction::write_riesz_representors_to_files(), libMesh::Nemesis_IO_Helper::write_sidesets(), libMesh::ExodusII_IO_Helper::write_var_names_impl(), and libMesh::LibMeshInit::~LibMeshInit().

◆ p_ctx

PetscDMContext* libMesh::p_ctx = static_cast<PetscDMContext * >(ctx)

Definition at line 77 of file petsc_dm_wrapper.C.

Referenced by if(), and libmesh_petsc_DMRefine().

◆ parent_bracketing_nodes_mutex

Threads::spin_mutex libMesh::parent_bracketing_nodes_mutex

Definition at line 98 of file elem.C.

Referenced by libMesh::Elem::parent_bracketing_nodes().

◆ parent_indices_mutex

Threads::spin_mutex libMesh::parent_indices_mutex

Definition at line 97 of file elem.C.

Referenced by libMesh::Elem::as_parent_node().

◆ perflog

PerfLog libMesh::perflog("libMesh", #ifdef LIBMESH_ENABLE_PERFORMANCE_LOGGING true #else false #endif)

A PerfLog object to log performance.

If the library is configured with –enable-perflog then it will log key functions.

Referenced by libMesh::Threads::DisablePerfLogInScope::DisablePerfLogInScope(), libmesh_terminate_handler(), libMesh::Threads::DisablePerfLogInScope::~DisablePerfLogInScope(), and libMesh::LibMeshInit::~LibMeshInit().

◆ PetscLinearSolver< Number >

template class LIBMESH_EXPORT libMesh::PetscLinearSolver< Number >

Definition at line 924 of file petsc_linear_solver.C.

◆ PetscMatrix< Number >

template class LIBMESH_EXPORT libMesh::PetscMatrix< Number >

Definition at line 1310 of file petsc_matrix.C.

◆ PetscMatrixBase< Number >

template class LIBMESH_EXPORT libMesh::PetscMatrixBase< Number >

Definition at line 254 of file petsc_matrix_base.C.

◆ PetscMatrixShellMatrix< Number >

template class LIBMESH_EXPORT libMesh::PetscMatrixShellMatrix< Number >

Definition at line 57 of file petsc_matrix_shell_matrix.C.

◆ PetscNonlinearSolver< Number >

template class LIBMESH_EXPORT libMesh::PetscNonlinearSolver< Number >

Definition at line 1250 of file petsc_nonlinear_solver.C.

◆ PetscPreconditioner< Number >

template class LIBMESH_EXPORT libMesh::PetscPreconditioner< Number >

Definition at line 158 of file petsc_preconditioner.C.

◆ PetscShellMatrix< Number >

template class LIBMESH_EXPORT libMesh::PetscShellMatrix< Number >

Definition at line 143 of file petsc_shell_matrix.C.

◆ PetscVector< Number >

template class LIBMESH_EXPORT libMesh::PetscVector< Number >

Definition at line 1339 of file petsc_vector.C.

◆ pi

const Real libMesh::pi = 3.1415926535897932384626433832795029_R

\pi=3.14159... .

Definition at line 299 of file libmesh.h.

Referenced by add_M_C_K_helmholtz(), assemble_func(), assemble_poisson(), assemble_SchroedingerEquation(), libMesh::InfFE< Dim, T_radial, T_map >::compute_data(), HeatSystem::element_time_derivative(), exact_derivative(), exact_solution(), libMesh::TensorValue< T >::extrinsic_rotation_matrix(), fill_dirichlet_bc(), libMesh::USoln::forcing(), NavierSystem::forcing(), libMesh::VSoln::forcing(), libMesh::PSoln::forcing(), forcing_function(), libMesh::MeshTools::Generation::Private::GaussLobattoRedistributionFunction::GaussLobattoRedistributionFunction(), DivGradExactSolution::grad(), MixedExactSolution::grad(), libMesh::C0Polygon::has_affine_map(), HeatSystem::HeatSystem(), libMesh::QNodal::init_2D(), integrate_function(), libMesh::TensorValue< T >::intrinsic_rotation_matrix(), libMesh::FESubdivision::loop_subdivision_mask(), main(), libMesh::Polygon::master_point(), libMesh::Tri3::min_and_max_angle(), libMesh::Polygon::on_reference_element(), LaplaceExactSolution::operator()(), DivGradExactSolution::operator()(), MixedExactSolution::operator()(), libMesh::USoln::operator()(), LaplaceExactGradient::operator()(), libMesh::VSoln::operator()(), libMesh::PSoln::operator()(), libMesh::TriangulatorInterface::PolygonHole::point(), projection_function(), libMesh::Elem::quality(), libMesh::C0Polyhedron::retriangulate(), DivGradExactSolution::scalar(), MixedExactSolution::scalar(), FETestBase< order, family, elem_type, 1 >::setUp(), libMesh::Sphere::surface_coords(), ElemTest< elem_type >::test_quality(), DofObjectTest< Node >::testAddExtraData(), RationalMapTest< elem_type >::testContainsPoint(), XdrTest::testDataVec(), CouplingMatrixTest::testIteratorAPI(), VolumeTest::testQuad4AspectRatio(), VolumeTest::testQuad4Invertible(), VolumeTest::testQuad4Jacobian(), VolumeTest::testQuad4MinMaxAngle(), VolumeTest::testQuad4Warpage(), CouplingMatrixTest::testSimpleAPI(), TypeVectorTestBase< VectorValue< Number > >::testSolidAngle(), MeshTriangulationTest::testTriangleHoleArea(), MeshTriangulationTest::testTriangleHoleContains(), and triangulate_domain().

◆ Preconditioner< Number >

template class LIBMESH_EXPORT libMesh::Preconditioner< Number >

Definition at line 86 of file preconditioner.C.

◆ prism_number_page

const unsigned char libMesh::prism_number_page

Definition at line 726 of file number_lookups.C.

◆ prism_number_triangle

const unsigned char libMesh::prism_number_triangle

Definition at line 621 of file number_lookups.C.

◆ QComposite< QGauss >

template class LIBMESH_EXPORT libMesh::QComposite< QGauss >

Definition at line 163 of file quadrature_composite.C.

◆ QComposite< QSimpson >

template class LIBMESH_EXPORT libMesh::QComposite< QSimpson >

Definition at line 165 of file quadrature_composite.C.

◆ QComposite< QTrap >

template class LIBMESH_EXPORT libMesh::QComposite< QTrap >

Definition at line 164 of file quadrature_composite.C.

◆ RadialBasisInterpolation< 3, WendlandRBF< 3, 0 > >

template class LIBMESH_EXPORT libMesh::RadialBasisInterpolation< 3, WendlandRBF< 3, 0 > >

Definition at line 220 of file radial_basis_interpolation.C.

◆ RadialBasisInterpolation< 3, WendlandRBF< 3, 2 > >

template class LIBMESH_EXPORT libMesh::RadialBasisInterpolation< 3, WendlandRBF< 3, 2 > >

Definition at line 221 of file radial_basis_interpolation.C.

◆ RadialBasisInterpolation< 3, WendlandRBF< 3, 4 > >

template class LIBMESH_EXPORT libMesh::RadialBasisInterpolation< 3, WendlandRBF< 3, 4 > >

Definition at line 222 of file radial_basis_interpolation.C.

◆ RadialBasisInterpolation< 3, WendlandRBF< 3, 8 > >

template class LIBMESH_EXPORT libMesh::RadialBasisInterpolation< 3, WendlandRBF< 3, 8 > >

Definition at line 223 of file radial_basis_interpolation.C.

◆ RBConstructionBase< CondensedEigenSystem >

template class LIBMESH_EXPORT libMesh::RBConstructionBase< CondensedEigenSystem >

Definition at line 789 of file rb_construction_base.C.

◆ RBConstructionBase< LinearImplicitSystem >

template class LIBMESH_EXPORT libMesh::RBConstructionBase< LinearImplicitSystem >

Definition at line 792 of file rb_construction_base.C.

◆ RBConstructionBase< System >

template class LIBMESH_EXPORT libMesh::RBConstructionBase< System >

Definition at line 793 of file rb_construction_base.C.

◆ Real

DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE libMesh::Real

Definition at line 144 of file libmesh_common.h.

Referenced by __libmesh_nlopt_objective(), libMesh::ExactSolution::_compute_error(), libMesh::UniformRefinementEstimator::_estimate_error(), libMesh::NewmarkSolver::_general_residual(), libMesh::FEMContext::_update_time_from_system(), libMesh::Plane::above_surface(), libMesh::MeshTools::Subdivision::add_boundary_ghosts(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), add_M_C_K_helmholtz(), libMesh::MeshRefinement::add_node(), libMesh::C0Polyhedron::add_tet(), adjoint_initial_grad(), adjoint_initial_value(), libMesh::ImplicitSystem::adjoint_qoi_parameter_sensitivity(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), libMesh::DofMap::allgather_recursive_constraints(), alternative_fe_assembly(), libMesh::RBEIMConstruction::apply_normalization_to_solution_snapshots(), libMesh::ContinuationSystem::apply_predictor(), libMesh::Elem::as_parent_node(), assemble(), assemble_biharmonic(), assemble_cd(), assemble_divgrad(), assemble_ellipticdg(), assemble_func(), assemble_graddiv(), assemble_helmholtz(), assemble_laplace(), assemble_poisson(), libMesh::ImplicitSystem::assemble_residual_derivatives(), assemble_SchroedingerEquation(), assemble_shell(), assemble_stokes(), assemble_wave(), libMesh::FEMSystem::assembly(), InfFERadialTest::base_point(), AssemblyA1::boundary_assembly(), libMesh::DiscontinuityMeasure::boundary_side_integration(), libMesh::KellyErrorEstimator::boundary_side_integration(), libMesh::MeshTools::bounding_sphere(), Biharmonic::JR::bounds(), libMesh::TreeNode< N >::bounds_point(), libMesh::MeshTools::Generation::build_cube(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::InfElemBuilder::build_inf_elem(), ExtraIntegersTest::build_mesh(), MixedDimensionNonUniformRefinement3D::build_mesh(), libMesh::TransientRBEvaluation::cache_online_residual_terms(), libMesh::TriangulatorInterface::calculate_auto_desired_area_samples(), libMesh::TriangulatorInterface::Hole::calculate_inside_point(), libMesh::SystemNorm::calculate_norm(), libMesh::System::calculate_norm(), NonlinearNeoHookeCurrentConfig::calculate_stress(), NonlinearNeoHookeCurrentConfig::calculate_tangent(), libMesh::Hex8::centroid_from_points(), libMesh::DofMap::check_for_constraint_loops(), libMesh::RBParametrized::check_if_valid_params(), libMesh::OldSolutionBase< Output, point_output >::check_old_context(), ExtraIntegersTest::checkpoint_helper(), libMesh::Tet::choose_diagonal(), libMesh::NewmarkSystem::clear(), libMesh::Elem::coarsen(), CopyNodesAndElementsTest::collectMeshes(), SolutionFunction< dim >::component(), SolutionGradient< dim >::component(), libMesh::FDMGradient< GradType >::component(), libMesh::InfFE< Dim, T_radial, T_map >::compute_data(), libMesh::FEMap::compute_edge_map(), libMesh::VariationalSmootherSystem::compute_element_reference_volume(), compute_enriched_soln(), libMesh::InfFE< Dim, T_radial, T_map >::compute_face_functions(), libMesh::FEMap::compute_face_map(), compute_jacobian(), libMesh::RBEIMConstruction::compute_max_eim_error(), libMesh::RBConstruction::compute_max_error_bound(), libMesh::FEAbstract::compute_node_constraints(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::FEAbstract::compute_periodic_node_constraints(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_proj_constraints(), compute_residual(), libMesh::TransientRBEvaluation::compute_residual_dual_norm(), libMesh::RBEvaluation::compute_residual_dual_norm(), libMesh::RBSCMConstruction::compute_SCM_bounds_on_training_set(), libMesh::InfFE< Dim, T_radial, T_map >::compute_shape_functions(), libMesh::FEMap::compute_single_point_map(), LinearElasticityWithContact::compute_stresses(), LargeDeformationElasticity::compute_stresses(), libMesh::QConical::conical_product_pyramid(), libMesh::BoundingBox::contains_point(), libMesh::InfQuad4::contains_point(), libMesh::Tri3::contains_point(), libMesh::InfPrism::contains_point(), libMesh::InfHex::contains_point(), libMesh::ContinuationSystem::continuation_solve(), libMesh::MeshBase::copy_constraint_rows(), libMesh::ExodusII_IO::copy_elemental_solution(), libMesh::ExodusII_IO::copy_nodal_solution(), libMesh::ExodusII_IO_Helper::create(), libMesh::TreeNode< N >::create_bounding_box(), create_random_point_cloud(), cubic_default_coupling_test(), cubic_point_neighbor_coupling_test(), cubic_test(), CurlCurlExactSolution::curl(), libMesh::ExodusII_IO_Helper::MappedOutputVector::data(), libMesh::ExodusII_IO_Helper::MappedInputVector::data(), designed_for_side_elems(), libMesh::DenseMatrix< Real >::det(), disc_thirds_test(), libMesh::Sphere::distance(), MixedExactSolution::div(), DivGradExactSolution::div(), libMesh::QGauss::dunavant_rule2(), elasticity_tensor(), ElasticitySystem::elasticity_tensor(), LinearElasticityWithContact::elasticity_tensor(), LargeDeformationElasticity::elasticity_tensor(), LinearElasticity::elasticity_tensor(), PoissonSystem::element_postprocess(), LaplaceSystem::element_postprocess(), LaplaceQoI::element_qoi(), LaplaceQoI::element_qoi_derivative(), LaplaceSystem::element_qoi_derivative(), SigmaPhysics::element_time_derivative(), PoissonSystem::element_time_derivative(), ElasticitySystem::element_time_derivative(), libMesh::VariationalSmootherSystem::element_time_derivative(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_interiors(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_nodes(), libMesh::RBEIMConstruction::enrich_eim_approximation_on_sides(), libMesh::TransientRBConstruction::enrich_RB_space(), libMesh::EquationSystems::EquationSystems(), libMesh::JumpErrorEstimator::estimate_error(), libMesh::AdjointRefinementEstimator::estimate_error(), libMesh::AdjointResidualErrorEstimator::estimate_error(), libMesh::OldSolutionCoefs< Output, point_output >::eval_at_point(), eval_elasticity_tensor(), libMesh::RBEvaluation::eval_output_dual_norm(), Gxyz::evaluate(), ShiftedGaussian::evaluate(), libMesh::RBSCMConstruction::evaluate_stability_constant(), exact_1D_derivative(), exact_1D_hessian(), exact_1D_solution(), exact_2D_derivative(), exact_2D_hessian(), exact_2D_solution(), exact_3D_derivative(), exact_3D_hessian(), exact_3D_solution(), exact_derivative(), CurlCurlSystem::exact_solution(), exact_solution(), exact_solution_u(), exact_solution_v(), exact_value(), ConstantSecondOrderODE< SystemBase >::F(), fe_assembly(), fe_cubic_test(), fe_cubic_test_grad(), fe_quartic_test(), fe_quartic_test_grad(), fill_dirichlet_bc(), libMesh::MeshCommunication::find_global_indices(), libMesh::ElemCutter::find_intersection_points(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::TriangulatorInterface::Hole::find_ray_intersections(), libMesh::ExactErrorEstimator::find_squared_element_error(), libMesh::MeshRefinement::flag_elements_by_elem_fraction(), libMesh::MeshRefinement::flag_elements_by_error_fraction(), libMesh::MeshRefinement::flag_elements_by_error_tolerance(), libMesh::MeshRefinement::flag_elements_by_mean_stddev(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), LaplaceSystem::forcing(), CurlCurlSystem::forcing(), CurlCurlExactSolution::forcing(), NavierSystem::forcing(), forcing_function(), forcing_function_2D(), forcing_function_3D(), libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::DofMap::gather_constraints(), libMesh::MeshTools::Generation::Private::GaussLobattoRedistributionFunction::GaussLobattoRedistributionFunction(), libMesh::RBConstructionBase< CondensedEigenSystem >::generate_training_parameters_deterministic(), libMesh::RBConstructionBase< CondensedEigenSystem >::generate_training_parameters_random(), libMesh::RBParametrized::get_closest_value(), libMesh::RBEIMEvaluation::get_eim_error_indicator(), libMesh::RBEvaluation::get_error_bound_normalization(), libMesh::Elem::get_info(), libMesh::MeshBase::get_info(), libMesh::ParsedFEMFunction< T >::get_inline_value(), libMesh::ParsedFunction< T >::get_inline_value(), LinearElasticityWithContact::get_least_and_max_gap_function(), libMesh::ImplicitSystem::get_linear_solve_parameters(), NonlinearNeoHookeCurrentConfig::get_linearized_stiffness(), libMesh::RBEIMConstruction::get_max_abs_value(), libMesh::RBEIMConstruction::get_node_max_abs_value(), libMesh::PerfLog::get_perf_info(), libMesh::RBConstruction::get_RB_error_bound(), libMesh::FEAbstract::get_refspace_nodes(), libMesh::RBSCMEvaluation::get_SCM_LB(), libMesh::RBSCMEvaluation::get_SCM_UB(), libMesh::BoundaryInfo::get_side_and_node_maps(), libMesh::NumericVector< Number >::global_relative_compare(), libMesh::QGrundmann_Moller::gm_rule(), GradDivExactSolution::grad(), CurlCurlExactSolution::grad(), MixedExactSolution::grad(), DivGradExactSolution::grad(), libMesh::RBConstruction::greedy_termination_test(), libMesh::C0Polygon::has_affine_map(), libMesh::Quad4::has_invertible_map(), libMesh::Edge3::has_invertible_map(), libMesh::Edge4::has_invertible_map(), HeatSystem::HeatSystem(), MeshInputTest::helperTestingDynaQuad(), libMesh::FEHermite< Dim >::hermite_raw_shape(), libMesh::FEHermite< Dim >::hermite_raw_shape_deriv(), libMesh::StatisticsVector< ErrorVectorReal >::histogram(), libMesh::Elem::hmax(), libMesh::Elem::hmin(), libMesh::InfFE< Dim, T_radial, T_map >::inf_compute_constraints(), libMesh::PointLocatorTree::init(), libMesh::FEComputeData::init(), libMesh::QGaussLobatto::init_1D(), libMesh::QGauss::init_1D(), libMesh::QSimpson::init_1D(), libMesh::QGrid::init_1D(), libMesh::QNodal::init_1D(), libMesh::QJacobi::init_1D(), libMesh::QGauss::init_2D(), libMesh::QSimpson::init_2D(), libMesh::QTrap::init_2D(), libMesh::QGrid::init_2D(), libMesh::QNodal::init_2D(), libMesh::QMonomial::init_2D(), libMesh::QGauss::init_3D(), libMesh::QSimpson::init_3D(), libMesh::QTrap::init_3D(), libMesh::QGrid::init_3D(), libMesh::QNodal::init_3D(), libMesh::QMonomial::init_3D(), libMesh::QGrundmann_Moller::init_3D(), init_cd(), HeatSystem::init_data(), libMesh::FESubdivision::init_shape_functions(), initial_condition(), initial_grad(), initial_value(), Biharmonic::JR::InitialDensityBall(), Biharmonic::JR::InitialDensityRod(), Biharmonic::JR::InitialDensityStrip(), Biharmonic::JR::initialize(), initialize(), LinearElasticityWithContact::initialize_contact_load_paths(), libMesh::RBParametrized::initialize_parameters(), libMesh::RBEIMConstruction::initialize_parametrized_functions_in_training_set(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::ContinuationSystem::initialize_tangent(), libMesh::RBConstructionBase< CondensedEigenSystem >::initialize_training_parameters(), libMesh::RBEIMConstruction::inner_product(), libMesh::TreeNode< N >::insert(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::Euler2Solver::integrate_adjoint_refinement_error_estimate(), libMesh::EulerSolver::integrate_adjoint_refinement_error_estimate(), libMesh::UnsteadySolver::integrate_adjoint_sensitivity(), integrate_function(), A0::interior_assembly(), AssemblyA0::interior_assembly(), AssemblyA1::interior_assembly(), A1::interior_assembly(), AssemblyA2::interior_assembly(), OutputAssembly::interior_assembly(), AssemblyF1::interior_assembly(), libMesh::LaplacianErrorEstimator::internal_side_integration(), libMesh::DiscontinuityMeasure::internal_side_integration(), libMesh::KellyErrorEstimator::internal_side_integration(), libMesh::InverseDistanceInterpolation< KDDim >::interpolate(), libMesh::RadialBasisInterpolation< KDDim, RBF >::interpolate_field_data(), libMesh::InverseDistanceInterpolation< KDDim >::interpolate_field_data(), libMesh::TensorValue< T >::intrinsic_rotation_matrix(), libMesh::InfFEMap::inverse_map(), libMesh::FEMap::inverse_map(), libMesh::Tet::is_child_on_side_helper(), libMesh::ElemCutter::is_cut(), libMesh::Polygon::is_flipped(), libMesh::RBParametrized::is_value_in_list(), LargeDeformationElasticity::jacobian(), libMesh::QGauss::keast_rule(), libMesh::LocationMap< T >::key(), libMesh::QMonomial::kim_rule(), libMesh::DenseSubVector< T >::l1_norm(), libMesh::DistributedVector< T >::l1_norm(), libMesh::LaspackVector< T >::l1_norm(), libMesh::EpetraVector< T >::l1_norm(), libMesh::EpetraMatrix< T >::l1_norm(), libMesh::DenseVector< Output >::l1_norm(), libMesh::NumericVector< Number >::l1_norm_diff(), libMesh::StatisticsVector< ErrorVectorReal >::l2_norm(), libMesh::DenseSubVector< T >::l2_norm(), libMesh::DistributedVector< T >::l2_norm(), libMesh::LaspackVector< T >::l2_norm(), libMesh::EpetraVector< T >::l2_norm(), libMesh::DenseVector< Output >::l2_norm(), libMesh::NumericVector< Number >::l2_norm_diff(), lagrange_nodal_soln(), libMesh::TransientRBEvaluation::legacy_read_offline_data_from_files(), libMesh::RBSCMEvaluation::legacy_read_offline_data_from_files(), libMesh::TransientRBEvaluation::legacy_write_offline_data_to_files(), libMesh::RBSCMEvaluation::legacy_write_offline_data_to_files(), libMesh::RBEvaluation::legacy_write_offline_data_to_files(), LIBMESH_DEFAULT_VECTORIZED_FE(), LIBMESH_FE_SIDE_NODAL_SOLN(), line_print(), libMesh::NewtonSolver::line_search(), linear_test(), libMesh::DenseSubVector< T >::linfty_norm(), libMesh::EigenSparseMatrix< T >::linfty_norm(), libMesh::DistributedVector< T >::linfty_norm(), libMesh::LaspackVector< T >::linfty_norm(), libMesh::EpetraVector< T >::linfty_norm(), libMesh::EpetraMatrix< T >::linfty_norm(), libMesh::DenseVector< Output >::linfty_norm(), libMesh::RBDataDeserialization::load_rb_scm_evaluation_data(), NumericVectorTest< DistributedVector< Number > >::Localize(), NumericVectorTest< DistributedVector< Number > >::LocalizeIndices(), libMesh::PointLocatorBase::locate_node(), libMesh::FESubdivision::loop_subdivision_mask(), libMesh::Edge4::loose_bounding_box(), libMesh::Edge3::loose_bounding_box(), libMesh::Quad8::loose_bounding_box(), libMesh::Quad9::loose_bounding_box(), libMesh::Tri7::loose_bounding_box(), libMesh::Tri6::loose_bounding_box(), ConstantFirstOrderODE::M(), ConstantSecondOrderODE< SystemBase >::M(), main(), libMesh::InfFEMap::map(), libMesh::HCurlFETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_curl(), libMesh::H1FETransformation< OutputShape >::map_div(), libMesh::HDivFETransformation< OutputShape >::map_phi(), libMesh::ExodusII_IO_Helper::MappedInputVector::MappedInputVector(), libMesh::ExodusII_IO_Helper::MappedOutputVector::MappedOutputVector(), ElasticitySystem::mass_residual(), libMesh::Edge2::master_point(), libMesh::Edge3::master_point(), libMesh::Edge4::master_point(), libMesh::Polygon::master_point(), libMesh::DenseSubVector< T >::max(), libMesh::DistributedVector< T >::max(), libMesh::LaspackVector< T >::max(), libMesh::EigenSparseVector< T >::max(), libMesh::PetscVector< libMesh::Number >::max(), libMesh::DenseVector< Output >::max(), libMesh::DofMap::max_constraint_error(), libMesh::BoundingBox::max_size(), libMesh::ErrorVector::mean(), libMesh::StatisticsVector< ErrorVectorReal >::mean(), libMesh::StatisticsVector< ErrorVectorReal >::median(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::DenseSubVector< T >::min(), libMesh::DistributedVector< T >::min(), libMesh::LaspackVector< T >::min(), libMesh::EigenSparseVector< T >::min(), libMesh::PetscVector< libMesh::Number >::min(), libMesh::DenseVector< Output >::min(), libMesh::Tri3::min_and_max_angle(), libMesh::Tet4::min_and_max_angle(), new_linear_test(), libMesh::NewmarkSystem::NewmarkSystem(), libMesh::TetGenIO::node_in(), libMesh::RBEIMConstruction::node_inner_product(), libMesh::UNVIO::nodes_out(), libMesh::VTKIO::nodes_to_vtk(), libMesh::NonlinearImplicitSystem::NonlinearImplicitSystem(), libMesh::PetscMatrix< T >::norm(), libMesh::PetscVector< libMesh::Number >::norm(), libMesh::TypeTensor< T >::norm_sq(), libMesh::StatisticsVector< ErrorVectorReal >::normalize(), NumericVectorTest< DistributedVector< Number > >::Norms(), libMesh::FEMSystem::numerical_jacobian(), libMesh::FEMSystem::numerical_jacobian_h_for_var(), libMesh::Prism::on_reference_element(), libMesh::Tri::on_reference_element(), libMesh::Hex::on_reference_element(), libMesh::Pyramid::on_reference_element(), libMesh::Quad::on_reference_element(), libMesh::InfPrism::on_reference_element(), libMesh::FEAbstract::on_reference_element(), libMesh::Tet::on_reference_element(), libMesh::InfHex::on_reference_element(), libMesh::Polygon::on_reference_element(), libMesh::InfQuad::on_reference_element(), libMesh::Plane::on_surface(), libMesh::ExodusII_IO_Helper::open(), NumericVectorTest< DistributedVector< Number > >::Operations(), operator""_R(), LaplaceExactSolution::operator()(), GradDivExactSolution::operator()(), CurlCurlExactSolution::operator()(), SlitFunc::operator()(), MixedExactSolution::operator()(), DivGradExactSolution::operator()(), SolutionFunction< dim >::operator()(), libMesh::FDMGradient< GradType >::operator()(), BdyFunction::operator()(), LaplaceExactGradient::operator()(), SolutionGradient< dim >::operator()(), libMesh::GradientMeshFunction::operator()(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::MeshTools::Generation::Private::GaussLobattoRedistributionFunction::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), output_norms(), libMesh::Node::packed_size(), libMesh::Elem::parent_bracketing_nodes(), libMesh::ParsedFEMFunction< T >::partial_reparse(), libMesh::ParsedFunction< T >::partial_reparse(), libMesh::StatisticsVector< ErrorVectorReal >::plot_histogram(), libMesh::TriangulatorInterface::PolygonHole::point(), libMesh::Elem::point_test(), libMesh::Polyhedron::Polyhedron(), libMesh::RadialBasisInterpolation< KDDim, RBF >::prepare_for_use(), libMesh::HDGProblem::pressure_volume_residual(), libMesh::QBase::print_info(), libMesh::DofMap::process_constraints(), libMesh::ClawSystem::process_parameters_file(), libMesh::AdvectionSystem::process_parameters_file(), libMesh::TransientRBConstruction::process_parameters_file(), libMesh::RBSCMConstruction::process_parameters_file(), libMesh::RBEIMConstruction::process_parameters_file(), libMesh::RBConstruction::process_parameters_file(), libMesh::RBTemporalDiscretization::process_temporal_parameters_file(), libMesh::MeshTools::processor_bounding_sphere(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), quadratic_solution(), quadratic_test(), quadratic_test_grad(), libMesh::Hex::quality(), libMesh::Tri::quality(), libMesh::Quad::quality(), libMesh::InfHex::quality(), libMesh::Elem::quality(), libMesh::Face::quasicircumcenter(), rational_fe_shape(), rational_fe_shape_deriv(), rational_fe_shape_second_deriv(), rational_fe_weighted_shapes(), rational_fe_weighted_shapes_derivs(), rational_test(), rational_test_grad(), libMesh::RBEIMEvaluation::rb_eim_solves(), libMesh::TransientRBEvaluation::rb_solve(), libMesh::RBEvaluation::rb_solve(), FEMParameters::read(), libMesh::ExodusII_IO::read(), libMesh::UNVIO::read_dataset(), libMesh::GmshIO::read_mesh(), libMesh::DynaIO::read_mesh(), libMesh::AbaqusIO::read_nodes(), libMesh::RBParametrized::read_parameter_ranges_from_file(), libMesh::OFFIO::read_stream(), libMesh::MatlabIO::read_stream(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::FESubdivision::regular_shape(), libMesh::FESubdivision::regular_shape_deriv(), libMesh::FESubdivision::regular_shape_second_deriv(), libMesh::InfFE< Dim, T_radial, T_map >::reinit(), LargeDeformationElasticity::residual(), LinearElasticityWithContact::residual_and_jacobian(), libMesh::C0Polyhedron::retriangulate(), libMesh::C0Polygon::retriangulate(), libMesh::MemorySolutionHistory::retrieve(), libMesh::FileSolutionHistory::retrieve(), Biharmonic::run(), TimeSolverTestImplementation< NewmarkSolver >::run_test_with_exact_soln(), run_timestepping(), libMesh::HDGProblem::scalar_volume_residual(), libMesh::MeshTools::Modification::scale(), libMesh::BoundingBox::scale(), libMesh::QBase::scale(), libMesh::HPCoarsenTest::select_refinement(), libMesh::NewmarkSystem::set_newmark_parameters(), libMesh::FEMSystem::set_numerical_jacobian_h_for_var(), libMesh::RBEIMConstruction::set_rb_construction_parameters(), libMesh::NonlinearImplicitSystem::set_solver_parameters(), AzimuthalPeriodicBoundary::set_up_rotation_matrix(), PerElemTest< elem_type >::setUp(), RationalMapTest< elem_type >::setUp(), FETestBase< order, family, elem_type, 1 >::setUp(), WriteVecAndScalar::setupTests(), libMesh::FE< Dim, LAGRANGE_VEC >::shape(), libMesh::InfFE< Dim, T_radial, T_map >::shape(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_deriv(), libMesh::InfFE< Dim, T_radial, T_map >::shape_deriv(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv(), libMesh::SimplexRefiner::should_refine_elem(), libMesh::Poly2TriTriangulator::should_refine_elem(), NavierSystem::side_constraint(), LaplaceSystem::side_constraint(), libMesh::RBEIMConstruction::side_inner_product(), LaplaceSystem::side_postprocess(), CoupledSystemQoI::side_qoi(), CoupledSystemQoI::side_qoi_derivative(), LaplaceSystem::side_qoi_derivative(), SolidSystem::side_time_derivative(), CurlCurlSystem::side_time_derivative(), ElasticitySystem::side_time_derivative(), libMesh::BoundingBox::signed_distance(), sin_x_plus_cos_y(), six_x_plus_sixty_y(), libMesh::LaplaceMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), solid_angle(), libMesh::TwostepTimeSolver::solve(), libMesh::NewtonSolver::solve(), libMesh::NoxNonlinearSolver< Number >::solve(), libMesh::NloptOptimizationSolver< T >::solve(), libMesh::PetscNonlinearSolver< Number >::solve(), libMesh::RBConstruction::solve_for_matrix_and_rhs(), libMesh::System::solve_for_unconstrained_dofs(), libMesh::EigenSystem::solve_helper(), libMesh::ContinuationSystem::solve_tangent(), libMesh::PatchRecoveryErrorEstimator::specpoly(), libMesh::Sphere::Sphere(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::QMonomial::stroud_rule(), libMesh::MeshTools::subdomain_bounding_sphere(), libMesh::Polyhedron::subelement_coordinates(), libMesh::NumericVector< Number >::subset_l1_norm(), libMesh::NumericVector< Number >::subset_l2_norm(), libMesh::NumericVector< Number >::subset_linfty_norm(), libMesh::Polygon::subtriangle_coordinates(), libMesh::Sphere::surface_coords(), libMesh::MeshTools::Generation::surface_octahedron(), ConstraintOperatorTest::test1DCoarseningOperator(), QuadratureTest::test2DWeights(), SimplexRefinementTest::test3DTriRefinement(), QuadratureTest::test3DWeights(), ExtraIntegersTest::test_and_set_initial_data(), ExtraIntegersTest::test_final_integers(), BBoxTest::test_no_degenerate(), BBoxTest::test_one_degenerate(), ElemTest< elem_type >::test_quality(), BBoxTest::test_signed_distance(), MeshFunctionTest::test_subdomain_id_sets(), VolumeTest::test_true_centroid_and_volume(), BBoxTest::test_two_degenerate(), DofObjectTest< Node >::testAddExtraData(), ParallelPointTest::testAllGatherPairPointPoint(), ParallelPointTest::testAllGatherPairRealPoint(), ParallelPointTest::testAllGatherPoint(), RBParametersTest::testAppend(), SystemsTest::testBoundaryProjectCube(), ParallelPointTest::testBroadcastPoint(), MeshGenerationTest::testBuildCube(), MeshGenerationTest::testBuildLine(), MeshGenerationTest::testBuildSquare(), VolumeTest::testC0Polygon(), VolumeTest::testC0Polyhedron(), RationalMapTest< elem_type >::testContainsPoint(), ContainsPointTest::testContainsPointNodeElem(), ContainsPointTest::testContainsPointTet4(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), ConstraintOperatorTest::testCoreform(), FETest< order, family, elem_type >::testCustomReinit(), XdrTest::testDataStream(), SystemsTest::testDofCouplingWithVarGroups(), MeshInputTest::testDynaReadPatch(), ConnectedComponentsTest::testEdge(), DualShapeTest::testEdge2Lagrange(), VolumeTest::testEdge4Invertible(), DenseMatrixTest::testEVDcomplex(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshTriangulationTest::testFoundCenters(), FESideTest< order, family, elem_type >::testGradU(), MeshTetTest::testHole(), InfFERadialTest::testInfQuants(), InfFERadialTest::testInfQuants_numericDeriv(), RBParametersTest::testIterators(), RBParametersTest::testIteratorsWithSamples(), QuadratureTest::testJacobi(), PointLocatorTest::testLocator(), FETest< order, family, elem_type >::testLoop(), MappedSubdomainPartitionerTest::testMappedSubdomainPartitioner(), ParallelPointTest::testMapUnionVec(), ParallelTest::testMaxlocReal(), ParallelTest::testMinlocReal(), NewmarkSolverTest::testNewmarkSolverLinearTimeSecondOrderODEFirstOrderStyle(), NewmarkSolverTest::testNewmarkSolverLinearTimeSecondOrderODESecondOrderStyle(), QuadratureTest::testNodalQuadrature(), TypeVectorTestBase< VectorValue< Number > >::testNorm(), TypeVectorTestBase< VectorValue< Number > >::testNormBase(), TypeVectorTestBase< VectorValue< Number > >::testNormSq(), TypeVectorTestBase< VectorValue< Number > >::testNormSqBase(), RBParametersTest::testNSamples(), LumpedMassMatrixTest::testNumerics(), RBParametersTest::testOldConstructor(), FETest< order, family, elem_type >::testPartitionOfUnity(), PeriodicBCTest::testPeriodicBC(), PetscVectorTest::testPetscOperations(), MeshTriangulationTest::testPoly2TriHolesInterpRefined(), MeshTriangulationTest::testPoly2TriRefinementBase(), QuadratureTest::testPolynomial(), QuadratureTest::testPolynomials(), SystemsTest::testProjectCube(), SystemsTest::testProjectCubeWithMeshFunction(), MeshInputTest::testProjectionRegression(), SystemsTest::testProjectLine(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), SystemsTest::testProjectSquare(), VolumeTest::testQuad4AspectRatio(), VolumeTest::testQuad4Invertible(), VolumeTest::testQuad4Jacobian(), VolumeTest::testQuad4MinMaxAngle(), VolumeTest::testQuad4TrueCentroid(), VolumeTest::testQuad4Warpage(), SimplexRefinementTest::testRefinement(), EquationSystemsTest::testRepartitionThenReinit(), TypeTensorTest::testRowCol(), RBParametersTest::testScalar(), TypeVectorTestBase< VectorValue< Number > >::testScalarDiv(), TypeVectorTestBase< VectorValue< Number > >::testScalarDivAssign(), TypeVectorTestBase< VectorValue< Number > >::testScalarDivAssignBase(), TypeVectorTestBase< VectorValue< Number > >::testScalarDivBase(), SystemsTest::testSetSystemParameterOverEquationSystem(), MeshInputTest::testSingleElementImpl(), MeshSmootherTest::testSmoother(), TypeVectorTestBase< VectorValue< Number > >::testSolidAngle(), WriteVecAndScalar::testSolution(), DenseMatrixTest::testSVD(), SlitMeshRefinedSystemTest::testSystem(), VolumeTest::testTet4DihedralAngle(), VolumeTest::testTet4Jacobian(), MeshInputTest::testTetgenIO(), QuadratureTest::testTetQuadrature(), MeshTetTest::testTetsToTets(), CompositeFunctionTest::testTimeDependence(), VolumeTest::testTri3AspectRatio(), VolumeTest::testTri3TrueCentroid(), MeshTriangulationTest::testTriangleHoleArea(), MeshTriangulationTest::testTriangleHoleContains(), MeshTriangulationTest::testTriangulatorBase(), MeshTriangulationTest::testTriangulatorHoles(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), MeshTriangulationTest::testTriangulatorRoundHole(), MeshTetTest::testTrisToTets(), MeshTetTest::testTrisToTetsError(), VolumeTest::testTwistedVolume(), FESideTest< order, family, elem_type >::testU(), GetPotTest::testVariables(), WriteNodesetData::testWriteImpl(), WriteSidesetData::testWriteImpl(), WriteElemsetData::testWriteImpl(), libMesh::RBEIMConstruction::train_eim_approximation_with_greedy(), libMesh::RBEIMConstruction::train_eim_approximation_with_POD(), libMesh::TransientRBConstruction::train_reduced_basis(), libMesh::RBConstruction::train_reduced_basis_with_greedy(), libMesh::RBConstruction::train_reduced_basis_with_POD(), libMesh::TriangulatorInterface::AffineHole::transform(), transform_mesh_and_plot(), triangulate_domain(), libMesh::Edge2::true_centroid(), libMesh::Quad4::true_centroid(), libMesh::C0Polyhedron::true_centroid(), libMesh::C0Polygon::true_centroid(), libMesh::Prism6::true_centroid(), libMesh::Elem::true_centroid(), FETestBase< order, family, elem_type, 1 >::true_gradient(), FETestBase< order, family, elem_type, 1 >::true_hessian(), libMesh::TransientRBConstruction::truth_assembly(), libMesh::TransientRBConstruction::truth_solve(), ConstantFirstOrderODE::u(), ConstantSecondOrderODE< SystemBase >::u(), LinearTimeFirstOrderODE::u(), libMesh::TransientRBEvaluation::uncached_compute_residual_dual_norm(), LinearElasticityWithContact::update_lambdas(), libMesh::ContinuationSystem::update_solution(), libMesh::JacobiPolynomials::value(), libMesh::ErrorVector::variance(), libMesh::StatisticsVector< ErrorVectorReal >::variance(), libMesh::C0Polyhedron::volume(), libMesh::Edge3::volume(), libMesh::Quad4::volume(), libMesh::C0Polygon::volume(), libMesh::Edge4::volume(), libMesh::Quad8::volume(), libMesh::Quad9::volume(), libMesh::Tri6::volume(), libMesh::Pyramid13::volume(), libMesh::Hex20::volume(), libMesh::Tet10::volume(), libMesh::Prism15::volume(), libMesh::Pyramid14::volume(), libMesh::Hex27::volume(), libMesh::Prism18::volume(), libMesh::MeshTools::volume(), libMesh::Elem::volume(), libMesh::MeshTetInterface::volume_to_surface_mesh(), libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve(), libMesh::ImplicitSystem::weighted_sensitivity_solve(), libMesh::Sphere::world_coords(), libMesh::PostscriptIO::write(), libMesh::GMVIO::write_ascii_new_impl(), libMesh::GMVIO::write_ascii_old_impl(), libMesh::RBParametrized::write_discrete_parameter_values_to_file(), libMesh::GmshIO::write_mesh(), libMesh::RBParametrized::write_parameter_ranges_to_file(), libMesh::GnuPlotIO::write_solution(), NumericVectorTest< DistributedVector< Number > >::WriteAndRead(), and libMesh::ExodusII_IO_Helper::MappedInputVector::~MappedInputVector().

◆ remote_elem

const RemoteElem * libMesh::remote_elem = nullptr

Definition at line 57 of file remote_elem.C.

Referenced by libMesh::Elem::add_child(), libMesh::BoundaryInfo::add_elements(), libMesh::UnstructuredMesh::all_first_order(), libMesh::MeshTools::Modification::all_tri(), libMesh::Elem::ancestor(), libMesh::MeshTools::Generation::build_extrusion(), libMesh::InfElemBuilder::build_inf_elem(), libMesh::Elem::coarsen(), libMesh::FEAbstract::compute_node_constraints(), connect_children(), libMesh::UnstructuredMesh::copy_nodes_and_elements(), libMesh::RemoteElem::create(), libMesh::MeshRefinement::eliminate_unrefined_patches(), libMesh::TopologyMap::fill(), libMesh::Elem::find_edge_neighbors(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::Elem::find_point_neighbors(), libMesh::MeshRefinement::flag_elements_by_nelem_target(), libMesh::MeshTools::Modification::flatten(), libMesh::InfFE< Dim, T_radial, T_map >::inf_compute_constraints(), libMesh::InfFE< Dim, T_radial, T_map >::inf_compute_node_constraints(), libMesh::Elem::interior_parent(), libMesh::MeshTools::libmesh_assert_topology_consistent_procids< Elem >(), libMesh::MeshTools::libmesh_assert_valid_amr_interior_parents(), libMesh::MeshTools::libmesh_assert_valid_neighbors(), libMesh::Elem::libmesh_assert_valid_neighbors(), libMesh::MeshTools::libmesh_assert_valid_node_pointers(), libMesh::MeshTools::libmesh_assert_valid_refinement_tree(), libMesh::MeshTools::libmesh_assert_valid_remote_elems(), libMesh::MeshRefinement::make_coarsening_compatible(), libMesh::Elem::make_links_to_me_local(), libMesh::Elem::make_links_to_me_remote(), libMesh::MeshRefinement::make_refinement_compatible(), libMesh::Elem::min_new_p_level_by_neighbor(), libMesh::Elem::min_p_level_by_neighbor(), libMesh::PeriodicBoundaries::neighbor(), libMesh::Elem::nullify_neighbors(), libMesh::GhostPointNeighbors::operator()(), libMesh::DefaultCoupling::operator()(), query_ghosting_functors(), libMesh::CheckpointIO::read_remote_elem(), libMesh::EquationSystems::redundant_added_side(), libMesh::Elem::refine(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::Elem::remove_links_to_me(), libMesh::Elem::set_interior_parent(), libMesh::BoundaryInfo::sync(), libMesh::MeshRefinement::test_level_one(), EquationSystemsTest::testRefineThenReinitPreserveFlags(), libMesh::MeshTetInterface::volume_to_surface_mesh(), libMesh::CheckpointIO::write_remote_elem(), and libMesh::RemoteElem::~RemoteElem().

◆ ShellMatrix< Number >

template class LIBMESH_EXPORT libMesh::ShellMatrix< Number >

Definition at line 52 of file shell_matrix.C.

◆ SlepcEigenSolver< Number >

template class LIBMESH_EXPORT libMesh::SlepcEigenSolver< Number >

Definition at line 860 of file slepc_eigen_solver.C.

◆ SparseMatrix< Number >

template class LIBMESH_EXPORT libMesh::SparseMatrix< Number >

Definition at line 888 of file sparse_matrix.C.

◆ SparseShellMatrix< Number >

template class LIBMESH_EXPORT libMesh::SparseShellMatrix< Number >

Definition at line 46 of file sparse_shell_matrix.C.

◆ square_number_column

const unsigned char libMesh::square_number_column
Initial value:
= {
0,
0, 1, 1,
0, 1, 2, 2, 2,
0, 1, 2, 3, 3, 3, 3,
0, 1, 2, 3, 4, 4, 4, 4, 4,
0, 1, 2, 3, 4, 5, 5, 5, 5, 5, 5,
0, 1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6,
0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7,
0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9
}

Definition at line 56 of file number_lookups.C.

◆ square_number_row

const unsigned char libMesh::square_number_row
Initial value:
= {
0,
1, 1, 0,
2, 2, 2, 1, 0,
3, 3, 3, 3, 2, 1, 0,
4, 4, 4, 4, 4, 3, 2, 1, 0,
5, 5, 5, 5, 5, 5, 4, 3, 2, 1, 0,
6, 6, 6, 6, 6, 6, 6, 5, 4, 3, 2, 1, 0,
7, 7, 7, 7, 7, 7, 7, 7, 6, 5, 4, 3, 2, 1, 0,
8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 6, 5, 4, 3, 2, 1, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0,
}

Definition at line 69 of file number_lookups.C.

◆ StatisticsVector< double >

template class LIBMESH_EXPORT libMesh::StatisticsVector< double >

Definition at line 386 of file statistics.C.

◆ StatisticsVector< float >

template class LIBMESH_EXPORT libMesh::StatisticsVector< float >

Definition at line 385 of file statistics.C.

◆ StatisticsVector< int >

template class LIBMESH_EXPORT libMesh::StatisticsVector< int >

Definition at line 393 of file statistics.C.

◆ StatisticsVector< long double >

template class LIBMESH_EXPORT libMesh::StatisticsVector< long double >

Definition at line 388 of file statistics.C.

◆ StatisticsVector< Real >

template class LIBMESH_EXPORT libMesh::StatisticsVector< Real >

Definition at line 391 of file statistics.C.

◆ StatisticsVector< unsigned int >

template class LIBMESH_EXPORT libMesh::StatisticsVector< unsigned int >

Definition at line 394 of file statistics.C.

◆ subdm

PetscErrorCode PetscInt const PetscInt IS DM* libMesh::subdm
Initial value:
{
PetscFunctionBegin

Definition at line 64 of file petsc_dm_wrapper.C.

Referenced by if(), and libmesh_petsc_DMCoarsen().

◆ SumShellMatrix< Number >

template class LIBMESH_EXPORT libMesh::SumShellMatrix< Number >

Definition at line 91 of file sum_shell_matrix.C.

◆ TaoOptimizationSolver< Number >

template class LIBMESH_EXPORT libMesh::TaoOptimizationSolver< Number >

Definition at line 636 of file tao_optimization_solver.C.

◆ TensorShellMatrix< Number >

template class LIBMESH_EXPORT libMesh::TensorShellMatrix< Number >

Definition at line 55 of file tensor_shell_matrix.C.

◆ tetrahedral_number_column

const unsigned char libMesh::tetrahedral_number_column

Definition at line 421 of file number_lookups.C.

◆ tetrahedral_number_page

const unsigned char libMesh::tetrahedral_number_page

Definition at line 550 of file number_lookups.C.

◆ tetrahedral_number_row

const unsigned char libMesh::tetrahedral_number_row

Definition at line 488 of file number_lookups.C.

◆ TOLERANCE

static constexpr Real libMesh::TOLERANCE = 2.5e-3
static

Definition at line 151 of file libmesh_common.h.

Referenced by libMesh::ImplicitSystem::adjoint_qoi_parameter_sensitivity(), libMesh::ImplicitSystem::assemble_residual_derivatives(), assemble_wave(), InfFERadialTest::base_point(), libMesh::MeshTools::Generation::build_delaunay_square(), libMesh::EquationSystems::build_parallel_solution_vector(), libMesh::RBParametrized::check_if_valid_params(), libMesh::FEGenericBase< FEOutputType< T >::type >::coarsened_dof_values(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_periodic_constraints(), libMesh::FEGenericBase< FEOutputType< T >::type >::compute_proj_constraints(), libMesh::RBSCMConstruction::compute_SCM_bounding_box(), libMesh::Elem::contains_point(), ContainsPointTest::containsPointTri3Helper(), libMesh::Polyhedron::convex(), libMesh::MeshBase::copy_constraint_rows(), designed_for_side_elems(), HeatSystem::element_qoi(), libMesh::EquationSystems::EquationSystems(), libMesh::RBSCMConstruction::evaluate_stability_constant(), fill_dirichlet_bc(), libMesh::TreeNode< N >::find_element(), libMesh::TreeNode< N >::find_elements(), libMesh::UnstructuredMesh::find_neighbors(), libMesh::SolutionHistory::find_stored_entry(), libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), NonlinearNeoHookeCurrentConfig::init_for_qp(), libMesh::RBEIMConstruction::initialize_qp_data(), libMesh::TreeNode< N >::insert(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::Euler2Solver::integrate_adjoint_refinement_error_estimate(), libMesh::EulerSolver::integrate_adjoint_refinement_error_estimate(), libMesh::InfFEMap::inverse_map(), libMesh::LocationMap< T >::key(), NumericVectorTest< DistributedVector< Number > >::Localize(), NumericVectorTest< DistributedVector< Number > >::LocalizeIndices(), main(), AugmentSparsityOnInterface::mesh_reinit(), NumericVectorTest< DistributedVector< Number > >::Norms(), NumericVectorTest< DistributedVector< Number > >::Operations(), libMesh::MeshTools::Generation::Private::GaussLobattoRedistributionFunction::operator()(), libMesh::BoundaryProjectSolution::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::ProjectVertices::operator()(), libMesh::TypeTensor< T >::operator==(), periodic_bc_test_poisson(), libMesh::Polyhedron::Polyhedron(), libMesh::DofMap::process_mesh_constraint_rows(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), libMesh::Quad::quality(), libMesh::GmshIO::read_mesh(), libMesh::SimplexRefiner::refine_via_edges(), libMesh::C0Polyhedron::retriangulate(), libMesh::MemorySolutionHistory::retrieve(), libMesh::FileSolutionHistory::retrieve(), BoundaryMeshTest::sanityCheck(), QuadratureTest::setUp(), FETestBase< order, family, elem_type, 1 >::setUp(), libMesh::FE< Dim, LAGRANGE_VEC >::shape(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_deriv(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv(), libMesh::SimplexRefiner::should_refine_elem(), LaplaceSystem::side_constraint(), libMesh::VariationalMeshSmoother::smooth(), libMesh::NewtonSolver::solve(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::MemorySolutionHistory::store(), libMesh::FileSolutionHistory::store(), ConstraintOperatorTest::test1DCoarseningOperator(), SystemsTest::test2DProjectVectorFE(), QuadratureTest::test2DWeights(), SystemsTest::test3DProjectVectorFE(), QuadratureTest::test3DWeights(), ElemTest< elem_type >::test_contains_point_node(), ElemTest< elem_type >::test_flip(), BBoxTest::test_no_degenerate(), BBoxTest::test_one_degenerate(), ElemTest< elem_type >::test_orient(), MeshFunctionTest::test_p_level(), ElemTest< elem_type >::test_permute(), ElemTest< elem_type >::test_quality(), BBoxTest::test_signed_distance(), MeshFunctionTest::test_subdomain_id_sets(), VolumeTest::test_true_centroid_and_volume(), BBoxTest::test_two_degenerate(), MeshStitchTest::testAmbiguousRemappingStitch(), MeshStitchTest::testBoundaryInfo(), SystemsTest::testBoundaryProjectCube(), VolumeTest::testC0Polygon(), VolumeTest::testC0Polyhedron(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), ConstraintOperatorTest::testCoreform(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), XdrTest::testDataStream(), XdrTest::testDataVec(), SystemsTest::testDofCouplingWithVarGroups(), MeshInputTest::testDynaReadPatch(), DualShapeTest::testEdge2Lagrange(), VolumeTest::testEdge3Volume(), DenseMatrixTest::testEVDcomplex(), DenseMatrixTest::testEVDreal(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshTriangulationTest::testFoundCenters(), PetscVectorTest::testGetArray(), ParsedFEMFunctionTest::testGradients(), ParsedFEMFunctionTest::testHessians(), VolumeTest::testHex20PLevelTrueCentroid(), InfFERadialTest::testInfQuants(), InfFERadialTest::testInfQuants_numericDeriv(), ParsedFunctionTest::testInlineGetter(), ParsedFEMFunctionTest::testInlineGetter(), ParsedFunctionTest::testInlineSetter(), ParsedFEMFunctionTest::testInlineSetter(), PointLocatorTest::testLocator(), MeshInputTest::testMasterCenters(), MeshStitchTest::testMeshStitchElemsets(), QuadratureTest::testNodalQuadrature(), TypeVectorTestBase< VectorValue< Number > >::testNorm(), ParsedFEMFunctionTest::testNormals(), TypeVectorTestBase< VectorValue< Number > >::testNormBase(), TypeVectorTestBase< VectorValue< Number > >::testNormSq(), TypeVectorTestBase< VectorValue< Number > >::testNormSqBase(), DenseMatrixTest::testOuterProduct(), TypeTensorTest::testOuterProduct(), FETest< order, family, elem_type >::testPartitionOfUnity(), PeriodicBCTest::testPeriodicBC(), PetscMatrixTest::testPetscBinaryRead(), PetscMatrixTest::testPetscBinaryWrite(), PetscMatrixTest::testPetscHDF5Write(), PetscVectorTest::testPetscOperations(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), MeshInputTest::testProjectionRegression(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), VolumeTest::testPyramid5TrueCentroid(), VolumeTest::testQuad4AspectRatio(), VolumeTest::testQuad4Jacobian(), VolumeTest::testQuad4MinMaxAngle(), VolumeTest::testQuad4TrueCentroid(), VolumeTest::testQuad4Warpage(), SimplexRefinementTest::testRefinement(), InfFERadialTest::testRefinement(), MeshStitchTest::testRemappingStitch(), EquationSystemsTest::testRepartitionThenReinit(), SlitMeshRefinedSystemTest::testRestart(), TypeTensorTest::testRotation(), TypeTensorTest::testRowCol(), TypeVectorTestBase< VectorValue< Number > >::testScalarDiv(), TypeVectorTestBase< VectorValue< Number > >::testScalarDivAssign(), TypeVectorTestBase< VectorValue< Number > >::testScalarDivAssignBase(), TypeVectorTestBase< VectorValue< Number > >::testScalarDivBase(), TypeVectorTestBase< VectorValue< Number > >::testScalarInit(), TypeVectorTestBase< VectorValue< Number > >::testScalarMult(), TypeVectorTestBase< VectorValue< Number > >::testScalarMultAssign(), TypeVectorTestBase< VectorValue< Number > >::testScalarMultAssignBase(), TypeVectorTestBase< VectorValue< Number > >::testScalarMultBase(), InfFERadialTest::testSides(), InfFERadialTest::testSingleOrder(), MeshSmootherTest::testSmoother(), TypeVectorTestBase< VectorValue< Number > >::testSolidAngle(), MixedOrderTest::testStitch(), DenseMatrixTest::testSVD(), SlitMeshRefinedSystemTest::testSystem(), VolumeTest::testTet4DihedralAngle(), VolumeTest::testTet4Jacobian(), MeshInputTest::testTetgenIO(), MeshTetTest::testTetInterfaceBase(), QuadratureTest::testTetQuadrature(), VolumeTest::testTri3AspectRatio(), VolumeTest::testTri3TrueCentroid(), MeshTriangulationTest::testTriangleHoleArea(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorRoundHole(), VolumeTest::testTwistedVolume(), ParsedFunctionTest::testValues(), ParsedFEMFunctionTest::testValues(), TypeVectorTestBase< VectorValue< Number > >::testVectorAdd(), TypeVectorTestBase< VectorValue< Number > >::testVectorAddAssign(), TypeVectorTestBase< VectorValue< Number > >::testVectorAddAssignBase(), TypeVectorTestBase< VectorValue< Number > >::testVectorAddBase(), TypeVectorTestBase< VectorValue< Number > >::testVectorAddScaled(), TypeVectorTestBase< VectorValue< Number > >::testVectorAddScaledBase(), TypeVectorTestBase< VectorValue< Number > >::testVectorMult(), TypeVectorTestBase< VectorValue< Number > >::testVectorMultBase(), TypeVectorTestBase< VectorValue< Number > >::testVectorSub(), TypeVectorTestBase< VectorValue< Number > >::testVectorSubAssign(), TypeVectorTestBase< VectorValue< Number > >::testVectorSubAssignBase(), TypeVectorTestBase< VectorValue< Number > >::testVectorSubBase(), libMesh::BoundaryVolumeSolutionTransfer::transfer_boundary_volume(), libMesh::BoundaryVolumeSolutionTransfer::transfer_volume_boundary(), libMesh::TriangleInterface::triangulate(), SystemsTest::tripleValueTest(), libMesh::PointLocatorBase::unset_close_to_point_tol(), libMesh::PointLocatorBase::unset_contains_point_tol(), usage_error(), libMesh::ImplicitSystem::weighted_sensitivity_adjoint_solve(), and libMesh::ImplicitSystem::weighted_sensitivity_solve().

◆ TransientSystem< EigenSystem >

template class LIBMESH_EXPORT libMesh::TransientSystem< EigenSystem >

Definition at line 156 of file transient_system.C.

◆ TransientSystem< ExplicitSystem >

template class LIBMESH_EXPORT libMesh::TransientSystem< ExplicitSystem >

Definition at line 152 of file transient_system.C.

◆ TransientSystem< LinearImplicitSystem >

template class LIBMESH_EXPORT libMesh::TransientSystem< LinearImplicitSystem >

Definition at line 150 of file transient_system.C.

◆ TransientSystem< NonlinearImplicitSystem >

template class LIBMESH_EXPORT libMesh::TransientSystem< NonlinearImplicitSystem >

Definition at line 151 of file transient_system.C.

◆ TransientSystem< RBConstruction >

template class LIBMESH_EXPORT libMesh::TransientSystem< RBConstruction >

Definition at line 154 of file transient_system.C.

◆ TransientSystem< System >

template class LIBMESH_EXPORT libMesh::TransientSystem< System >

Definition at line 153 of file transient_system.C.

◆ Tree< 2 >

template class LIBMESH_EXPORT libMesh::Tree< 2 >

Definition at line 157 of file tree.C.

◆ Tree< 4 >

template class LIBMESH_EXPORT libMesh::Tree< 4 >

Definition at line 158 of file tree.C.

◆ Tree< 8 >

template class LIBMESH_EXPORT libMesh::Tree< 8 >

Definition at line 159 of file tree.C.

◆ TreeNode< 2 >

template class LIBMESH_EXPORT libMesh::TreeNode< 2 >

Definition at line 717 of file tree_node.C.

◆ TreeNode< 4 >

template class LIBMESH_EXPORT libMesh::TreeNode< 4 >

Definition at line 718 of file tree_node.C.

◆ TreeNode< 8 >

template class LIBMESH_EXPORT libMesh::TreeNode< 8 >

Definition at line 719 of file tree_node.C.

◆ triangular_number_column

const unsigned char libMesh::triangular_number_column
Initial value:
= {
0,
0, 1,
0, 1, 2,
0, 1, 2, 3,
0, 1, 2, 3, 4,
0, 1, 2, 3, 4, 5,
0, 1, 2, 3, 4, 5, 6,
0, 1, 2, 3, 4, 5, 6, 7,
0, 1, 2, 3, 4, 5, 6, 7, 8,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
}

Definition at line 41 of file number_lookups.C.

◆ triangular_number_row

const unsigned char libMesh::triangular_number_row
Initial value:
= {
0,
1, 1,
2, 2, 2,
3, 3, 3, 3,
4, 4, 4, 4, 4,
5, 5, 5, 5, 5, 5,
6, 6, 6, 6, 6, 6, 6,
7, 7, 7, 7, 7, 7, 7, 7,
8, 8, 8, 8, 8, 8, 8, 8, 8,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9
}

Definition at line 28 of file number_lookups.C.

◆ TrilinosPreconditioner< Number >

template class LIBMESH_EXPORT libMesh::TrilinosPreconditioner< Number >

Definition at line 260 of file trilinos_preconditioner.C.

◆ TypeTensor< Complex >

template class LIBMESH_EXPORT libMesh::TypeTensor< Complex >

Definition at line 150 of file type_tensor.C.

◆ TypeTensor< Real >

template class LIBMESH_EXPORT libMesh::TypeTensor< Real >

Definition at line 147 of file type_tensor.C.

◆ TypeVector< Complex >

template class LIBMESH_EXPORT libMesh::TypeVector< Complex >

Definition at line 219 of file type_vector.C.

◆ TypeVector< Real >

template class LIBMESH_EXPORT libMesh::TypeVector< Real >

Definition at line 216 of file type_vector.C.

◆ warned_about_auto_ptr

bool libMesh::warned_about_auto_ptr

◆ zero

const Number libMesh::zero = 0.