libMesh
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  AnalyticFunction
 Wraps a function pointer into a FunctionBase object. More...
 
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...
 
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...
 
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  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...
 
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  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  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...
 
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, 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  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  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  MeshlessInterpolationFunction
 
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  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  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  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  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 data structures for parallel, sparse matrices. 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 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  Poly2TriTriangulator
 A C++ interface between LibMesh and the poly2tri library, with custom code for Steiner point insertion. 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  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  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
 
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
 This defines the Side class. More...
 
class  SideEdge
 This defines the SideEdge class. More...
 
class  SimpleRange
 The SimpleRange templated class is intended to make it easy to construct ranges from pairs of iterators. 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  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  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  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...
 
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  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 int32_t eigen_idx_type
 
typedef Eigen::SparseMatrix< Number, Eigen::RowMajor, eigen_idx_typeEigenSM
 
typedef Eigen::Matrix< Number, Eigen::Dynamic, 1 > EigenSV
 
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
}
 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, 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, 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, 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")
 
bool initialized ()
 Checks that library initialization has been done. More...
 
bool closed ()
 Checks that the library has been closed. 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 ()
 
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_conj (T a)
 
template<typename T >
libmesh_real (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)
 
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...
 
std::string demangle (const char *name)
 Mostly system independent demangler. 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 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_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 &))
 
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...
 
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, std::set< const Elem *, CompareElemIdsByLevel > &connected_elements)
 
void connect_children (const MeshBase &mesh, MeshBase::const_element_iterator elem_it, MeshBase::const_element_iterator elem_end, std::set< const Elem *, CompareElemIdsByLevel > &connected_elements)
 
void connect_families (std::set< const Elem *, CompareElemIdsByLevel > &connected_elements, const MeshBase *mesh=nullptr)
 
void reconnect_nodes (const std::set< const Elem *, CompareElemIdsByLevel > &connected_elements, connected_node_set_type &connected_nodes)
 
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)
 
PetscInt * numeric_petsc_cast (const numeric_index_type *p)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const SparseMatrix< T > &m)
 
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 >
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)
 
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 >
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.)
 
void libmesh_terminate_handler ()
 
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 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 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 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< double > (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 (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 (CLOUGH, clough_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, CLOUGH)
 
 LIBMESH_FE_NODAL_SOLN (HERMITE, hermite_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (template<>Real FE< 0, HERMITE)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (1, HERMITE)
 
 LIBMESH_FE_NODAL_SOLN (HIERARCHIC, hierarchic_nodal_soln)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (LIBMESH_DEFAULT_VECTORIZED_FE(0, HIERARCHIC)
 
 LIBMESH_DEFAULT_VECTORIZED_FE (0, HIERARCHIC_VEC)
 
 LIBMESH_FE_SIDE_NODAL_SOLN (HIERARCHIC_VEC)
 
 LIBMESH_FE_SIDE_NODAL_SOLN (L2_HIERARCHIC_VEC)
 
 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_SIDE_NODAL_SOLN (LAGRANGE_VEC)
 
 LIBMESH_FE_SIDE_NODAL_SOLN (L2_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_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)
 
template<size_t N>
bool orientation (std::array< Point, N > &arr)
 
 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(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 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_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 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, 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 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_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, 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 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(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 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 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, 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)
 
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 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...
 
 CHKERRQ (ierr)
 
 libmesh_assert (ctx)
 
 if (subdm)
 
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
 \( \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...
 
PerfLog perflog
 A PerfLog object to log performance. More...
 
const RemoteElemremote_elem
 
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
 
 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 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
 
 ierr = DMShellGetContext(dm, & ctx)
 
PetscDMContextp_ctx = static_cast<PetscDMContext * >(ctx)
 
 return
 
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 179 of file libmesh_common.h.

◆ COMPLEX

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

Definition at line 180 of file libmesh_common.h.

◆ connected_node_set_type

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

Definition at line 281 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 90 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.

◆ 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.

◆ 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 50 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 138 of file dof_map.h.

◆ NodeRange

Definition at line 31 of file node_range.h.

◆ Number

Definition at line 214 of file libmesh_common.h.

◆ NumberTensorValue

Definition at line 46 of file exact_solution.h.

◆ NumberVectorValue

Definition at line 49 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 48 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 88 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 

Definition at line 34 of file enum_elem_quality.h.

◆ 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 
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  // Invalid
81  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 
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  // 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 78 of file petsc_matrix.h.

78  : int {
79  AIJ=0,
80  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 
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:111

◆ __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:111

◆ __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:111

◆ __libmesh_petsc_diff_solver_jacobian()

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

Definition at line 135 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, libMesh::System::solution, libMesh::PetscMatrix< T >::swap(), libMesh::DiffSolver::system(), libMesh::System::update(), and libMesh::DiffSolver::verbose.

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

140  {
141  libmesh_assert(x);
142  libmesh_assert(j);
143  // libmesh_assert_equal_to (pc, j); // We don't use separate preconditioners yet
145 
146  PetscDiffSolver & solver =
147  *(static_cast<PetscDiffSolver*> (ctx));
148  ImplicitSystem & sys = solver.system();
149 
150  if (solver.verbose)
151  libMesh::out << "Assembling the Jacobian" << std::endl;
152 
153  PetscVector<Number> & X_system =
154  *cast_ptr<PetscVector<Number> *>(sys.solution.get());
155  PetscVector<Number> X_input(x, sys.comm());
156 
157  PetscMatrix<Number> J_input(pc, sys.comm());
158  PetscMatrix<Number> & J_system =
159  *cast_ptr<PetscMatrix<Number> *>(sys.matrix);
160 
161  // DiffSystem assembles from the solution and into the jacobian, so
162  // swap those with our input vectors before assembling. They'll
163  // probably already be references to the same vectors, but PETSc
164  // might do something tricky.
165  X_input.swap(X_system);
166  J_input.swap(J_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  J_input.swap(J_system);
182 
183  // No errors, we hope
184  return 0;
185  }
template class LIBMESH_EXPORT PetscMatrix< Number >
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
OStreamProxy out
void * ctx

◆ __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, TIMPI::Communicator::get(), ierr, libMesh::DiffSolver::linear_solution_monitor, out, and libMesh::DiffSolver::verbose.

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

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

◆ __libmesh_petsc_diff_solver_residual()

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

Definition at line 88 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, 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().

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

◆ __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 83 of file petsc_linear_solver.C.

References libmesh_petsc_preconditioner_apply().

84  {
85  libmesh_deprecated();
86  return libmesh_petsc_preconditioner_apply(pc, x, y);
87  }
PetscErrorCode libmesh_petsc_preconditioner_apply(PC, Vec x, Vec y)
This function is called by PETSc to actually apply the preconditioner.

◆ __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 77 of file petsc_linear_solver.C.

References libmesh_petsc_preconditioner_setup().

78  {
79  libmesh_deprecated();
81  }
PetscErrorCode libmesh_petsc_preconditioner_setup(PC)
This function is called by PETSc to initialize the preconditioner.

◆ __libmesh_petsc_snes_fd_residual()

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

Definition at line 298 of file petsc_nonlinear_solver.C.

References ctx, and libmesh_petsc_snes_fd_residual().

299  {
300  libmesh_deprecated();
301  return libmesh_petsc_snes_fd_residual(snes, x, r, ctx);
302  }
PetscErrorCode libmesh_petsc_snes_fd_residual(SNES, Vec x, Vec r, void *ctx)
void * ctx

◆ __libmesh_petsc_snes_jacobian()

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

Definition at line 565 of file petsc_nonlinear_solver.C.

References ctx, and libmesh_petsc_snes_jacobian().

566  {
567  libmesh_deprecated();
568  return libmesh_petsc_snes_jacobian(snes, x, jac, pc, ctx);
569  }
PetscErrorCode libmesh_petsc_snes_jacobian(SNES, Vec x, Mat jac, Mat pc, void *ctx)
void * ctx

◆ __libmesh_petsc_snes_mffd_interface()

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

Definition at line 437 of file petsc_nonlinear_solver.C.

References ctx, and libmesh_petsc_snes_mffd_interface().

438  {
439  libmesh_deprecated();
441  }
PetscErrorCode libmesh_petsc_snes_mffd_interface(void *ctx, Vec x, Vec r)
void * ctx

◆ __libmesh_petsc_snes_monitor()

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

Definition at line 162 of file petsc_nonlinear_solver.C.

References libmesh_petsc_snes_monitor().

163  {
164  libmesh_deprecated();
165  return libmesh_petsc_snes_monitor(nullptr, its, fnorm, nullptr);
166  }
PetscErrorCode libmesh_petsc_snes_monitor(SNES, PetscInt its, PetscReal fnorm, void *)

◆ __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 655 of file petsc_nonlinear_solver.C.

References libmesh_petsc_snes_postcheck().

656  {
657  libmesh_deprecated();
658  return libmesh_petsc_snes_postcheck(nullptr, x, y, w, changed_y, changed_w, context);
659  }
PetscErrorCode libmesh_petsc_snes_postcheck(SNESLineSearch, Vec x, Vec y, Vec w, PetscBool *changed_y, PetscBool *changed_w, void *context)

◆ __libmesh_petsc_snes_residual()

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

Definition at line 246 of file petsc_nonlinear_solver.C.

References ctx, and libmesh_petsc_snes_residual().

247  {
248  libmesh_deprecated();
249  return libmesh_petsc_snes_residual(snes, x, r, ctx);
250  }
void * ctx
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, ierr, libmesh_assert(), libMesh::PetscVector< T >::swap(), libMesh::OptimizationSolver< T >::system(), and libMesh::PetscVector< T >::zero().

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

207  {
208  LOG_SCOPE("equality_constraints()", "TaoOptimizationSolver");
209 
210  PetscErrorCode ierr = 0;
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  return ierr;
252  }
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx

◆ __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, ierr, libmesh_assert(), libMesh::PetscVector< T >::swap(), and libMesh::OptimizationSolver< T >::system().

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

259  {
260  LOG_SCOPE("equality_constraints_jacobian()", "TaoOptimizationSolver");
261 
262  PetscErrorCode ierr = 0;
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  return ierr;
302  }
template class LIBMESH_EXPORT PetscMatrix< Number >
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx

◆ __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, ierr, libmesh_assert(), libMesh::PetscVector< T >::swap(), libMesh::OptimizationSolver< T >::system(), and libMesh::PetscVector< T >::zero().

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

99  {
100  LOG_SCOPE("gradient()", "TaoOptimizationSolver");
101 
102  PetscErrorCode ierr = 0;
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  return ierr;
144  }
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx

◆ __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, ierr, libmesh_assert(), libMesh::PetscVector< T >::swap(), and libMesh::OptimizationSolver< T >::system().

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

150  {
151  LOG_SCOPE("hessian()", "TaoOptimizationSolver");
152 
153  PetscErrorCode ierr = 0;
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  return ierr;
200  }
template class LIBMESH_EXPORT PetscMatrix< Number >
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx

◆ __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, ierr, libMesh::OptimizationSystem::ComputeInequalityConstraints::inequality_constraints(), libMesh::OptimizationSolver< T >::inequality_constraints_object, libmesh_assert(), libMesh::PetscVector< T >::swap(), libMesh::OptimizationSolver< T >::system(), and libMesh::PetscVector< T >::zero().

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

308  {
309  LOG_SCOPE("inequality_constraints()", "TaoOptimizationSolver");
310 
311  PetscErrorCode ierr = 0;
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  return ierr;
353  }
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx

◆ __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, ierr, libMesh::OptimizationSystem::ComputeInequalityConstraintsJacobian::inequality_constraints_jacobian(), libMesh::OptimizationSolver< T >::inequality_constraints_jacobian_object, libmesh_assert(), libMesh::PetscVector< T >::swap(), and libMesh::OptimizationSolver< T >::system().

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

360  {
361  LOG_SCOPE("inequality_constraints_jacobian()", "TaoOptimizationSolver");
362 
363  PetscErrorCode ierr = 0;
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  return ierr;
403  }
template class LIBMESH_EXPORT PetscMatrix< Number >
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx

◆ __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, ierr, libmesh_assert(), libMesh::OptimizationSystem::ComputeObjective::objective(), libMesh::OptimizationSolver< T >::objective_object, PS(), libMesh::PetscVector< T >::swap(), and libMesh::OptimizationSolver< T >::system().

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

51  {
52  LOG_SCOPE("objective()", "TaoOptimizationSolver");
53 
54  PetscErrorCode ierr = 0;
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  return ierr;
91  }
template class LIBMESH_EXPORT PetscVector< Number >
PetscScalar PS(T val)
Definition: petsc_macro.h:166
template class LIBMESH_EXPORT TaoOptimizationSolver< Number >
libmesh_assert(ctx)
void * ctx

◆ 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 893 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().

894 {
895  // Users had better not be asking about an empty string
896  libmesh_assert(!name.empty());
897 
898  static std::mutex command_line_names_mutex;
899  std::scoped_lock lock(command_line_names_mutex);
900 
901  command_line_name_set.insert(name);
902 }
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 906 of file libmesh.C.

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

Referenced by main().

907 {
908  for (auto & getter : {&GetPot::get_requested_arguments,
909  &GetPot::get_requested_variables,
910  &GetPot::get_requested_sections})
911  for (const std::string & name : (getpot.*getter)())
913 }
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:893

◆ 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::BoundaryInfo::_find_id_maps(), libMesh::MeshRefinement::_refine_elements(), libMesh::BoundaryInfo::add_edge(), libMesh::BoundaryInfo::add_elements(), 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(), OverlappingCouplingFunctor::operator()(), libMesh::SiblingCoupling::operator()(), AugmentSparsityOnInterface::operator()(), AugmentSparsityOnNodes::operator()(), libMesh::GhostPointNeighbors::operator()(), libMesh::PointNeighborCoupling::operator()(), libMesh::DefaultCoupling::operator()(), libMesh::GenericProjector< FFunctor, GFunctor, FValue, ProjectionAction >::SortAndCopy::operator()(), libMesh::BoundaryInfo::parallel_sync_node_ids(), libMesh::BoundaryInfo::parallel_sync_side_ids(), libMesh::LinearPartitioner::partition_range(), libMesh::MetisPartitioner::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::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 613 of file libmesh_common.h.

614 {
615  libmesh_assert_equal_to
616  (oldvar, static_cast<Told>(static_cast<Tnew>(oldvar)));
617 
618  return(static_cast<Tnew>(oldvar));
619 }

◆ cast_ptr()

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

Definition at line 572 of file libmesh_common.h.

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

Referenced by libMesh::Parameters::have_parameter().

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

◆ cast_ref()

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

Definition at line 546 of file libmesh_common.h.

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

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

◆ CHKERRQ()

libMesh::CHKERRQ ( ierr  )

◆ 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 273 of file libmesh.C.

References libMesh::libMeshPrivateData::_is_initialized.

Referenced by libMesh::PetscMatrix< libMesh::Number >::_get_submatrix(), libMesh::PetscMatrix< libMesh::Number >::add_sparse_matrix(), libMesh::PetscMatrix< libMesh::Number >::clone(), libMesh::PetscMatrix< libMesh::Number >::create_submatrix_nosort(), libMesh::PetscMatrix< libMesh::Number >::get_row(), libMesh::LaspackVector< T >::l1_norm(), libMesh::EigenSparseVector< T >::l1_norm(), libMesh::EpetraVector< T >::l1_norm(), libMesh::PetscVector< libMesh::Number >::l1_norm(), libMesh::PetscMatrix< libMesh::Number >::l1_norm(), libMesh::LaspackVector< T >::l2_norm(), libMesh::EigenSparseVector< T >::l2_norm(), libMesh::EpetraVector< T >::l2_norm(), libMesh::PetscVector< libMesh::Number >::l2_norm(), libMesh::LaspackVector< T >::linfty_norm(), libMesh::EigenSparseVector< T >::linfty_norm(), libMesh::EpetraVector< T >::linfty_norm(), libMesh::PetscVector< libMesh::Number >::linfty_norm(), libMesh::PetscMatrix< libMesh::Number >::linfty_norm(), libMesh::PetscMatrix< libMesh::Number >::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< libMesh::Number >::print_matlab(), libMesh::PetscVector< libMesh::Number >::print_matlab(), libMesh::PetscMatrix< libMesh::Number >::print_personal(), libMesh::NumericVector< Number >::readable(), libMesh::LaspackVector< T >::sum(), libMesh::EigenSparseVector< T >::sum(), libMesh::EpetraVector< T >::sum(), libMesh::PetscVector< libMesh::Number >::sum(), libMesh::LaspackVector< T >::zero(), libMesh::EigenSparseVector< T >::zero(), libMesh::EpetraVector< T >::zero(), libMesh::PetscVector< libMesh::Number >::zero(), libMesh::PetscMatrix< libMesh::Number >::zero_clone(), libMesh::LibMeshInit::~LibMeshInit(), libMesh::MeshBase::~MeshBase(), libMesh::System::~System(), and libMesh::UnstructuredMesh::~UnstructuredMesh().

274 {
276 }
bool _is_initialized
Flag that tells if init() has been called.
Definition: libmesh.C:247

◆ 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 916 of file libmesh.C.

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

917 {
918  return std::vector<std::string>(command_line_name_set.begin(),
919  command_line_name_set.end());
920 }

◆ 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 1011 of file libmesh.C.

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

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

1012 {
1013  // Make sure the command line parser is ready for use
1014  libmesh_assert(command_line.get());
1015 
1016  // Keep track of runtime queries, for later
1018 
1019  // on_command_line also puts the command_line cursor in the spot we
1020  // need
1021  if (on_command_line(name))
1022  return command_line->next(value);
1023 
1024  return value;
1025 }
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:893
static const bool value
Definition: xdr_io.C:54
bool on_command_line(std::string arg)
Definition: libmesh.C:924

◆ 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 957 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().

958 {
959  // Make sure the command line parser is ready for use
960  libmesh_assert(command_line.get());
961 
962  // only if the variable exists in the file
963  if (command_line->have_variable(name))
964  {
965  value = (*command_line)(name, value);
966 
967  // Keep track of runtime queries, for later. GetPot splits
968  // foo=bar into a separate name=value, so we can query for the
969  // name, but as far as PETSc is concerned that's one CLI
970  // argument. We'll store it that way.
971  const std::string stringvalue =
972  (*command_line)(name, std::string());
973  add_command_line_name(name+"="+stringvalue);
974  }
975 
976  return value;
977 }
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:893
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 980 of file libmesh.C.

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

981 {
982  // Make sure the command line parser is ready for use
983  libmesh_assert(command_line.get());
984 
985  // Keep track of runtime queries, for later
986  for (const auto & entry : names)
987  {
988  // Keep track of runtime queries, for later. GetPot splits
989  // foo=bar into a separate name=value, so we can query for the
990  // name, but as far as PETSc is concerned that's one CLI
991  // argument. We'll store it that way.
992  const std::string stringvalue =
993  (*command_line)(entry, std::string());
994  add_command_line_name(entry+"="+stringvalue);
995  }
996 
997  // Check for multiple options (return the first that matches)
998  for (const auto & entry : names)
999  if (command_line->have_variable(entry))
1000  {
1001  value = (*command_line)(entry, value);
1002  break;
1003  }
1004 
1005  return value;
1006 }
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:893
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 1030 of file libmesh.C.

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

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

1031 {
1032  // Make sure the command line parser is ready for use
1033  libmesh_assert(command_line.get());
1034 
1035  // Keep track of runtime queries, for later
1037 
1038  // only if the variable exists on the command line
1039  if (command_line->have_variable(name))
1040  {
1041  unsigned size = command_line->vector_variable_size(name);
1042  vec.resize(size);
1043 
1044  for (unsigned i=0; i<size; ++i)
1045  vec[i] = (*command_line)(name, vec[i], i);
1046  }
1047 }
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:893

◆ 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 > &   
)

◆ connect_children()

void libMesh::connect_children ( const MeshBase mesh,
MeshBase::const_element_iterator  elem_it,
MeshBase::const_element_iterator  elem_end,
std::set< const Elem *, CompareElemIdsByLevel > &  connected_elements 
)

Definition at line 172 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().

176 {
177  // None of these parameters are used when !LIBMESH_ENABLE_AMR.
178  libmesh_ignore(mesh, elem_it, elem_end, connected_elements);
179 
180 #ifdef LIBMESH_ENABLE_AMR
181  // Our XdrIO output needs inactive local elements to not have any
182  // remote_elem children. Let's make sure that doesn't happen.
183  //
184  for (const auto & elem : as_range(elem_it, elem_end))
185  {
186  if (elem->has_children())
187  for (auto & child : elem->child_ref_range())
188  if (&child != remote_elem)
189  connected_elements.insert(&child);
190  }
191 #endif // LIBMESH_ENABLE_AMR
192 }
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:54

◆ connect_families()

void libMesh::connect_families ( std::set< const Elem *, CompareElemIdsByLevel > &  connected_elements,
const MeshBase mesh = nullptr 
)

Definition at line 195 of file mesh_communication.C.

References libMesh::MeshBase::elem_ptr(), libMesh::MeshBase::get_constraint_rows(), libMesh::DofObject::id(), libMesh::Elem::interior_parent(), libmesh_assert(), mesh, libMesh::Elem::node_ref_range(), libMesh::Elem::parent(), libMesh::MeshBase::query_elem_ptr(), remote_elem, and libMesh::Elem::total_family_tree().

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

197 {
198  // mesh was an optional parameter for API backwards compatibility
199  if (mesh && !mesh->get_constraint_rows().empty())
200  {
201  // We start with the constraint connections, not ancestors,
202  // because we don't need constraining nodes of elements'
203  // ancestors' constrained nodes.
204  const auto & constraint_rows = mesh->get_constraint_rows();
205 
206  std::unordered_set<const Elem *> constraining_nodes_elems;
207  for (const Elem * elem : connected_elements)
208  {
209  for (const Node & node : elem->node_ref_range())
210  {
211  auto it = constraint_rows.find(&node);
212  // Retain all elements containing constraining nodes
213  if (it != constraint_rows.end())
214  for (auto & p : it->second)
215  {
216  const Elem * constraining_elem = p.first.first;
217  libmesh_assert(constraining_elem ==
218  mesh->elem_ptr(constraining_elem->id()));
219  constraining_nodes_elems.insert(constraining_elem);
220  }
221  }
222  }
223 
224  connected_elements.insert(constraining_nodes_elems.begin(),
225  constraining_nodes_elems.end());
226  }
227 
228 #ifdef LIBMESH_ENABLE_AMR
229 
230  // Because our set is sorted by ascending level, we can traverse it
231  // in reverse order, adding parents as we go, and end up with all
232  // ancestors added. This is safe for std::set where insert doesn't
233  // invalidate iterators.
234  //
235  // This only works because we do *not* cache
236  // connected_elements.rend(), whose value can change when we insert
237  // elements which are sorted before the original rend.
238  //
239  // We're also going to get subactive descendents here, when any
240  // exist. We're iterating in the wrong direction to do that
241  // non-recursively, so we'll cop out and rely on total_family_tree.
242  // Iterating backwards does mean that we won't be querying the newly
243  // inserted subactive elements redundantly.
244 
245  std::set<const Elem *, CompareElemIdsByLevel>::reverse_iterator
246  elem_rit = connected_elements.rbegin();
247 
248  for (; elem_rit != connected_elements.rend(); ++elem_rit)
249  {
250  const Elem * elem = *elem_rit;
251  libmesh_assert(elem);
252 
253  // We let ghosting functors worry about only active elements,
254  // but the remote processor needs all its semilocal elements'
255  // ancestors and active semilocal elements' descendants too.
256  const Elem * parent = elem->parent();
257  if (parent)
258  connected_elements.insert (parent);
259 
260  auto total_family_insert = [& connected_elements](const Elem * e)
261  {
262  if (e->active() && e->has_children())
263  {
264  std::vector<const Elem *> subactive_family;
265  e->total_family_tree(subactive_family);
266  for (const auto & f : subactive_family)
267  {
269  connected_elements.insert(f);
270  }
271  }
272  };
273 
274  total_family_insert(elem);
275 
276  // We also need any interior parents on this mesh, which will
277  // then need their own ancestors and descendants.
278  const Elem * interior_parent = elem->interior_parent();
279 
280  // Don't try to grab interior parents from other meshes, e.g. if
281  // this was a BoundaryMesh associated with a separate Mesh.
282 
283  // We can't test this if someone's using the pre-mesh-ptr API
284  libmesh_assert(!interior_parent || mesh);
285 
286  if (interior_parent &&
287  interior_parent == mesh->query_elem_ptr(interior_parent->id()) &&
288  !connected_elements.count(interior_parent))
289  {
290  connected_elements.insert (interior_parent);
291  total_family_insert(interior_parent);
292  }
293  }
294 
295 # ifdef DEBUG
296  // Let's be paranoid and make sure that all our ancestors
297  // really did get inserted. I screwed this up the first time
298  // by caching rend, and I can easily imagine screwing it up in
299  // the future by changing containers.
300  for (const auto & elem : connected_elements)
301  {
302  libmesh_assert(elem);
303  const Elem * parent = elem->parent();
304  if (parent)
305  libmesh_assert(connected_elements.count(parent));
306  }
307 # endif // DEBUG
308 
309 #endif // LIBMESH_ENABLE_AMR
310 }
const Elem * parent() const
Definition: elem.h:2867
constraint_rows_type & get_constraint_rows()
Definition: mesh_base.h:1683
A Node is like a Point, but with more information.
Definition: node.h:52
const Elem * interior_parent() const
Definition: elem.C:994
This is the base class from which all geometric element types are derived.
Definition: elem.h:94
MeshBase & mesh
dof_id_type id() const
Definition: dof_object.h:823
libmesh_assert(ctx)
virtual const Elem * elem_ptr(const dof_id_type i) const =0
virtual const Elem * query_elem_ptr(const dof_id_type i) const =0
void total_family_tree(std::vector< const Elem *> &family, bool reset=true) const
Same as the family_tree() member, but also adds any subactive descendants.
Definition: elem.C:1741
const RemoteElem * remote_elem
Definition: remote_elem.C:54

◆ 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 243 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().

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

◆ 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 1112 of file type_vector.h.

References cross_norm_sq(), and std::sqrt().

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

1114 {
1115  return std::sqrt(cross_norm_sq(b,c));
1116 }
ADRealEigenVector< T, D, asd > sqrt(const ADRealEigenVector< T, D, asd > &)
Definition: type_vector.h:53
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:1091

◆ 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 1091 of file type_vector.h.

Referenced by cross_norm().

1093 {
1094  T z = b(0)*c(1) - b(1)*c(0);
1095 
1096 #if LIBMESH_DIM == 3
1097  T x = b(1)*c(2) - b(2)*c(1),
1098  y = b(0)*c(2) - b(2)*c(0);
1099  return x*x + y*y + z*z;
1100 #else
1101  return z*z;
1102 #endif
1103 }

◆ 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 1050 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(), and main().

1051 {
1053 
1054  static bool called = false;
1055 
1056  // Check the command line. Since the command line is
1057  // unchanging it is sufficient to do this only once.
1058  if (!called)
1059  {
1060  called = true;
1061 
1062 #ifdef LIBMESH_HAVE_PETSC
1063  if (libMesh::on_command_line ("--use-petsc"))
1065 #endif
1066 
1067 #ifdef LIBMESH_TRILINOS_HAVE_AZTECOO
1068  if (libMesh::on_command_line ("--use-trilinos") ||
1069  libMesh::on_command_line ("--disable-petsc"))
1071 #endif
1072 
1073 #ifdef LIBMESH_HAVE_EIGEN
1074  if (libMesh::on_command_line ("--use-eigen" ) ||
1075 #if defined(LIBMESH_HAVE_MPI)
1076  // If the user bypassed MPI, we disable PETSc and Trilinos
1077  // too
1078  libMesh::on_command_line ("--disable-mpi") ||
1079 #endif
1080  libMesh::on_command_line ("--disable-petsc"))
1082 #endif
1083 
1084 #ifdef LIBMESH_HAVE_LASPACK
1085  if (libMesh::on_command_line ("--use-laspack" ) ||
1086 #if defined(LIBMESH_HAVE_MPI)
1087  // If the user bypassed MPI, we disable PETSc and Trilinos
1088  // too
1089  libMesh::on_command_line ("--disable-mpi") ||
1090 #endif
1091  libMesh::on_command_line ("--disable-petsc"))
1093 #endif
1094 
1095  if (libMesh::on_command_line ("--disable-laspack") &&
1096  libMesh::on_command_line ("--disable-trilinos") &&
1097  libMesh::on_command_line ("--disable-eigen") &&
1098  (
1099 #if defined(LIBMESH_HAVE_MPI)
1100  // If the user bypassed MPI, we disable PETSc too
1101  libMesh::on_command_line ("--disable-mpi") ||
1102 #endif
1103  libMesh::on_command_line ("--disable-petsc")))
1105  }
1106 
1107 
1109 }
libmesh_assert(ctx)
bool initialized()
Checks that library initialization has been done.
Definition: libmesh.C:266
bool on_command_line(std::string arg)
Definition: libmesh.C:924
SolverPackage _solver_package
The default solver package to use.
Definition: libmesh.C:248

◆ demangle()

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

Mostly system independent demangler.

Definition at line 261 of file print_trace.C.

References libMesh::Quality::name().

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

262 {
263  int status = 0;
264  std::string ret = name;
265 
266  // Actually do the demangling
267  char * demangled_name = abi::__cxa_demangle(name, 0, 0, &status);
268 
269  // If demangling returns non-nullptr, save the result in a string.
270  if (demangled_name)
271  ret = demangled_name;
272 
273  // According to cxxabi.h docs, the caller is responsible for
274  // deallocating memory.
275  std::free(demangled_name);
276 
277  return ret;
278 }
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 821 of file libmesh.C.

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

822 {
823 #if !defined(LIBMESH_HAVE_FEENABLEEXCEPT) && defined(LIBMESH_HAVE_XMMINTRIN_H)
824  static int flags = 0;
825 #endif
826 
827  if (on)
828  {
829 #ifdef LIBMESH_HAVE_FEENABLEEXCEPT
830  feenableexcept(FE_DIVBYZERO | FE_INVALID);
831 #elif LIBMESH_HAVE_XMMINTRIN_H
832  flags = _MM_GET_EXCEPTION_MASK(); // store the flags
833  _MM_SET_EXCEPTION_MASK(flags & ~_MM_MASK_INVALID);
834 #endif
835 
836 #if LIBMESH_HAVE_DECL_SIGACTION
837  struct sigaction new_action, old_action;
838 
839  // Set up the structure to specify the new action.
840  new_action.sa_sigaction = libmesh_handleFPE;
841  sigemptyset (&new_action.sa_mask);
842  new_action.sa_flags = SA_SIGINFO;
843 
844  sigaction (SIGFPE, nullptr, &old_action);
845  if (old_action.sa_handler != SIG_IGN)
846  sigaction (SIGFPE, &new_action, nullptr);
847 #endif
848  }
849  else
850  {
851 #ifdef LIBMESH_HAVE_FEDISABLEEXCEPT
852  fedisableexcept(FE_DIVBYZERO | FE_INVALID);
853 #elif LIBMESH_HAVE_XMMINTRIN_H
854  _MM_SET_EXCEPTION_MASK(flags);
855 #endif
856  signal(SIGFPE, SIG_DFL);
857  }
858 }

◆ enableSEGV()

void libMesh::enableSEGV ( bool  on)

Toggle libMesh reporting of segmentation faults.

Definition at line 863 of file libmesh.C.

864 {
865 #if LIBMESH_HAVE_DECL_SIGACTION
866  static struct sigaction old_action;
867  static bool was_on = false;
868 
869  if (on)
870  {
871  struct sigaction new_action;
872  was_on = true;
873 
874  // Set up the structure to specify the new action.
875  new_action.sa_sigaction = libmesh_handleSEGV;
876  sigemptyset (&new_action.sa_mask);
877  new_action.sa_flags = SA_SIGINFO;
878 
879  sigaction (SIGSEGV, &new_action, &old_action);
880  }
881  else if (was_on)
882  {
883  was_on = false;
884  sigaction (SIGSEGV, &old_action, nullptr);
885  }
886 #else
887  libmesh_error_msg("System call sigaction not supported.");
888 #endif
889 }

◆ err()

OStreamProxy libMesh::err ( std::cerr  )

◆ example_one_factory()

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

◆ fe_fdm_deriv() [1/2]

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 744 of file fe.C.

References libmesh_assert(), and Real.

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

754 {
755  libmesh_assert(elem);
756 
757  libmesh_assert_less (j, LIBMESH_DIM);
758 
759  // cheat by using finite difference approximations:
760  const Real eps = 1.e-6;
761  Point pp = p, pm = p;
762 
763  switch (j)
764  {
765  // d()/dxi
766  case 0:
767  {
768  pp(0) += eps;
769  pm(0) -= eps;
770  break;
771  }
772 
773  // d()/deta
774  case 1:
775  {
776  pp(1) += eps;
777  pm(1) -= eps;
778  break;
779  }
780 
781  // d()/dzeta
782  case 2:
783  {
784  pp(2) += eps;
785  pm(2) -= eps;
786  break;
787  }
788 
789  default:
790  libmesh_error_msg("Invalid derivative index j = " << j);
791  }
792 
793  return (shape_func(elem, order, i, pp, add_p_level) -
794  shape_func(elem, order, i, pm, add_p_level))/2./eps;
795 }
libmesh_assert(ctx)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ fe_fdm_deriv() [2/2]

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 799 of file fe.C.

References Real.

807 {
808  libmesh_assert_less (j, LIBMESH_DIM);
809 
810  // cheat by using finite difference approximations:
811  const Real eps = 1.e-6;
812  Point pp = p, pm = p;
813 
814  switch (j)
815  {
816  // d()/dxi
817  case 0:
818  {
819  pp(0) += eps;
820  pm(0) -= eps;
821  break;
822  }
823 
824  // d()/deta
825  case 1:
826  {
827  pp(1) += eps;
828  pm(1) -= eps;
829  break;
830  }
831 
832  // d()/dzeta
833  case 2:
834  {
835  pp(2) += eps;
836  pm(2) -= eps;
837  break;
838  }
839 
840  default:
841  libmesh_error_msg("Invalid derivative index j = " << j);
842  }
843 
844  return (shape_func(type, order, i, pp) -
845  shape_func(type, order, i, pm))/2./eps;
846 }
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

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

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/2]

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< 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/2]

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 851 of file fe.C.

References Real.

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

861 {
862  // cheat by using finite difference approximations:
863  const Real eps = 1.e-5;
864  Point pp = p, pm = p;
865  unsigned int deriv_j = 0;
866 
867  switch (j)
868  {
869  // d^2() / dxi^2
870  case 0:
871  {
872  pp(0) += eps;
873  pm(0) -= eps;
874  deriv_j = 0;
875  break;
876  }
877 
878  // d^2() / dxi deta
879  case 1:
880  {
881  pp(1) += eps;
882  pm(1) -= eps;
883  deriv_j = 0;
884  break;
885  }
886 
887  // d^2() / deta^2
888  case 2:
889  {
890  pp(1) += eps;
891  pm(1) -= eps;
892  deriv_j = 1;
893  break;
894  }
895 
896  // d^2()/dxidzeta
897  case 3:
898  {
899  pp(2) += eps;
900  pm(2) -= eps;
901  deriv_j = 0;
902  break;
903  } // d^2()/deta^2
904 
905  // d^2()/detadzeta
906  case 4:
907  {
908  pp(2) += eps;
909  pm(2) -= eps;
910  deriv_j = 1;
911  break;
912  }
913 
914  // d^2()/dzeta^2
915  case 5:
916  {
917  pp(2) += eps;
918  pm(2) -= eps;
919  deriv_j = 2;
920  break;
921  }
922 
923  default:
924  libmesh_error_msg("Invalid shape function derivative j = " << j);
925  }
926 
927  return (deriv_func(elem, order, i, deriv_j, pp, add_p_level) -
928  deriv_func(elem, order, i, deriv_j, pm, add_p_level))/2./eps;
929 }
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ fe_fdm_second_deriv() [2/2]

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 934 of file fe.C.

References Real.

943 {
944  // cheat by using finite difference approximations:
945  const Real eps = 1.e-5;
946  Point pp = p, pm = p;
947  unsigned int deriv_j = 0;
948 
949  switch (j)
950  {
951  // d^2() / dxi^2
952  case 0:
953  {
954  pp(0) += eps;
955  pm(0) -= eps;
956  deriv_j = 0;
957  break;
958  }
959 
960  // d^2() / dxi deta
961  case 1:
962  {
963  pp(1) += eps;
964  pm(1) -= eps;
965  deriv_j = 0;
966  break;
967  }
968 
969  // d^2() / deta^2
970  case 2:
971  {
972  pp(1) += eps;
973  pm(1) -= eps;
974  deriv_j = 1;
975  break;
976  }
977 
978  // d^2()/dxidzeta
979  case 3:
980  {
981  pp(2) += eps;
982  pm(2) -= eps;
983  deriv_j = 0;
984  break;
985  } // d^2()/deta^2
986 
987  // d^2()/detadzeta
988  case 4:
989  {
990  pp(2) += eps;
991  pm(2) -= eps;
992  deriv_j = 1;
993  break;
994  }
995 
996  // d^2()/dzeta^2
997  case 5:
998  {
999  pp(2) += eps;
1000  pm(2) -= eps;
1001  deriv_j = 2;
1002  break;
1003  }
1004 
1005  default:
1006  libmesh_error_msg("Invalid shape function derivative j = " << j);
1007  }
1008 
1009  return (deriv_func(type, order, i, deriv_j, pp) -
1010  deriv_func(type, order, i, deriv_j, pm))/2./eps;
1011 }
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

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

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/2]

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< 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:243

◆ 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:244

◆ if()

libMesh::if ( subdm  )

Definition at line 78 of file petsc_dm_wrapper.C.

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

Referenced by 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(), and libMesh::Nemesis_IO_Helper::write_element_values().

79  {
80  ierr = DMShellCreate(PetscObjectComm((PetscObject) dm), subdm);
81  CHKERRQ(ierr);
82 
83  // Set the DM embedding dimension to help PetscDS (Discrete System)
84  ierr = DMSetCoordinateDim(*subdm, p_ctx->mesh_dim);
85  CHKERRQ(ierr);
86 
87  // Now set the function pointers for the subDM
88  // Some DMShellGet* functions only exist with PETSc >= 3.12.0.
89 
90  // Set Coarsen function pointer
91 #if PETSC_VERSION_LESS_THAN(3,12,0)
92  if (dm->ops->coarsen)
93  {
94  ierr = DMShellSetCoarsen(*subdm, dm->ops->coarsen);
95  CHKERRQ(ierr);
96  }
97 #else
98  PetscErrorCode (*coarsen)(DM,MPI_Comm,DM*) = nullptr;
99  ierr = DMShellGetCoarsen(dm, &coarsen);
100  CHKERRQ(ierr);
101  if (coarsen)
102  {
103  ierr = DMShellSetCoarsen(*subdm, coarsen);
104  CHKERRQ(ierr);
105  }
106 #endif
107 
108  // Set Refine function pointer
109 #if PETSC_VERSION_LESS_THAN(3,12,0)
110  if (dm->ops->refine)
111  {
112  ierr = DMShellSetRefine(*subdm, dm->ops->refine);
113  CHKERRQ(ierr);
114  }
115 #else
116  PetscErrorCode (*refine)(DM,MPI_Comm,DM*) = nullptr;
117  ierr = DMShellGetRefine(dm, &refine);
118  CHKERRQ(ierr);
119 
120  if (refine)
121  {
122  ierr = DMShellSetRefine(*subdm, refine);
123  CHKERRQ(ierr);
124  }
125 #endif
126 
127  // Set Interpolation function pointer
128 #if PETSC_VERSION_LESS_THAN(3,12,0)
129  if (dm->ops->createinterpolation)
130  {
131  ierr = DMShellSetCreateInterpolation(*subdm, dm->ops->createinterpolation);
132  CHKERRQ(ierr);
133  }
134 #else
135  PetscErrorCode (*interp)(DM,DM,Mat*,Vec*) = nullptr;
136  ierr = DMShellGetCreateInterpolation(dm, &interp);
137  CHKERRQ(ierr);
138  if (interp)
139  {
140  ierr = DMShellSetCreateInterpolation(*subdm, interp);
141  CHKERRQ(ierr);
142  }
143 #endif
144 
145  // Set Restriction function pointer
146 #if PETSC_VERSION_LESS_THAN(3,12,0)
147  if (dm->ops->createrestriction)
148  {
149  ierr = DMShellSetCreateRestriction(*subdm, dm->ops->createrestriction);
150  CHKERRQ(ierr);
151  }
152 #else
153  PetscErrorCode (*createrestriction)(DM,DM,Mat*) = nullptr;
154  ierr = DMShellGetCreateRestriction(dm, &createrestriction);
155  CHKERRQ(ierr);
156  if (createrestriction)
157  {
158  ierr = DMShellSetCreateRestriction(*subdm, createrestriction);
159  CHKERRQ(ierr);
160  }
161 #endif
162 
163  // Set CreateSubDM function pointer
164 #if PETSC_VERSION_LESS_THAN(3,12,0)
165  if (dm->ops->createsubdm)
166  {
167  ierr = DMShellSetCreateSubDM(*subdm, dm->ops->createsubdm);
168  CHKERRQ(ierr);
169  }
170 #else
171  PetscErrorCode (*createsubdm)(DM,PetscInt,const PetscInt[],IS*,DM*) = nullptr;
172  ierr = DMShellGetCreateSubDM(dm, &createsubdm);
173  CHKERRQ(ierr);
174  if (createsubdm)
175  {
176  ierr = DMShellSetCreateSubDM(*subdm, createsubdm);
177  CHKERRQ(ierr);
178  }
179 #endif
180  // Set Context pointer
181  if (ctx)
182  {
183  ierr = DMShellSetContext(*subdm, ctx);
184  CHKERRQ(ierr);
185  }
186 #if PETSC_VERSION_LESS_THAN(3,11,0)
187  // Lastly, Compute the subsection for the subDM
188  ierr = DMCreateSubDM_Section_Private(dm, numFields, fields, is, subdm);
189  CHKERRQ(ierr);
190 #else
191  ierr = DMCreateSectionSubDM(dm, numFields, fields, is, subdm);
192  CHKERRQ(ierr);
193 #endif
194  }
PetscErrorCode PetscInt const PetscInt IS DM * subdm
PetscDMContext * p_ctx
PetscErrorCode PetscInt numFields
PetscErrorCode PetscInt const PetscInt IS * is
PetscErrorCode PetscInt const PetscInt fields[]
CHKERRQ(ierr)
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 111 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< libMesh::Number >::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(), HDGProblem::assemble(), 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::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(), 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< libMesh::Number >::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::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::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< libMesh::Number >::get_row(), libMesh::Nemesis_IO_Helper::get_ss_param_global(), 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::DenseMatrix< Real >::operator!=(), libMesh::ConstFEMFunction< Output >::operator()(), Integrate::operator()(), libMesh::CompositeFEMFunction< Output >::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::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(), 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::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::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::DofMap::set_nonlocal_dof_objects(), 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(), 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::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::RBEIMEvaluation::write_out_interior_basis_functions(), libMesh::RBEIMEvaluation::write_out_node_basis_functions(), libMesh::RBEIMEvaluation::write_out_projected_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().

112 {
113  return IntRange<decltype(sizable.size())>(0, sizable.size());
114 }

◆ 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 121 of file int_range.h.

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

122 {
123  return {vec.first_local_index(), vec.last_local_index()};
124 }

◆ 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 266 of file libmesh.C.

References libMesh::libMeshPrivateData::_is_initialized.

Referenced by libMesh::PetscVector< libMesh::Number >::_get_array(), libMesh::PetscVector< libMesh::Number >::_restore_array(), libMesh::DistributedVector< T >::abs(), libMesh::LaspackVector< T >::abs(), libMesh::EigenSparseVector< T >::abs(), libMesh::EigenSparseMatrix< T >::add(), libMesh::LaspackMatrix< T >::add(), libMesh::EpetraMatrix< T >::add(), libMesh::DistributedVector< T >::add(), libMesh::LaspackVector< T >::add(), libMesh::EigenSparseVector< T >::add(), libMesh::PetscMatrix< libMesh::Number >::add(), libMesh::PetscMatrix< libMesh::Number >::add_block_matrix(), libMesh::EigenSparseMatrix< T >::add_matrix(), libMesh::LaspackMatrix< T >::add_matrix(), libMesh::EpetraMatrix< T >::add_matrix(), libMesh::PetscMatrix< libMesh::Number >::add_matrix(), libMesh::EigenSparseLinearSolver< T >::clear(), libMesh::LaspackLinearSolver< T >::clear(), libMesh::AztecLinearSolver< T >::clear(), libMesh::SlepcEigenSolver< libMesh::Number >::clear(), libMesh::PetscShellMatrix< T >::clear(), libMesh::TaoOptimizationSolver< T >::clear(), libMesh::NloptOptimizationSolver< T >::clear(), libMesh::PetscNonlinearSolver< Number >::clear(), libMesh::LaspackMatrix< T >::clear(), libMesh::PetscLinearSolver< Number >::clear(), libMesh::LaspackVector< T >::clear(), libMesh::EpetraVector< T >::clear(), libMesh::PetscVector< libMesh::Number >::clear(), libMesh::PetscMatrix< libMesh::Number >::clear(), libMesh::DistributedVector< T >::close(), libMesh::LaspackVector< T >::close(), libMesh::LaspackMatrix< T >::close(), libMesh::EigenSparseVector< T >::close(), libMesh::EpetraVector< T >::close(), libMesh::EpetraMatrix< T >::closed(), libMesh::PetscMatrix< libMesh::Number >::closed(), libMesh::EpetraMatrix< T >::col_start(), libMesh::PetscMatrix< libMesh::Number >::col_start(), libMesh::EpetraMatrix< T >::col_stop(), libMesh::PetscMatrix< libMesh::Number >::col_stop(), 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::PetscMatrix< libMesh::Number >::get_local_size(), libMesh::EpetraMatrix< T >::get_row(), libMesh::PetscMatrix< libMesh::Number >::get_row(), libMesh::EigenSparseLinearSolver< T >::init(), libMesh::LaspackLinearSolver< T >::init(), libMesh::AztecLinearSolver< T >::init(), libMesh::SlepcEigenSolver< libMesh::Number >::init(), libMesh::PetscShellMatrix< T >::init(), libMesh::NoxNonlinearSolver< Number >::init(), libMesh::TaoOptimizationSolver< T >::init(), libMesh::EigenSparseMatrix< T >::init(), libMesh::NloptOptimizationSolver< T >::init(), libMesh::LaspackMatrix< T >::init(), libMesh::PetscNonlinearSolver< Number >::init(), libMesh::EpetraMatrix< T >::init(), libMesh::DistributedVector< T >::init(), libMesh::PetscLinearSolver< Number >::init(), libMesh::EigenSparseVector< T >::init(), libMesh::PetscMatrix< libMesh::Number >::init(), libMesh::PetscVector< libMesh::Number >::init(), libMesh::DistributedVector< T >::l1_norm(), libMesh::EigenSparseVector< T >::l1_norm(), libMesh::EpetraMatrix< T >::l1_norm(), libMesh::PetscMatrix< libMesh::Number >::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::PetscMatrix< libMesh::Number >::linfty_norm(), libMesh::PetscMatrix< libMesh::Number >::local_m(), libMesh::PetscMatrix< libMesh::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::PetscMatrix< libMesh::Number >::m(), libMesh::PetscVector< libMesh::Number >::map_global_to_local_index(), libMesh::PetscMatrix< libMesh::Number >::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::PetscMatrix< libMesh::Number >::n(), 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::EpetraMatrix< T >::operator()(), libMesh::EpetraVector< T >::operator()(), libMesh::PetscMatrix< libMesh::Number >::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< libMesh::Number >::print_matlab(), libMesh::SparseMatrix< ValOut >::print_matlab(), libMesh::EpetraMatrix< T >::print_personal(), libMesh::PetscMatrix< libMesh::Number >::print_personal(), libMesh::SparseMatrix< ValOut >::read_matlab(), libMesh::NumericVector< Number >::readable(), libMesh::PetscMatrix< libMesh::Number >::reset_preallocation(), libMesh::EpetraMatrix< T >::row_start(), libMesh::PetscMatrix< libMesh::Number >::row_start(), libMesh::EpetraMatrix< T >::row_stop(), libMesh::PetscMatrix< libMesh::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::DistributedVector< T >::set(), libMesh::LaspackVector< T >::set(), libMesh::EigenSparseVector< T >::set(), libMesh::PetscMatrix< libMesh::Number >::set(), 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::EpetraMatrix< T >::zero(), libMesh::EpetraVector< T >::zero(), libMesh::PetscMatrix< libMesh::Number >::zero(), and libMesh::PetscMatrix< libMesh::Number >::zero_rows().

267 {
269 }
bool _is_initialized
Flag that tells if init() has been called.
Definition: libmesh.C:247

◆ 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(const FEType &, const Elem *)   
)

◆ INSTANTIATE_INF_FE_MBRF() [17/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [18/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [19/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [20/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [21/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [22/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [23/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [24/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [25/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [26/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [27/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [28/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [29/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [30/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [31/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() [32/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() [33/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() [34/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() [35/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() [36/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() [37/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [38/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [39/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [40/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [41/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [42/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [43/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [44/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [45/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [46/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [47/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [48/69]

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

◆ INSTANTIATE_INF_FE_MBRF() [49/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() [50/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() [51/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() [52/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() [53/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() [54/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() [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 }

◆ 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 = static_cast<Order>(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  default:
365  {
366  // By default the element solution _is_ nodal, so just
367  // copy the portion relevant to the nodal solution.
368  // (this is the whole nodal solution for true Lagrange
369  // elements, but a smaller part for "L2 Lagrange"
370  libmesh_assert_less_equal(nodal_soln.size(), elem_soln.size());
371  for (const auto i : index_range(nodal_soln))
372  nodal_soln[i] = elem_soln[i];
373 
374  return;
375  }
376  }
377  }
378 
379 
380 
381 
382  default:
383  {
384  // By default the element solution _is_ nodal, so just copy
385  // the portion relevant to the nodal solution. (this is the
386  // whole nodal solution for true Lagrange elements, but a
387  // smaller part for "L2 Lagrange"
388  libmesh_assert_less_equal(nodal_soln.size(), elem_soln.size());
389  for (const auto i : index_range(nodal_soln))
390  nodal_soln[i] = elem_soln[i];
391 
392  return;
393  }
394  }
395 }
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:111

◆ 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::LaspackVector< T >::add(), libMesh::EigenSparseVector< T >::add(), libMesh::PetscMatrix< libMesh::Number >::add(), libMesh::PetscVector< libMesh::Number >::add(), libMesh::PetscMatrix< libMesh::Number >::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::EigenSparseMatrix< T >::add_matrix(), libMesh::LaspackMatrix< T >::add_matrix(), libMesh::EpetraMatrix< T >::add_matrix(), libMesh::PetscMatrix< libMesh::Number >::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::DistributedMesh::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(), HDGProblem::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(), 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::DistributedVector< T >::close(), libMesh::LaspackVector< T >::close(), libMesh::LaspackMatrix< T >::close(), libMesh::EigenSparseVector< T >::close(), libMesh::EpetraVector< T >::close(), libMesh::EpetraMatrix< T >::close(), libMesh::EpetraMatrix< T >::closed(), libMesh::PetscMatrix< libMesh::Number >::closed(), libMesh::Elem::coarsen(), libMesh::MeshRefinement::coarsen_elements(), libMesh::FEGenericBase< FEOutputType< T >::type >::coarsened_dof_values(), libMesh::EpetraMatrix< T >::col_start(), libMesh::PetscMatrix< libMesh::Number >::col_start(), libMesh::EpetraMatrix< T >::col_stop(), libMesh::PetscMatrix< libMesh::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(), 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_families(), 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::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::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(), 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::Elem::Elem(), 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::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::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(), fptr(), 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::CondensedEigenSystem::get_condensed_matrix_A(), libMesh::CondensedEigenSystem::get_condensed_matrix_B(), 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(), 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::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::PetscMatrix< libMesh::Number >::get_local_size(), 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< libMesh::Number >::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_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::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::InfFE< Dim, T_radial, T_map >::inf_compute_constraints(), libMesh::InfFE< Dim, T_radial, T_map >::inf_compute_node_constraints(), libMesh::AdaptiveTimeSolver::init(), libMesh::PetscShellMatrix< T >::init(), libMesh::DiagonalMatrix< T >::init(), libMesh::AnalyticFunction< Output >::init(), libMesh::PointLocatorTree::init(), libMesh::QComposite< QSubCell >::init(), libMesh::EigenSparseMatrix< T >::init(), libMesh::LaspackMatrix< T >::init(), libMesh::MeshFunction::init(), libMesh::DistributedVector< T >::init(), libMesh::EpetraMatrix< T >::init(), libMesh::EpetraVector< T >::init(), libMesh::PetscVector< libMesh::Number >::init(), libMesh::PetscMatrix< libMesh::Number >::init(), libMesh::System::init(), HDGProblem::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), L2System::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::InfFE< Dim, T_radial, T_map >::init_radial_shape_functions(), libMesh::FESubdivision::init_shape_functions(), libMesh::InfFE< Dim, T_radial, T_map >::init_shape_functions(), libMesh::FEXYZ< Dim >::init_shape_functions(), 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::Xdr::is_eof(), libMesh::Elem::is_mid_infinite_edge_node(), libMesh::Poly2TriTriangulator::is_refine_boundary_allowed(), libMesh::DifferentiablePhysics::is_time_evolving(), 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::PetscVector< libMesh::Number >::l1_norm(), libMesh::PetscMatrix< libMesh::Number >::l1_norm(), libMesh::DenseMatrix< Real >::l1_norm(), libMesh::DistributedVector< T >::l2_norm(), libMesh::LaspackVector< T >::l2_norm(), libMesh::EigenSparseVector< T >::l2_norm(), libMesh::EpetraVector< T >::l2_norm(), libMesh::PetscVector< libMesh::Number >::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_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::PetscVector< libMesh::Number >::linfty_norm(), libMesh::PetscMatrix< libMesh::Number >::linfty_norm(), libMesh::DenseMatrix< Real >::linfty_norm(), libMesh::System::local_dof_indices(), libMesh::InfPrism12::local_edge_node(), libMesh::InfHex16::local_edge_node(), libMesh::InfHex18::local_edge_node(), libMesh::PetscMatrix< libMesh::Number >::local_m(), libMesh::PetscMatrix< libMesh::Number >::local_n(), libMesh::NumericVector< Number >::local_relative_compare(), libMesh::InfQuad6::local_side_node(), libMesh::InfHex16::local_side_node(), libMesh::Prism::local_side_node(), libMesh::Pyramid::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::InfHex18::local_side_node(), libMesh::Prism20::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::PetscMatrix< libMesh::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::EpetraMatrix< T >::mat(), libMesh::PetscMatrix< libMesh::Number >::mat(), libMesh::PetscMatrix< libMesh::Number >::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::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(), libMesh::SumShellMatrix< T >::n(), libMesh::EigenSparseMatrix< T >::n(), libMesh::LaspackMatrix< T >::n(), libMesh::EpetraMatrix< T >::n(), libMesh::PetscMatrix< libMesh::Number >::n(), libMesh::MeshBase::n_elem_on_proc(), libMesh::FrequencySystem::n_frequencies(), libMesh::MeshBase::n_nodes_on_proc(), libMesh::QBase::n_points(), libMesh::ParallelObject::n_processors(), libMesh::InfFE< Dim, T_radial, T_map >::n_quadrature_points(), libMesh::FE< Dim, LAGRANGE_VEC >::n_quadrature_points(), libMesh::PeriodicBoundaries::neighbor(), libMesh::InfFE< Dim, T_radial, T_map >::nodal_soln(), libMesh::FE< Dim, LAGRANGE_VEC >::nodal_soln(), 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::AdaptiveTimeSolver::nonlocal_residual(), libMesh::EigenTimeSolver::nonlocal_residual(), libMesh::DofMap::old_dof_indices(), on_command_line(), libMesh::Xdr::open(), libMesh::CompareElemIdsByLevel::operator()(), SolutionFunction< dim >::operator()(), libMesh::SiblingCoupling::operator()(), AugmentSparsityOnInterface::operator()(), libMesh::Predicates::abstract_multi_predicate< T >::operator()(), libMesh::WrappedFunction< Output >::operator()(), libMesh::AnalyticFunction< Output >::operator()(), libMesh::GhostPointNeighbors::operator()(), libMesh::WeightedPatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::PointLocatorNanoflann::operator()(), libMesh::PointLocatorTree::operator()(), libMesh::ElemCutter::operator()(), libMesh::PointNeighborCoupling::operator()(), libMesh::DefaultCoupling::operator()(), libMesh::EigenSparseMatrix< T >::operator()(), libMesh::PatchRecoveryErrorEstimator::EstimateError::operator()(), libMesh::MeshFunction::operator()(), libMesh::LaspackMatrix< T >::operator()(), libMesh::DistributedVector< T >::operator()(), libMesh::LaspackVector< T >::operator()(), libMesh::EigenSparseVector< T >::operator()(), libMesh::EpetraMatrix< T >::operator()(), libMesh::BuildProjectionList::operator()(), libMesh::EpetraVector< T >::operator()(), libMesh::BoundaryProjectSolution::operator()(), variant_filter_iterator< Predicate, Type, ReferenceType, PointerType, ConstType, ConstReferenceType, ConstPointerType >::Pred< IterType, PredType >::operator()(), libMesh::PetscMatrix< libMesh::Number >::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::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::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::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(), HDGProblem::pressure_volume_jacobian(), libMesh::SparseMatrix< ValOut >::print(), libMesh::NumericVector< Number >::print(), libMesh::NumericVector< Number >::print_global(), libMesh::QBase::print_info(), libMesh::PetscMatrix< libMesh::Number >::print_matlab(), libMesh::PetscVector< libMesh::Number >::print_matlab(), libMesh::SparseMatrix< ValOut >::print_matlab(), libMesh::EpetraMatrix< T >::print_personal(), libMesh::PetscMatrix< libMesh::Number >::print_personal(), 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::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::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::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< libMesh::Number >::reset_preallocation(), libMesh::PetscLinearSolver< Number >::restrict_solve_to_is_local_size(), libMesh::MemoryHistoryData::retrieve_vectors(), libMesh::MemoryHistoryData::rewrite_stored_solution(), libMesh::FileHistoryData::rewrite_stored_solution(), libMesh::EpetraMatrix< T >::row_start(), libMesh::PetscMatrix< libMesh::Number >::row_start(), libMesh::EpetraMatrix< T >::row_stop(), libMesh::PetscMatrix< libMesh::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::PetscVector< libMesh::Number >::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::DistributedVector< T >::set(), libMesh::LaspackVector< T >::set(), libMesh::EigenSparseVector< T >::set(), libMesh::PetscMatrix< libMesh::Number >::set(), libMesh::Elem::set_child(), 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::SFCPartitioner::set_sfc_type(), libMesh::SystemNorm::set_type(), libMesh::SystemNorm::set_weight(), setup(), libMesh::Singleton::setup(), 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::Poly2TriTriangulator::should_refine_elem(), libMesh::Side< SideType, ParentType >::Side(), libMesh::FEMContext::side_fe_reinit(), libMesh::AdaptiveTimeSolver::side_residual(), libMesh::EigenTimeSolver::side_residual(), libMesh::SideEdge< EdgeType, ParentType >::SideEdge(), 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::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(), 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::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::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::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::EpetraMatrix< T >::zero(), libMesh::EpetraVector< T >::zero(), libMesh::PetscVector< libMesh::Number >::zero(), libMesh::PetscMatrix< libMesh::Number >::zero(), and libMesh::PetscMatrix< libMesh::Number >::zero_rows().

◆ libmesh_cast_int()

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

Definition at line 623 of file libmesh_common.h.

624 {
625  // we use the less redundantly named libMesh::cast_int now
626  return cast_int<Tnew>(oldvar);
627 }

◆ libmesh_cast_ptr()

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

Definition at line 595 of file libmesh_common.h.

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

◆ 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 192 of file libmesh_common.h.

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

◆ 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 = static_cast<Order>(order + add_p_level*elem->p_level());
58 
59  switch (totalorder)
60  {
61  // Constant shape functions
62  case CONSTANT:
63  {
64  switch (dim)
65  {
66  case 2:
67  {
68  libmesh_assert_equal_to(elem_soln.size(), 2);
69  for (unsigned int n = 0; n < n_nodes; n++)
70  {
71  nodal_soln[2 * n] = elem_soln[0];
72  nodal_soln[1 + 2 * n] = elem_soln[1];
73  }
74  return;
75  }
76  case 3:
77  {
78  libmesh_assert_equal_to(elem_soln.size(), 3);
79  for (unsigned int n = 0; n < n_nodes; n++)
80  {
81  nodal_soln[3 * n] = elem_soln[0];
82  nodal_soln[1 + 3 * n] = elem_soln[1];
83  nodal_soln[2 + 3 * n] = elem_soln[2];
84  }
85  return;
86  }
87  default:
88  libmesh_error_msg(
89  "The monomial_vec_nodal_soln helper should only be called for 2 and 3 dimensions");
90  }
91  }
92 
93  // For other orders, do interpolation at the nodes
94  // explicitly.
95  default:
96  {
97  // FEType object to be passed to various FEInterface functions below.
98  FEType fe_type(order, MONOMIAL);
99 
100  const unsigned int n_sf = FEInterface::n_shape_functions(fe_type, elem);
101 
102  std::vector<Point> refspace_nodes;
103  FEBase::get_refspace_nodes(elem_type, refspace_nodes);
104  libmesh_assert_equal_to(refspace_nodes.size(), n_nodes);
105  libmesh_assert_equal_to(elem_soln.size(), n_sf * dim);
106 
107  for (unsigned int d = 0; d < static_cast<unsigned int>(dim); d++)
108  for (unsigned int n = 0; n < n_nodes; n++)
109  {
110 
111  // Zero before summation
112  nodal_soln[d + dim * n] = 0;
113 
114  // u_i = Sum (alpha_i phi_i)
115  for (unsigned int i = 0; i < n_sf; i++)
116  nodal_soln[d + dim * n] += elem_soln[d + dim * i] *
117  FEInterface::shape(fe_type, elem, i, refspace_nodes[n]);
118  }
119 
120  return;
121  } // default
122  } // switch
123 }
124 } // 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  for (unsigned int n=0; n<n_nodes; n++)
78  for (int d=0; d != dim; ++d)
79  {
80  const unsigned int ni=n*dim+d;
81  nodal_soln[ni] = 0;
82 
83  // u_i = Sum (alpha_i phi_i); we're here only looking
84  // at vector components in direction d
85  for (unsigned int i=0; i<n_sf; i++)
86  nodal_soln[ni] += elem_soln[i*dim+d] *
87  FEInterface::shape(fe_type, elem, i, refspace_nodes[n]);
88  }
89 
90 }// void hierarchic_vec_nodal_soln
91 
92 } // 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 = static_cast<Order>(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(), FIRST, 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  std::vector<Number> & nodal_soln,
47  const bool add_p_level)
48 {
49  const unsigned int n_nodes = elem->n_nodes();
50  const ElemType elem_type = elem->type();
51 
52  const Order totalorder = static_cast<Order>(order + add_p_level*elem->p_level());
53 
54  nodal_soln.resize(n_nodes*dim);
55 
56  FEType fe_type(order, NEDELEC_ONE);
57  FEType p_refined_fe_type(totalorder, NEDELEC_ONE);
58 
59  switch (totalorder)
60  {
61  case FIRST:
62  {
63  switch (elem_type)
64  {
65  case TRI6:
66  case TRI7:
67  {
68  libmesh_assert_equal_to (elem_soln.size(), 3);
69 
70  if (elem_type == TRI6)
71  libmesh_assert_equal_to (nodal_soln.size(), 6*2);
72  else
73  libmesh_assert_equal_to (nodal_soln.size(), 7*2);
74  break;
75  }
76  case QUAD8:
77  case QUAD9:
78  {
79  libmesh_assert_equal_to (elem_soln.size(), 4);
80 
81  if (elem_type == QUAD8)
82  libmesh_assert_equal_to (nodal_soln.size(), 8*2);
83  else
84  libmesh_assert_equal_to (nodal_soln.size(), 9*2);
85  break;
86  }
87  case TET10:
88  case TET14:
89  {
90  libmesh_assert_equal_to (elem_soln.size(), 6);
91  if (elem_type == TET10)
92  libmesh_assert_equal_to (nodal_soln.size(), 10*3);
93  else
94  libmesh_assert_equal_to (nodal_soln.size(), 14*3);
95 
96  break;
97  }
98  case HEX20:
99  case HEX27:
100  {
101  libmesh_assert_equal_to (elem_soln.size(), 12);
102 
103  if (elem_type == HEX20)
104  libmesh_assert_equal_to (nodal_soln.size(), 20*3);
105  else
106  libmesh_assert_equal_to (nodal_soln.size(), 27*3);
107 
108  break;
109  }
110 
111  default:
112  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(elem_type) << " selected for NEDELEC_ONE FE family!");
113 
114  } // switch(elem_type)
115 
116  const unsigned int n_sf =
117  FEInterface::n_shape_functions(fe_type, elem);
118 
119  std::vector<Point> refspace_nodes;
120  FEVectorBase::get_refspace_nodes(elem_type,refspace_nodes);
121  libmesh_assert_equal_to (refspace_nodes.size(), n_nodes);
122 
123 
124  // Need to create new fe object so the shape function has the FETransformation
125  // applied to it.
126  std::unique_ptr<FEVectorBase> vis_fe = FEVectorBase::build(dim, p_refined_fe_type);
127 
128  const std::vector<std::vector<RealGradient>> & vis_phi = vis_fe->get_phi();
129 
130  vis_fe->reinit(elem,&refspace_nodes);
131 
132  for (unsigned int n = 0; n < n_nodes; n++)
133  {
134  libmesh_assert_equal_to (elem_soln.size(), n_sf);
135 
136  // Zero before summation
137  for (int d = 0; d < dim; d++)
138  {
139  nodal_soln[dim*n+d] = 0;
140  }
141 
142  // u = Sum (u_i phi_i)
143  for (unsigned int i=0; i<n_sf; i++)
144  {
145  for (int d = 0; d < dim; d++)
146  {
147  nodal_soln[dim*n+d] += elem_soln[i]*(vis_phi[i][n](d));
148  }
149  }
150  }
151 
152  return;
153  } // case FIRST
154 
155  default:
156  libmesh_error_msg("ERROR: Invalid total order " << Utility::enum_to_string(totalorder) << " selected for NEDELEC_ONE FE family!");
157 
158  }//switch (totalorder)
159 
160  return;
161 } // nedelec_one_nodal_soln
162 
163 
164 unsigned int nedelec_one_n_dofs(const ElemType t, const Order o)
165 {
166  switch (o)
167  {
168  case FIRST:
169  {
170  switch (t)
171  {
172  case TRI6:
173  case TRI7:
174  return 3;
175 
176  case QUAD8:
177  case QUAD9:
178  return 4;
179 
180  case TET10:
181  case TET14:
182  return 6;
183 
184  case HEX20:
185  case HEX27:
186  return 12;
187 
188  case INVALID_ELEM:
189  return 0;
190 
191  default:
192  libmesh_error_msg("ERROR: Bad ElemType = " << Utility::enum_to_string(t) << " for " << Utility::enum_to_string(o) << " order approximation!");
193  }
194  }
195 
196  default:
197  libmesh_error_msg("ERROR: Invalid Order " << Utility::enum_to_string(o) << " selected for NEDELEC_ONE FE family!");
198  }
199 }
200 
201 
202 
203 
204 unsigned int nedelec_one_n_dofs_at_node(const ElemType t,
205  const Order o,
206  const unsigned int n)
207 {
208  switch (o)
209  {
210  case FIRST:
211  {
212  switch (t)
213  {
214  case TRI6:
215  {
216  switch (n)
217  {
218  case 0:
219  case 1:
220  case 2:
221  return 0;
222  case 3:
223  case 4:
224  case 5:
225  return 1;
226 
227  default:
228  libmesh_error_msg("ERROR: Invalid node ID " << n);
229  }
230  }
231  case TRI7:
232  {
233  switch (n)
234  {
235  case 0:
236  case 1:
237  case 2:
238  case 6:
239  return 0;
240  case 3:
241  case 4:
242  case 5:
243  return 1;
244 
245  default:
246  libmesh_error_msg("ERROR: Invalid node ID " << n);
247  }
248  }
249  case QUAD8:
250  {
251  switch (n)
252  {
253  case 0:
254  case 1:
255  case 2:
256  case 3:
257  return 0;
258  case 4:
259  case 5:
260  case 6:
261  case 7:
262  return 1;
263 
264  default:
265  libmesh_error_msg("ERROR: Invalid node ID " << n);
266  }
267  }
268  case QUAD9:
269  {
270  switch (n)
271  {
272  case 0:
273  case 1:
274  case 2:
275  case 3:
276  case 8:
277  return 0;
278  case 4:
279  case 5:
280  case 6:
281  case 7:
282  return 1;
283 
284  default:
285  libmesh_error_msg("ERROR: Invalid node ID " << n);
286  }
287  }
288  case TET10:
289  {
290  switch (n)
291  {
292  case 0:
293  case 1:
294  case 2:
295  case 3:
296  return 0;
297  case 4:
298  case 5:
299  case 6:
300  case 7:
301  case 8:
302  case 9:
303  return 1;
304 
305  default:
306  libmesh_error_msg("ERROR: Invalid node ID " << n);
307  }
308  }
309  case TET14:
310  {
311  switch (n)
312  {
313  case 0:
314  case 1:
315  case 2:
316  case 3:
317  case 10:
318  case 11:
319  case 12:
320  case 13:
321  return 0;
322  case 4:
323  case 5:
324  case 6:
325  case 7:
326  case 8:
327  case 9:
328  return 1;
329 
330  default:
331  libmesh_error_msg("ERROR: Invalid node ID " << n);
332  }
333  }
334  case HEX20:
335  {
336  switch (n)
337  {
338  case 0:
339  case 1:
340  case 2:
341  case 3:
342  case 4:
343  case 5:
344  case 6:
345  case 7:
346  return 0;
347  case 8:
348  case 9:
349  case 10:
350  case 11:
351  case 12:
352  case 13:
353  case 14:
354  case 15:
355  case 16:
356  case 17:
357  case 18:
358  case 19:
359  return 1;
360 
361  default:
362  libmesh_error_msg("ERROR: Invalid node ID " << n);
363  }
364  }
365  case HEX27:
366  {
367  switch (n)
368  {
369  case 0:
370  case 1:
371  case 2:
372  case 3:
373  case 4:
374  case 5:
375  case 6:
376  case 7:
377  case 20:
378  case 21:
379  case 22:
380  case 23:
381  case 24:
382  case 25:
383  case 26:
384  return 0;
385  case 8:
386  case 9:
387  case 10:
388  case 11:
389  case 12:
390  case 13:
391  case 14:
392  case 15:
393  case 16:
394  case 17:
395  case 18:
396  case 19:
397  return 1;
398 
399  default:
400  libmesh_error_msg("ERROR: Invalid node ID " << n);
401  }
402  }
403 
404  case INVALID_ELEM:
405  return 0;
406 
407  default:
408  libmesh_error_msg("ERROR: Bad ElemType = " << Utility::enum_to_string(t) << " for " << Utility::enum_to_string(o) << " order approximation!");
409  }
410  }
411 
412  default:
413  libmesh_error_msg("ERROR: Invalid Order " << Utility::enum_to_string(o) << " selected for NEDELEC_ONE FE family!");
414  }
415 }
416 
417 
418 
419 #ifdef LIBMESH_ENABLE_AMR
420 void nedelec_one_compute_constraints (DofConstraints & /*constraints*/,
421  DofMap & /*dof_map*/,
422  const unsigned int /*variable_number*/,
423  const Elem * libmesh_dbg_var(elem),
424  const unsigned Dim)
425 {
426  // Only constrain elements in 2,3D.
427  if (Dim == 1)
428  return;
429 
430  libmesh_assert(elem);
431 
432  libmesh_not_implemented();
433 } // nedelec_one_compute_constraints()
434 #endif // #ifdef LIBMESH_ENABLE_AMR
435 
436 } // 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(), FIRST, 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  std::vector<Number> & nodal_soln,
51  const bool add_p_level)
52 {
53  const unsigned int n_nodes = elem->n_nodes();
54  const ElemType elem_type = elem->type();
55 
56  const Order totalorder = static_cast<Order>(order + add_p_level*elem->p_level());
57 
58  nodal_soln.resize(n_nodes*dim);
59 
60  FEType fe_type(order, RAVIART_THOMAS);
61  FEType p_refined_fe_type(totalorder, RAVIART_THOMAS);
62 
63  switch (totalorder)
64  {
65  case FIRST:
66  {
67  switch (elem_type)
68  {
69  case TRI6:
70  case TRI7:
71  {
72  libmesh_assert_equal_to (elem_soln.size(), 3);
73 
74  if (elem_type == TRI6)
75  libmesh_assert_equal_to (nodal_soln.size(), 6*2);
76  else
77  libmesh_assert_equal_to (nodal_soln.size(), 7*2);
78  break;
79  }
80  case QUAD8:
81  case QUAD9:
82  {
83  libmesh_assert_equal_to (elem_soln.size(), 4);
84 
85  if (elem_type == QUAD8)
86  libmesh_assert_equal_to (nodal_soln.size(), 8*2);
87  else
88  libmesh_assert_equal_to (nodal_soln.size(), 9*2);
89  break;
90  }
91  case TET14:
92  {
93  libmesh_assert_equal_to (elem_soln.size(), 4);
94  libmesh_assert_equal_to (nodal_soln.size(), 14*3);
95  break;
96  }
97  case HEX27:
98  {
99  libmesh_assert_equal_to (elem_soln.size(), 6);
100  libmesh_assert_equal_to (nodal_soln.size(), 27*3);
101  break;
102  }
103 
104  default:
105  libmesh_error_msg("ERROR: Invalid ElemType " << Utility::enum_to_string(elem_type) << " selected for RAVIART_THOMAS FE family!");
106 
107  } // switch(elem_type)
108 
109  const unsigned int n_sf =
110  FEInterface::n_shape_functions(fe_type, elem);
111 
112  std::vector<Point> refspace_nodes;
113  FEVectorBase::get_refspace_nodes(elem_type,refspace_nodes);
114  libmesh_assert_equal_to (refspace_nodes.size(), n_nodes);
115 
116 
117  // Need to create new fe object so the shape function has the FETransformation
118  // applied to it.
119  std::unique_ptr<FEVectorBase> vis_fe = FEVectorBase::build(dim, p_refined_fe_type);
120 
121  const std::vector<std::vector<RealGradient>> & vis_phi = vis_fe->get_phi();
122 
123  vis_fe->reinit(elem,&refspace_nodes);
124 
125  for (unsigned int n = 0; n < n_nodes; n++)
126  {
127  libmesh_assert_equal_to (elem_soln.size(), n_sf);
128 
129  // Zero before summation
130  for (int d = 0; d < dim; d++)
131  {
132  nodal_soln[dim*n+d] = 0;
133  }
134 
135  // u = Sum (u_i phi_i)
136  for (unsigned int i=0; i<n_sf; i++)
137  {
138  for (int d = 0; d < dim; d++)
139  {
140  nodal_soln[dim*n+d] += elem_soln[i]*(vis_phi[i][n](d));
141  }
142  }
143  }
144 
145  return;
146  } // case FIRST
147 
148  default:
149  libmesh_error_msg("ERROR: Invalid total order " << Utility::enum_to_string(totalorder) << " selected for RAVIART_THOMAS FE family!");
150 
151  }//switch (totalorder)
152 
153  return;
154 } // raviart_thomas_nodal_soln
155 
156 
157 unsigned int raviart_thomas_n_dofs(const ElemType t, const Order o)
158 {
159  switch (o)
160  {
161  case FIRST:
162  {
163  switch (t)
164  {
165  case TRI6:
166  case TRI7:
167  return 3;
168 
169  case QUAD8:
170  case QUAD9:
171  return 4;
172 
173  case TET14:
174  return 4;
175 
176  case HEX27:
177  return 6;
178 
179  case INVALID_ELEM:
180  return 0;
181 
182  default:
183  libmesh_error_msg("ERROR: Bad ElemType = " << Utility::enum_to_string(t) << " for " << Utility::enum_to_string(o) << " order approximation!");
184  }
185  }
186 
187  default:
188  libmesh_error_msg("ERROR: Invalid Order " << Utility::enum_to_string(o) << " selected for RAVIART_THOMAS FE family!");
189  }
190 }
191 
192 
193 
194 
195 unsigned int raviart_thomas_n_dofs_at_node(const ElemType t,
196  const Order o,
197  const unsigned int n)
198 {
199  switch (o)
200  {
201  case FIRST:
202  {
203  switch (t)
204  {
205  case TRI6:
206  {
207  switch (n)
208  {
209  case 0:
210  case 1:
211  case 2:
212  return 0;
213  case 3:
214  case 4:
215  case 5:
216  return 1;
217 
218  default:
219  libmesh_error_msg("ERROR: Invalid node ID " << n);
220  }
221  }
222  case TRI7:
223  {
224  switch (n)
225  {
226  case 0:
227  case 1:
228  case 2:
229  case 6:
230  return 0;
231  case 3:
232  case 4:
233  case 5:
234  return 1;
235 
236  default:
237  libmesh_error_msg("ERROR: Invalid node ID " << n);
238  }
239  }
240  case QUAD8:
241  {
242  switch (n)
243  {
244  case 0:
245  case 1:
246  case 2:
247  case 3:
248  return 0;
249  case 4:
250  case 5:
251  case 6:
252  case 7:
253  return 1;
254 
255  default:
256  libmesh_error_msg("ERROR: Invalid node ID " << n);
257  }
258  }
259  case QUAD9:
260  {
261  switch (n)
262  {
263  case 0:
264  case 1:
265  case 2:
266  case 3:
267  case 8:
268  return 0;
269  case 4:
270  case 5:
271  case 6:
272  case 7:
273  return 1;
274 
275  default:
276  libmesh_error_msg("ERROR: Invalid node ID " << n);
277  }
278  }
279  case TET14:
280  {
281  switch (n)
282  {
283  case 0:
284  case 1:
285  case 2:
286  case 3:
287  case 4:
288  case 5:
289  case 6:
290  case 7:
291  case 8:
292  case 9:
293  return 0;
294  case 10:
295  case 11:
296  case 12:
297  case 13:
298  return 1;
299 
300  default:
301  libmesh_error_msg("ERROR: Invalid node ID " << n);
302  }
303  }
304  case HEX27:
305  {
306  switch (n)
307  {
308  case 0:
309  case 1:
310  case 2:
311  case 3:
312  case 4:
313  case 5:
314  case 6:
315  case 7:
316  case 8:
317  case 9:
318  case 10:
319  case 11:
320  case 12:
321  case 13:
322  case 14:
323  case 15:
324  case 16:
325  case 17:
326  case 18:
327  case 19:
328  case 26:
329  return 0;
330  case 20:
331  case 21:
332  case 22:
333  case 23:
334  case 24:
335  case 25:
336  return 1;
337 
338  default:
339  libmesh_error_msg("ERROR: Invalid node ID " << n);
340  }
341  }
342 
343  case INVALID_ELEM:
344  return 0;
345 
346  default:
347  libmesh_error_msg("ERROR: Bad ElemType = " << Utility::enum_to_string(t) << " for " << Utility::enum_to_string(o) << " order approximation!");
348  }
349  }
350 
351  default:
352  libmesh_error_msg("ERROR: Invalid Order " << Utility::enum_to_string(o) << " selected for RAVIART_THOMAS FE family!");
353  }
354 }
355 
356 
357 
358 #ifdef LIBMESH_ENABLE_AMR
359 void raviart_thomas_compute_constraints (DofConstraints & /*constraints*/,
360  DofMap & /*dof_map*/,
361  const unsigned int /*variable_number*/,
362  const Elem * libmesh_dbg_var(elem),
363  const unsigned Dim)
364 {
365  // Only constrain elements in 2,3D.
366  if (Dim == 1)
367  return;
368 
369  libmesh_assert(elem);
370 
371  libmesh_not_implemented();
372 } // raviart_thomas_compute_constraints()
373 #endif // #ifdef LIBMESH_ENABLE_AMR
374 
375 } // 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 64 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().

74 {
75  const ElemType type = elem->type();
76 
77  // Just loop on the harder-to-optimize cases
78  if (type != HEX8 && type != HEX27)
79  {
81  (elem,o,p,v,add_p_level);
82  return;
83  }
84 
85 #if LIBMESH_DIM == 3
86 
87  const unsigned int n_sf = v.size();
88 
89  switch (o)
90  {
91  // linear Lagrange shape functions
92  case FIRST:
93  {
94  switch (type)
95  {
96  // trilinear hexahedral shape functions
97  case HEX8:
98  case HEX20:
99  case HEX27:
100  {
101  libmesh_assert_less_equal (n_sf, 8);
102 
103  // 0 1 2 3 4 5 6 7
104  static const unsigned int i0[] = {0, 1, 1, 0, 0, 1, 1, 0};
105  static const unsigned int i1[] = {0, 0, 1, 1, 0, 0, 1, 1};
106  static const unsigned int i2[] = {0, 0, 0, 0, 1, 1, 1, 1};
107 
108  for (auto qp : index_range(p))
109  {
110  const Point & q_point = p[qp];
111  // Compute hex shape functions as a tensor-product
112  const Real xi = q_point(0);
113  const Real eta = q_point(1);
114  const Real zeta = q_point(2);
115 
116  // one_d_shapes[dim][i] = phi_i(p(dim))
117  Real one_d_shapes[3][2] = {
122  {fe_lagrange_1D_linear_shape(0, zeta),
123  fe_lagrange_1D_linear_shape(1, zeta)}};
124 
125  for (unsigned int i : make_range(n_sf))
126  v[i][qp] = one_d_shapes[0][i0[i]] *
127  one_d_shapes[1][i1[i]] *
128  one_d_shapes[2][i2[i]];
129  }
130  return;
131  }
132 
133  default:
134  libmesh_error(); // How did we get here?
135  }
136  }
137 
138 
139  // quadratic Lagrange shape functions
140  case SECOND:
141  {
142  switch (type)
143  {
144  // triquadratic hexahedral shape functions
145  case HEX8:
146 // TODO: refactor to optimize this
147 // libmesh_assert_msg(T == L2_LAGRANGE,
148 // "High order on first order elements only supported for L2 families");
149  libmesh_fallthrough();
150  case HEX27:
151  {
152  libmesh_assert_less_equal (n_sf, 27);
153 
154  // The only way to make any sense of this
155  // is to look at the mgflo/mg2/mgf documentation
156  // and make the cut-out cube!
157  // 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
158  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};
159  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};
160  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};
161 
162  for (auto qp : index_range(p))
163  {
164  const Point & q_point = p[qp];
165  // Compute hex shape functions as a tensor-product
166  const Real xi = q_point(0);
167  const Real eta = q_point(1);
168  const Real zeta = q_point(2);
169 
170  // linear_shapes[dim][i] = phi_i(p(dim))
171  Real one_d_shapes[3][3] = {
181 
182  for (unsigned int i : make_range(n_sf))
183  v[i][qp] = one_d_shapes[0][i0[i]] *
184  one_d_shapes[1][i1[i]] *
185  one_d_shapes[2][i2[i]];
186  }
187  return;
188  }
189 
190  default:
191  libmesh_error(); // How did we get here?
192  }
193  }
194 
195  // unsupported order
196  default:
197  libmesh_error_msg("ERROR: Unsupported 3D FE order on HEX!: " << o);
198  }
199 #else // LIBMESH_DIM != 3
200  libmesh_ignore(elem, o, p, v, add_p_level);
201  libmesh_not_implemented();
202 #endif // LIBMESH_DIM == 3
203 }
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:134
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:111
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 125 of file fe_rational.C.

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

130  { 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 147 of file fe_l2_hierarchic.C.

152  { 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 182 of file fe_side_hierarchic.C.

193 {
194  libmesh_error_msg("No side variables in 0D!");
195 }

◆ LIBMESH_FE_NODAL_SOLN() [5/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( L2_LAGRANGE  ,
lagrange_nodal_soln   
)

Definition at line 206 of file fe_l2_lagrange.C.

213  { return l2_lagrange_n_dofs(t, o); }

◆ LIBMESH_FE_NODAL_SOLN() [6/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( CLOUGH  ,
clough_nodal_soln   
)

Definition at line 244 of file fe_clough.C.

249  { return clough_n_dofs(t, o); }

◆ LIBMESH_FE_NODAL_SOLN() [7/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( HERMITE  ,
hermite_nodal_soln   
)

Definition at line 278 of file fe_hermite.C.

285  { return hermite_n_dofs(t, o); }

◆ LIBMESH_FE_NODAL_SOLN() [8/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( MONOMIAL  ,
monomial_nodal_soln   
)

Definition at line 365 of file fe_monomial.C.

References monomial_n_dofs().

370  { 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:30

◆ LIBMESH_FE_NODAL_SOLN() [9/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( XYZ  ,
xyz_nodal_soln   
)

Definition at line 373 of file fe_xyz.C.

References monomial_n_dofs().

378  { 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:30

◆ LIBMESH_FE_NODAL_SOLN() [10/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( BERNSTEIN  ,
bernstein_nodal_soln   
)

Definition at line 397 of file fe_bernstein.C.

402  { return bernstein_n_dofs(t, o); }

◆ LIBMESH_FE_NODAL_SOLN() [11/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( HIERARCHIC  ,
hierarchic_nodal_soln   
)

Definition at line 450 of file fe_hierarchic.C.

455  { return hierarchic_n_dofs(t, o); }

◆ LIBMESH_FE_NODAL_SOLN() [12/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( LAGRANGE  ,
lagrange_nodal_soln   
)

Definition at line 988 of file fe_lagrange.C.

995  { return lagrange_n_dofs(t, o); }

◆ LIBMESH_FE_NODAL_SOLN() [13/13]

libMesh::LIBMESH_FE_NODAL_SOLN ( SZABAB  ,
szabab_nodal_soln   
)

Definition at line 1272 of file fe_szabab.C.

1277  { return szabab_n_dofs(t, o); }

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [1/7]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( HIERARCHIC_VEC  )

Definition at line 130 of file fe_hierarchic_vec.C.

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

138 { FE<0,HIERARCHIC_VEC>::nodal_soln(elem, order, elem_soln, nodal_soln, add_p_level); }

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [2/7]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( L2_HIERARCHIC_VEC  )

Definition at line 164 of file fe_hierarchic_vec.C.

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

172 {
173  Real value = FE<0,HIERARCHIC>::shape( type, order, i, p );
174  return libMesh::RealGradient( value );
175 }
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() [3/7]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( MONOMIAL_VEC  )

Definition at line 173 of file fe_monomial_vec.C.

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

185 {
186  Real value = FE<0, MONOMIAL>::shape(type, order, i, p);
188 }
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() [4/7]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( RAVIART_THOMAS  )

Definition at line 447 of file fe_raviart.C.

454  { RAVIART_LOW_D_ERROR_MESSAGE }

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [5/7]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( NEDELEC_ONE  )

Definition at line 476 of file fe_nedelec_one.C.

482  { NEDELEC_LOW_D_ERROR_MESSAGE }

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [6/7]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( LAGRANGE_VEC  )

Definition at line 668 of file fe_lagrange_vec.C.

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

676 { FE<0,LAGRANGE_VEC>::nodal_soln(elem, order, elem_soln, nodal_soln, add_p_level); }

◆ LIBMESH_FE_SIDE_NODAL_SOLN() [7/7]

libMesh::LIBMESH_FE_SIDE_NODAL_SOLN ( L2_LAGRANGE_VEC  )

Definition at line 702 of file fe_lagrange_vec.C.

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

710 {
711  Real value = FE<0,LAGRANGE>::shape( type, order, i, p );
712  return libMesh::RealGradient( value );
713 }
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 516 of file libmesh_common.h.

Referenced by add_cube_convex_hull_to_mesh(), 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::TensorValue< T >::extrinsic_rotation_matrix(), libMesh::MeshCommunication::find_global_indices(), libMesh::MeshTools::Modification::flatten(), libMesh::PetscMatrix< libMesh::Number >::init(), libMesh::System::init_data(), 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::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::System::project_vector(), libMesh::RBEIMEvaluation::rb_eim_solves(), libMesh::CheckpointIO::read_connectivity(), libMesh::SparseMatrix< ValOut >::read_matlab(), Biharmonic::JR::residual_and_jacobian(), 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(), InfFERadialTest::testSingleOrder(), WriteVecAndScalar::testWriteNemesis(), tetrahedralize_domain(), transform_mesh_and_plot(), 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(), and libMesh::RemoteElem::~RemoteElem().

516 { }

◆ libmesh_isinf() [1/2]

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

Definition at line 204 of file libmesh_common.h.

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

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

◆ libmesh_isinf() [2/2]

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

Definition at line 207 of file libmesh_common.h.

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

208 { 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 199 of file libmesh_common.h.

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

200 { 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 222 of file petsc_dm_wrapper.C.

References CHKERRQ(), libMesh::PetscDMContext::coarser_dm, libMesh::PetscDMContext::global_dm, ierr, libmesh_assert(), libmesh_petsc_DMCreateSubDM(), subdm, and libMesh::PetscDMContext::subfields.

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

223  {
224  libmesh_assert(dmc);
225  libmesh_assert(dmf);
226 
227  PetscErrorCode ierr;
228 
229  // Extract our context from the incoming dmf
230  void * ctx_f = nullptr;
231  ierr = DMShellGetContext(dmf, &ctx_f);CHKERRQ(ierr);
232  libmesh_assert(ctx_f);
233  PetscDMContext * p_ctx_f = static_cast<PetscDMContext*>(ctx_f);
234 
235  // First, ensure that there exists a coarse DM that we want to
236  // set. There ought to be as we created it while walking the
237  // hierarchy.
238  libmesh_assert(p_ctx_f->coarser_dm);
239  libmesh_assert(*(p_ctx_f->coarser_dm));
240 
241  // In situations using fieldsplit we need to provide a coarser
242  // DM which only has the relevant subfields in it. Since we
243  // create global DMs for each mesh level, we need to also create
244  // the subDMs. We do this by checking the number of fields. When
245  // less than all the fields are used, we need to create the
246  // proper subDMs. We get the number of fields and their names
247  // from the incoming fine DM and the global reference DM
248  PetscInt nfieldsf, nfieldsg;
249  char ** fieldnamesf;
250  char ** fieldnamesg;
251 
252  libmesh_assert(p_ctx_f->global_dm);
253  DM * globaldm = p_ctx_f->global_dm;
254  ierr = DMCreateFieldIS(dmf, &nfieldsf, &fieldnamesf, nullptr);
255  CHKERRQ(ierr);
256  ierr = DMCreateFieldIS(*globaldm, &nfieldsg, &fieldnamesg, nullptr);
257  CHKERRQ(ierr);
258 
259  // If the probed number of fields is less than the number of
260  // global fields, this amounts to PETSc 'indicating' to us we
261  // are doing FS. So, we must create subDMs for the coarser
262  // DMs.
263  if ( nfieldsf < nfieldsg )
264  {
265  p_ctx_f->subfields.clear();
266  p_ctx_f->subfields.resize(nfieldsf);
267 
268  // To select the subDM fields we match fine grid DM field
269  // names to their global DM counterparts. Since PETSc can
270  // internally reassign field numbering under a fieldsplit,
271  // we must extract subsections via the field names. This is
272  // admittedly gross, but c'est la vie.
273  for (int i = 0; i < nfieldsf ; i++)
274  {
275  for (int j = 0; j < nfieldsg ;j++)
276  if ( strcmp( fieldnamesg[j], fieldnamesf[i] ) == 0 )
277  p_ctx_f->subfields[i] = j;
278  }
279 
280  // Next, for the found fields we create a subDM
281  DM subdm;
282  libmesh_petsc_DMCreateSubDM(*(p_ctx_f->coarser_dm), nfieldsf,
283  p_ctx_f->subfields.data(), nullptr, &subdm);
284 
285  // Extract our coarse context from the created subDM so we
286  // can set its subfields for use in createInterp.
287  void * ctx_c = nullptr;
288  ierr = DMShellGetContext(subdm, &ctx_c);
289  CHKERRQ(ierr);
290  libmesh_assert(ctx_c);
291  PetscDMContext * p_ctx_c = static_cast<PetscDMContext*>(ctx_c);
292 
293  // propagate subfield info to subDM
294  p_ctx_c->subfields = p_ctx_f->subfields;
295 
296  // return created subDM to PETSc
297  *(dmc) = subdm;
298  }
299  else {
300  // No fieldsplit was requested so set the coarser DM to the
301  // global coarser DM.
302  *(dmc) = *(p_ctx_f->coarser_dm);
303  }
304 
305  return 0;
306  }
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.
CHKERRQ(ierr)

◆ 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 310 of file petsc_dm_wrapper.C.

References CHKERRQ(), libMesh::SparseMatrix< T >::create_submatrix(), libMesh::PetscDMContext::dof_vec, libMesh::PetscDMContext::global_dm, ierr, libMesh::PetscDMContext::K_interp_ptr, libMesh::PetscDMContext::K_sub_interp_ptr, libmesh_assert(), libMesh::PetscMatrix< T >::mat(), and libMesh::PetscDMContext::subfields.

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

312  {
313  libmesh_assert(dmc);
314  libmesh_assert(dmf);
315  libmesh_assert(mat);
316  libmesh_assert(vec); // Optional scaling (not needed for mg)
317 
318  // Get a communicator from incoming DM
319  PetscErrorCode ierr;
320  MPI_Comm comm;
321  PetscObjectGetComm((PetscObject)dmc, &comm);
322 
323  // Extract our coarse context from the incoming DM
324  void * ctx_c = nullptr;
325  ierr = DMShellGetContext(dmc, &ctx_c);
326  CHKERRQ(ierr);
327  libmesh_assert(ctx_c);
328  PetscDMContext * p_ctx_c = static_cast<PetscDMContext*>(ctx_c);
329 
330  // Extract our fine context from the incoming DM
331  void * ctx_f = nullptr;
332  ierr = DMShellGetContext(dmf, &ctx_f);CHKERRQ(ierr);
333  libmesh_assert(ctx_f);
334  PetscDMContext * p_ctx_f = static_cast<PetscDMContext*>(ctx_f);
335 
336  // Check for existing global projection matrix
337  libmesh_assert(p_ctx_c->K_interp_ptr);
338 
339  // If were doing fieldsplit we need to construct sub projection
340  // matrices. We compare the passed in number of DMs fields to a
341  // global DM in order to determine if a subprojection is needed.
342  PetscInt nfieldsf, nfieldsg;
343 
344  libmesh_assert(p_ctx_c->global_dm);
345  DM * globaldm = p_ctx_c->global_dm;
346 
347  ierr = DMCreateFieldIS(dmf, &nfieldsf, nullptr, nullptr);
348  CHKERRQ(ierr);
349  ierr = DMCreateFieldIS(*globaldm, &nfieldsg, nullptr, nullptr);
350  CHKERRQ(ierr);
351 
352  // If the probed number of fields is less than the number of
353  // global fields, this amounts to PETSc 'indicating' to us we
354  // are doing FS.
355  if ( nfieldsf < nfieldsg)
356  {
357  // Loop over the fields and merge their index sets.
358  std::vector<std::vector<numeric_index_type>> allrows,allcols;
359  std::vector<numeric_index_type> rows,cols;
360  allrows = p_ctx_f->dof_vec;
361  allcols = p_ctx_c->dof_vec;
362 
363  // For internal libmesh submat extraction need to merge all
364  // field dofs and then sort the vectors so that they match
365  // the Projection Matrix ordering
366  const int n_subfields = p_ctx_f->subfields.size();
367  if ( n_subfields >= 1 )
368  {
369  for (int i : p_ctx_f->subfields)
370  {
371  rows.insert(rows.end(), allrows[i].begin(), allrows[i].end());
372  cols.insert(cols.end(), allcols[i].begin(), allcols[i].end());
373  }
374  std::sort(rows.begin(),rows.end());
375  std::sort(cols.begin(),cols.end());
376  }
377 
378  // Now that we have merged the fine and coarse index sets
379  // were ready to make the submatrix and pass it off to PETSc
380  p_ctx_c->K_interp_ptr->create_submatrix (*p_ctx_c->K_sub_interp_ptr, rows, cols);
381 
382  // return to PETSc the created submatrix
383  *(mat) = p_ctx_c->K_sub_interp_ptr->mat();
384 
385  } // endif less incoming DM fields than global DM fields
386  else
387  {
388  // We are not doing fieldsplit, so return global projection
389  *(mat) = p_ctx_c->K_interp_ptr->mat();
390  }
391 
392  // Vec scaling isnt needed so were done.
393  *(vec) = LIBMESH_PETSC_NULLPTR;
394 
395  return 0;
396  } // end libmesh_petsc_DMCreateInterpolation
libmesh_assert(ctx)
CHKERRQ(ierr)

◆ 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 400 of file petsc_dm_wrapper.C.

References CHKERRQ(), ierr, libMesh::PetscDMContext::K_restrict_ptr, libmesh_assert(), and libMesh::PetscMatrix< T >::mat().

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

401  {
402  libmesh_assert(dmc);
403  libmesh_assert(dmf);
404  libmesh_assert(mat);
405 
406  PetscErrorCode ierr;
407 
408  // get a communicator from incoming DM
409  MPI_Comm comm;
410  PetscObjectGetComm((PetscObject)dmc, &comm);
411 
412  // extract our fine context from the incoming DM
413  void * ctx_f = nullptr;
414  ierr = DMShellGetContext(dmf, &ctx_f);CHKERRQ(ierr);
415  libmesh_assert(ctx_f);
416  PetscDMContext * p_ctx_f = static_cast<PetscDMContext*>(ctx_f);
417 
418  // check / give PETSc its matrix
419  libmesh_assert(p_ctx_f->K_restrict_ptr);
420  *(mat) = p_ctx_f->K_restrict_ptr->mat();
421 
422  return 0;
423  }
libmesh_assert(ctx)
CHKERRQ(ierr)

◆ 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_and_attach_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 200 of file petsc_dm_wrapper.C.

References CHKERRQ(), libMesh::PetscDMContext::finer_dm, ierr, libmesh_assert(), and p_ctx.

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

201  {
202  libmesh_assert(dmc);
203  libmesh_assert(dmf);
204 
205  PetscErrorCode ierr;
206 
207  // extract our context from the incoming dmc
208  void * ctx_c = nullptr;
209  ierr = DMShellGetContext(dmc, & ctx_c);CHKERRQ(ierr);
210  libmesh_assert(ctx_c);
211  PetscDMContext * p_ctx = static_cast<PetscDMContext * >(ctx_c);
212 
213  // check / set the finer DM
216  *(dmf) = *(p_ctx->finer_dm);
217 
218  return 0;
219  }
PetscDMContext * p_ctx
libmesh_assert(ctx)
CHKERRQ(ierr)

◆ libmesh_petsc_linesearch_shellfunc()

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

Definition at line 551 of file petsc_nonlinear_solver.C.

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

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

552  {
553  // No way to safety-check this cast, since we got a void *...
555  static_cast<PetscNonlinearSolver<Number> *> (ctx);
556 
557  libmesh_parallel_only(solver->comm());
558 
559  solver->linesearch_object->linesearch(linesearch);
560  return 0;
561  }
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
void * ctx

◆ 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 62 of file petsc_linear_solver.C.

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

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

63  {
64  void * ctx;
65  PetscErrorCode ierr = PCShellGetContext(pc,&ctx);CHKERRQ(ierr);
66  Preconditioner<Number> * preconditioner = static_cast<Preconditioner<Number> *>(ctx);
67 
68  PetscVector<Number> x_vec(x, preconditioner->comm());
69  PetscVector<Number> y_vec(y, preconditioner->comm());
70 
71  preconditioner->apply(x_vec,y_vec);
72 
73  return 0;
74  }
template class LIBMESH_EXPORT PetscVector< Number >
template class LIBMESH_EXPORT Preconditioner< Number >
CHKERRQ(ierr)
void * ctx

◆ 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 48 of file petsc_linear_solver.C.

References CHKERRQ(), ctx, ierr, libMesh::Preconditioner< T >::initialized(), and libMesh::Preconditioner< T >::setup().

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

49  {
50  void * ctx;
51  PetscErrorCode ierr = PCShellGetContext(pc,&ctx);CHKERRQ(ierr);
52  Preconditioner<Number> * preconditioner = static_cast<Preconditioner<Number> *>(ctx);
53 
54  libmesh_error_msg_if(!preconditioner->initialized(),
55  "Preconditioner not initialized! Make sure you call init() before solve!");
56 
57  preconditioner->setup();
58 
59  return 0;
60  }
template class LIBMESH_EXPORT Preconditioner< Number >
CHKERRQ(ierr)
void * ctx

◆ 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, ierr, and libMesh::PetscNonlinearSolver< T >::reuse_preconditioner_max_linear_its().

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

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

◆ libmesh_petsc_snes_fd_residual()

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

Definition at line 256 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::ResidualContext::ierr, libmesh_assert(), libmesh_petsc_snes_residual_helper(), 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().

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

◆ libmesh_petsc_snes_jacobian()

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

Definition at line 447 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::PetscMatrix< T >::close(), libMesh::ParallelObject::comm(), ctx, libMesh::System::current_local_solution, libMesh::DofMap::enforce_constraints_exactly(), libMesh::DofMap::enforce_constraints_on_jacobian(), libMesh::System::get_dof_map(), libMesh::ImplicitSystem::get_system_matrix(), ierr, libMesh::NonlinearImplicitSystem::ComputeJacobian::jacobian(), libMesh::NonlinearSolver< T >::jacobian, libMesh::NonlinearSolver< T >::jacobian_object, libmesh_assert(), libMesh::NonlinearSolver< T >::matvec, libMesh::NonlinearSolver< T >::residual_and_jacobian_object, libMesh::System::solution, libMesh::NonlinearSolver< T >::system(), and libMesh::System::update().

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

448  {
449  LOG_SCOPE("jacobian()", "PetscNonlinearSolver");
450 
451  PetscErrorCode ierr=0;
452 
454 
455  // No way to safety-check this cast, since we got a void *...
457  static_cast<PetscNonlinearSolver<Number> *> (ctx);
458 
459  libmesh_parallel_only(solver->comm());
460 
461  // Get the current iteration number from the snes object,
462  // store it in the PetscNonlinearSolver object for possible use
463  // by the user's Jacobian function.
464  {
465  PetscInt n_iterations = 0;
466  ierr = SNESGetIterationNumber(snes, &n_iterations);
467  LIBMESH_CHKERR2(solver->comm(),ierr);
468  solver->_current_nonlinear_iteration_number = cast_int<unsigned>(n_iterations);
469  }
470 
471  //-----------------------------------------------------------------------------
472  // if the user has provided both function pointers and objects only the pointer
473  // will be used, so catch that as an error
474  libmesh_error_msg_if(solver->jacobian && solver->jacobian_object,
475  "ERROR: cannot specify both a function and object to compute the Jacobian!");
476 
477  libmesh_error_msg_if(solver->matvec && solver->residual_and_jacobian_object,
478  "ERROR: cannot specify both a function and object to compute the combined Residual & Jacobian!");
479 
480  NonlinearImplicitSystem & sys = solver->system();
481 
482  PetscMatrix<Number> PC(pc, sys.comm());
483  PetscMatrix<Number> Jac(jac, sys.comm());
484  PetscVector<Number> & X_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
485  PetscVector<Number> X_global(x, sys.comm());
486 
487  // We already computed the Jacobian during the residual evaluation
488  if (solver->residual_and_jacobian_object)
489  {
490  auto & sys_mat = static_cast<PetscMatrix<Number> &>(sys.get_system_matrix());
491 
492  // We could be doing matrix-free
493  if (jac && jac != sys_mat.mat())
494  Jac.close();
495  if (pc && pc != sys_mat.mat())
496  PC.close();
497 
498  return ierr;
499  }
500 
501  // Set the dof maps
502  PC.attach_dof_map(sys.get_dof_map());
503  Jac.attach_dof_map(sys.get_dof_map());
504 
505  // Use the systems update() to get a good local version of the parallel solution
506  X_global.swap(X_sys);
507  sys.update();
508  X_global.swap(X_sys);
509 
510  // Enforce constraints (if any) exactly on the
511  // current_local_solution. This is the solution vector that is
512  // actually used in the computation of the residual below, and is
513  // not locked by debug-enabled PETSc the way that "x" is.
514  if (solver->_exact_constraint_enforcement)
515  sys.get_dof_map().enforce_constraints_exactly(sys, sys.current_local_solution.get());
516 
517  if (solver->_zero_out_jacobian)
518  PC.zero();
519 
520 
521  if (solver->jacobian != nullptr)
522  solver->jacobian(*sys.current_local_solution.get(), PC, sys);
523 
524  else if (solver->jacobian_object != nullptr)
525  solver->jacobian_object->jacobian(*sys.current_local_solution.get(), PC, sys);
526 
527  else if (solver->matvec != nullptr)
528  solver->matvec(*sys.current_local_solution.get(), nullptr, &PC, sys);
529 
530  else
531  libmesh_error_msg("Error! Unable to compute residual and/or Jacobian!");
532 
533  PC.close();
534  if (solver->_exact_constraint_enforcement)
535  {
536  sys.get_dof_map().enforce_constraints_on_jacobian(sys, &PC);
537  PC.close();
538  }
539 
540  Jac.close();
541 
542  return ierr;
543  }
template class LIBMESH_EXPORT PetscMatrix< Number >
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)
void * ctx

◆ libmesh_petsc_snes_mffd_interface()

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

Definition at line 354 of file petsc_nonlinear_solver.C.

References libMesh::ParallelObject::comm(), libMesh::PetscNonlinearSolver< T >::computing_base_vector(), ctx, ierr, libmesh_petsc_snes_mffd_residual(), n_threads(), 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().

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

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

◆ libmesh_petsc_snes_monitor()

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

Definition at line 145 of file petsc_nonlinear_solver.C.

References out.

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

146  {
147  //PetscErrorCode ierr=0;
148 
149  //if (its > 0)
150  libMesh::out << " NL step "
151  << std::setw(2) << its
152  << std::scientific
153  << ", |residual|_2 = " << fnorm
154  << std::endl;
155 
156  //return ierr;
157  return 0;
158  }
OStreamProxy out

◆ 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 582 of file petsc_nonlinear_solver.C.

References libMesh::ParallelObject::comm(), ierr, libmesh_assert(), 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().

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

◆ libmesh_petsc_snes_precheck()

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

Definition at line 662 of file petsc_nonlinear_solver.C.

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

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

663  {
664  LOG_SCOPE("precheck()", "PetscNonlinearSolver");
665 
666  PetscErrorCode ierr = 0;
667 
668  // PETSc almost certainly initializes these to false already, but
669  // it doesn't hurt to be explicit.
670  *changed = PETSC_FALSE;
671 
672  libmesh_assert(context);
673 
674  // Cast the context to a NonlinearSolver object.
676  static_cast<PetscNonlinearSolver<Number> *> (context);
677 
678  libmesh_parallel_only(solver->comm());
679 
680  // It's possible that we don't need to do anything at all, in
681  // that case return early...
682  if (!solver->precheck_object)
683  return ierr;
684 
685  // The user sets these flags in his/her postcheck function to
686  // indicate whether they changed something.
687  bool
688  petsc_changed = false;
689 
690  auto & sys = solver->system();
691  auto & x_sys = *cast_ptr<PetscVector<Number> *>(sys.solution.get());
692  PetscVector<Number> petsc_x(X, sys.comm());
693  PetscVector<Number> petsc_y(Y, sys.comm());
694 
695  // Use the systems update() to get a good local version of the parallel solution
696  petsc_x.swap(x_sys);
697  sys.update();
698  petsc_x.swap(x_sys);
699 
700  // Enforce constraints (if any) exactly on the
701  // current_local_solution. This is the solution vector that is
702  // actually used in the computation of residuals and Jacobians, and is
703  // not locked by debug-enabled PETSc the way that "x" is.
704  libmesh_assert(sys.current_local_solution.get());
705  auto & local_soln = *sys.current_local_solution.get();
706  if (solver->_exact_constraint_enforcement)
707  sys.get_dof_map().enforce_constraints_exactly(sys, &local_soln);
708 
709  solver->precheck_object->precheck(local_soln,
710  petsc_y,
711  petsc_changed,
712  sys);
713 
714  // Record whether the user changed the solution or the search direction.
715  if (petsc_changed)
716  *changed = PETSC_TRUE;
717 
718  return ierr;
719  }
template class LIBMESH_EXPORT PetscNonlinearSolver< Number >
template class LIBMESH_EXPORT PetscVector< Number >
libmesh_assert(ctx)

◆ libmesh_petsc_snes_residual()

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

Definition at line 173 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::ResidualContext::ierr, libmesh_assert(), libmesh_petsc_snes_residual_helper(), libMesh::NonlinearSolver< T >::matvec, 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().

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

◆ libmesh_petsc_snes_residual_helper()

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

Definition at line 54 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(), ierr, 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().

55 {
56  LOG_SCOPE("residual()", "PetscNonlinearSolver");
57 
58  PetscErrorCode ierr = 0;
59 
60  libmesh_assert(x);
62 
63  // No way to safety-check this cast, since we got a void *...
65  static_cast<PetscNonlinearSolver<Number> *> (ctx);
66 
67  libmesh_parallel_only(solver->comm());
68 
69  // Get the current iteration number from the snes object,
70  // store it in the PetscNonlinearSolver object for possible use
71  // by the user's residual function.
72  {
73  PetscInt n_iterations = 0;
74  ierr = SNESGetIterationNumber(snes, &n_iterations);
75  LIBMESH_CHKERR2(solver->comm(),ierr);
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, ierr);
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 185 of file libmesh_common.h.

Referenced by libMesh::FEMContext::_do_elem_position_set(), libMesh::TransientRBConstruction::add_IC_to_RB_space(), 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(), NumericVectorTest< DistributedVector< Number > >::Localize(), NumericVectorTest< DistributedVector< Number > >::LocalizeIndices(), 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(), NumericVectorTest< DistributedVector< Number > >::Norms(), libMesh::FEMSystem::numerical_jacobian(), NumericVectorTest< DistributedVector< Number > >::Operations(), libMesh::ContinuationSystem::solve_tangent(), SystemsTest::test2DProjectVectorFE(), SystemsTest::test3DProjectVectorFE(), MeshFunctionTest::test_p_level(), MeshFunctionTest::test_subdomain_id_sets(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), DefaultCouplingTest::testCoupling(), PointNeighborCouplingTest::testCoupling(), MeshInputTest::testDynaReadPatch(), ParsedFEMFunctionTest::testGradients(), FESideTest< order, family, elem_type >::testGradU(), FETest< order, family, elem_type >::testGradU(), FESideTest< order, family, elem_type >::testGradUComp(), FETest< order, family, elem_type >::testGradUComp(), ParsedFEMFunctionTest::testHessians(), FESideTest< order, family, elem_type >::testHessU(), FETest< order, family, elem_type >::testHessU(), FESideTest< order, family, elem_type >::testHessUComp(), FETest< order, family, elem_type >::testHessUComp(), ParsedFunctionTest::testInlineGetter(), ParsedFEMFunctionTest::testInlineGetter(), ParsedFunctionTest::testInlineSetter(), ParsedFEMFunctionTest::testInlineSetter(), ParallelPointTest::testMapUnionVec(), ParsedFEMFunctionTest::testNormals(), LumpedMassMatrixTest::testNumerics(), DiagonalMatrixTest::testNumerics(), DenseMatrixTest::testOuterProduct(), PeriodicBCTest::testPeriodicBC(), PetscVectorTest::testPetscOperations(), SystemsTest::testProjectCubeWithMeshFunction(), EquationSystemsTest::testRepartitionThenReinit(), SlitMeshRefinedSystemTest::testRestart(), 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(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), DenseMatrixTest::testSVD(), SlitMeshRefinedSystemTest::testSystem(), FESideTest< order, family, elem_type >::testU(), FETest< order, family, elem_type >::testU(), ParsedFunctionTest::testValues(), SparseMatrixTest< LaspackMatrix< Number > >::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(), SystemsTest::tripleValueTest(), 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().

185 { return a; }

◆ libmesh_real() [2/2]

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

Definition at line 189 of file libmesh_common.h.

References std::real().

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

◆ libmesh_terminate_handler()

void libMesh::libmesh_terminate_handler ( )

Definition at line 282 of file libmesh.C.

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

283 {
284  // If we have an active exception, it may have an error message that
285  // we should print.
286  libMesh::err << "libMesh terminating";
287  std::exception_ptr ex = std::current_exception();
288  if (ex)
289  {
290  try
291  {
292  std::rethrow_exception(ex);
293  }
294  catch (const std::exception & std_ex)
295  {
296  libMesh::err << ":\n" << std_ex.what();
297  }
298  }
299  libMesh::err << std::endl;
300 
301  // If this got called then we're probably crashing; let's print a
302  // stack trace. The trace files that are ultimately written depend on:
303  // 1.) Who throws the exception.
304  // 2.) Whether the C++ runtime unwinds the stack before the
305  // terminate_handler is called (this is implementation defined).
306  //
307  // The various cases are summarized in the table below:
308  //
309  // | libmesh exception | other exception
310  // -------------------------------------
311  // stack unwinds | A | B
312  // stack does not unwind | C | D
313  //
314  // Case A: There will be two stack traces in the file: one "useful"
315  // one, and one nearly empty one due to stack unwinding.
316  // Case B: You will get one nearly empty stack trace (not great, Bob!)
317  // Case C: You will get two nearly identical stack traces, ignore one of them.
318  // Case D: You will get one useful stack trace.
319  //
320  // Cases A and B (where the stack unwinds when an exception leaves
321  // main) appear to be non-existent in practice. I don't have a
322  // definitive list, but the stack does not unwind for GCC on either
323  // Mac or Linux. I think there's good reasons for this behavior too:
324  // it's much easier to get a stack trace when the stack doesn't
325  // unwind, for example.
327 
328  // We may care about performance data pre-crash; it would be sad to
329  // throw that away.
332 
333  // If we have MPI and it has been initialized, we need to be sure
334  // and call MPI_Abort instead of std::abort, so that the parallel
335  // job can die nicely.
336 #if defined(LIBMESH_HAVE_MPI)
337  int mpi_initialized;
338  MPI_Initialized (&mpi_initialized);
339 
340  if (mpi_initialized)
341  MPI_Abort(libMesh::GLOBAL_COMM_WORLD, 1);
342  else
343 #endif
344  // The system terminate_handler may do useful things, or the user
345  // may have set their own terminate handler that we want to call.
347 }
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:244
std::terminate_handler old_terminate_handler
Definition: libmesh.C:280
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   
)

◆ 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 134 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::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(), HDGProblem::assemble(), libMesh::ExplicitSystem::assemble_qoi(), libMesh::ExplicitSystem::assemble_qoi_derivative(), libMesh::FEMSystem::assemble_qoi_derivative(), 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::TriangulatorInterface::Hole::calculate_inside_point(), libMesh::System::calculate_norm(), libMesh::FEGenericBase< FEOutputType< T >::type >::coarsened_dof_values(), compute_enriched_soln(), libMesh::RBEIMConstruction::compute_max_eim_error(), compute_qp_soln(), libMesh::FirstOrderUnsteadySolver::compute_second_order_eqns(), 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::MeshBase::copy_constraint_rows(), libMesh::GMVIO::copy_nodal_solution(), HDGProblem::create_identity_jacobian(), 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::TriangulatorInterface::elems_to_segments(), libMesh::EquationSystems::enable_default_ghosting(), 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::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::DofObject::has_dofs(), libMesh::DofMap::heterogeneously_constrain_element_jacobian_and_residual(), libMesh::LaspackMatrix< T >::init(), libMesh::EquationSystems::init(), libMesh::DistributedVector< T >::init(), libMesh::SystemSubsetBySubdomain::init(), libMesh::UnsteadySolver::init_adjoints(), libMesh::TimeSolver::init_adjoints(), libMesh::FEMSystem::init_context(), libMesh::RBEIMConstruction::init_context(), libMesh::OldSolutionBase< Output, point_output >::init_context(), 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::EigenSparseMatrix< T >::l1_norm(), libMesh::LaspackMatrix< T >::l1_norm(), 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(), HDGProblem::lm_face_jacobian(), 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(), main(), libMesh::FEMPhysics::mass_residual(), libMesh::DenseSubVector< T >::max(), libMesh::DofMap::max_constraint_error(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::DenseSubVector< T >::min(), libMesh::VariationalMeshSmoother::minJ(), libMesh::VariationalMeshSmoother::minJ_BC(), 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::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::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::MeshTools::Modification::permute_elements(), petsc_auto_fieldsplit(), libMesh::PetscVector< libMesh::Number >::PetscVector(), libMesh::FEMContext::pre_fe_reinit(), libMesh::RBConstruction::preevaluate_thetas(), HDGProblem::pressure_dirichlet_residual(), HDGProblem::pressure_face_jacobian(), HDGProblem::pressure_face_residual(), HDGProblem::pressure_volume_jacobian(), 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::DenseVectorBase< T >::print_scientific(), libMesh::DenseMatrixBase< T >::print_scientific(), libMesh::RBEIMConstruction::process_parameters_file(), libMesh::RBConstruction::process_parameters_file(), libMesh::RBEIMEvaluation::project_qp_data_map_onto_system(), 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::System::read_legacy_data(), libMesh::DynaIO::read_mesh(), libMesh::System::read_parallel_data(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::System::read_serialized_vectors(), libMesh::VariationalMeshSmoother::readgr(), libMesh::FE< Dim, LAGRANGE_VEC >::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::FileSolutionHistory::retrieve(), HDGProblem::scalar_dirichlet_jacobian(), HDGProblem::scalar_dirichlet_residual(), HDGProblem::scalar_face_jacobian(), HDGProblem::scalar_face_residual(), HDGProblem::scalar_volume_jacobian(), HDGProblem::scalar_volume_residual(), 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(), SparseMatrixTest< LaspackMatrix< Number > >::setValues(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_deriv(), libMesh::FE< Dim, LAGRANGE_VEC >::shape_second_deriv(), libMesh::Poly2TriTriangulator::should_refine_elem(), libMesh::RBEIMEvaluation::side_distribute_bfs(), libMesh::RBParametrizedFunction::side_vectorized_evaluate(), libMesh::BoundaryInfo::side_with_boundary_id(), libMesh::BoundaryInfo::sides_with_boundary_id(), libMesh::QoISet::size(), libMesh::MeshTools::Modification::smooth(), libMesh::EquationSystems::solve(), libMesh::PatchRecoveryErrorEstimator::specpoly(), libMesh::RBEIMConstruction::store_eim_solutions_for_training_set(), SystemsTest::test100KVariables(), ConstraintOperatorTest::test1DCoarseningOperator(), 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(), PackingTypesTest::testDynamicEigenMatrix(), PackingTypesTest::testDynamicEigenVector(), 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(), MeshTriangulationTest::testPoly2TriHolesInterpRefined(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testPostInitAddVectorTypeChange(), SideTest< ElemClass, side_type, indexbegin, indexend >::testSidePtr(), SideTest< ElemClass, side_type, indexbegin, indexend >::testSidePtrFill(), MeshTriangulationTest::testTriangleHoleContains(), SparseMatrixTest< LaspackMatrix< Number > >::testValues(), libMesh::Elem::topologically_equal(), libMesh::BoundaryInfo::transfer_boundary_ids_from_children(), 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(), HDGProblem::vector_dirichlet_residual(), HDGProblem::vector_face_jacobian(), HDGProblem::vector_face_residual(), HDGProblem::vector_volume_jacobian(), HDGProblem::vector_volume_residual(), libMesh::RBParametrizedFunction::vectorized_evaluate(), libMesh::TriangulatorInterface::verify_holes(), 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::RBEIMEvaluation::write_out_projected_basis_functions(), 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().

135 {
136  return {beg, end};
137 }

◆ 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 155 of file int_range.h.

156 {
157  return {T(0), end};
158 }

◆ 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()

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

Helper functions for Discontinuous-Pn type basis functions.

Definition at line 30 of file fe_monomial.C.

References 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, SECOND, TET10, TET14, TET4, THIRD, TRI3, TRI6, TRI7, and TRISHELL3.

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

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

◆ 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 855 of file trilinos_epetra_vector.h.

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

856 {
857  return reinterpret_cast<int *>(const_cast<numeric_index_type *>(p));
858 }
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 924 of file libmesh.C.

References add_command_line_name(), and libmesh_assert().

Referenced by Biharmonic::Biharmonic(), libMesh::PetscDMWrapper::build_section(), libMesh::Node::choose_processor_id(), command_line_next(), libMesh::ContinuationSystem::ContinuationSystem(), default_solver_package(), libMesh::DofMap::distribute_dofs(), libMesh::ImplicitSystem::get_linear_solver(), libMesh::NewtonSolver::init(), libMesh::NloptOptimizationSolver< T >::init(), libMesh::TimeSolver::init_data(), main(), petsc_auto_fieldsplit(), print_trace(), libMesh::System::read_header(), libMesh::TimeSolver::reinit(), libMesh::MacroFunctions::report_error(), libMesh::Partitioner::set_node_processor_ids(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::LinearImplicitSystem::solve(), libMesh::NonlinearImplicitSystem::solve(), GetPotTest::testCommandLine(), libMesh::DofMap::use_coupled_neighbor_dofs(), and libMesh::LibMeshInit::~LibMeshInit().

925 {
926  // Make sure the command line parser is ready for use
927  libmesh_assert(command_line.get());
928 
929  // Keep track of runtime queries, for later
931 
932  bool found_it = command_line->search(arg);
933 
934  if (!found_it)
935  {
936  // Try with all dashes instead of underscores
937  std::replace(arg.begin(), arg.end(), '_', '-');
938  found_it = command_line->search(arg);
939  }
940 
941  if (!found_it)
942  {
943  // OK, try with all underscores instead of dashes
944  auto name_begin = arg.begin();
945  while (*name_begin == '-')
946  ++name_begin;
947  std::replace(name_begin, arg.end(), '-', '_');
948  found_it = command_line->search(arg);
949  }
950 
951  return found_it;
952 }
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:893

◆ operator!=() [1/5]

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

Definition at line 99 of file fe_type.h.

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

◆ operator!=() [2/5]

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

Definition at line 144 of file fe_type.h.

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

◆ operator!=() [3/5]

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

Definition at line 145 of file fe_type.h.

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

◆ operator!=() [4/5]

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

Definition at line 146 of file fe_type.h.

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

◆ operator!=() [5/5]

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

Definition at line 147 of file fe_type.h.

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

◆ 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 790 of file type_vector.h.

792 {
793  return v * factor;
794 }

◆ 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/()

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 100 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

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

◆ operator<() [2/5]

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

Definition at line 148 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

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

◆ operator<() [3/5]

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

Definition at line 149 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

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

◆ operator<() [4/5]

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

Definition at line 150 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

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

◆ operator<() [5/5]

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

Definition at line 151 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

151 { 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 568 of file sparse_matrix.h.

569 {
570  m.print(os);
571  return os;
572 }

◆ 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 168 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

169 {
170  os << order.get_order();
171  return os;
172 }

◆ 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 257 of file quadrature.C.

References libMesh::QBase::print_info().

258 {
259  q.print_info(os);
260  return os;
261 }

◆ 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 834 of file fe_abstract.C.

References libMesh::FEAbstract::print_info().

835 {
836  fe.print_info(os);
837  return os;
838 }

◆ operator<<() [8/10]

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

Definition at line 1496 of file mesh_base.C.

References libMesh::MeshBase::print_info().

1497 {
1498  m.print_info(os);
1499  return os;
1500 }

◆ operator<<() [9/10]

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

Definition at line 1696 of file equation_systems.C.

References libMesh::EquationSystems::print_info().

1698 {
1699  es.print_info(os);
1700  return os;
1701 }

◆ operator<<() [10/10]

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

Definition at line 2210 of file elem.h.

References libMesh::Elem::print_info().

2211 {
2212  e.print_info(os);
2213  return os;
2214 }

◆ operator<=() [1/5]

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

Definition at line 102 of file fe_type.h.

102 { return !(lhs > rhs); }

◆ operator<=() [2/5]

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

Definition at line 156 of file fe_type.h.

156 { return !(lhs > rhs); }

◆ operator<=() [3/5]

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

Definition at line 157 of file fe_type.h.

157 { return !(lhs > rhs); }

◆ operator<=() [4/5]

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

Definition at line 158 of file fe_type.h.

158 { return !(lhs > rhs); }

◆ operator<=() [5/5]

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

Definition at line 159 of file fe_type.h.

159 { return !(lhs > rhs); }

◆ operator==() [1/4]

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

Overload comparison operators for OrderWrapper.

Definition at line 98 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

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

◆ operator==() [2/4]

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

Definition at line 141 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

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

◆ operator==() [3/4]

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

Definition at line 142 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

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

◆ operator==() [4/4]

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

Definition at line 143 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

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

◆ operator>() [1/5]

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

Definition at line 101 of file fe_type.h.

101 { return rhs < lhs; }

◆ operator>() [2/5]

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

Definition at line 152 of file fe_type.h.

152 { return rhs < lhs; }

◆ operator>() [3/5]

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

Definition at line 153 of file fe_type.h.

153 { return rhs < lhs; }

◆ operator>() [4/5]

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

Definition at line 154 of file fe_type.h.

154 { return rhs < lhs; }

◆ operator>() [5/5]

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

Definition at line 155 of file fe_type.h.

155 { return rhs < lhs; }

◆ operator>=() [1/5]

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

Definition at line 103 of file fe_type.h.

103 { return !(lhs < rhs); }

◆ operator>=() [2/5]

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

Definition at line 160 of file fe_type.h.

160 { return !(lhs < rhs); }

◆ operator>=() [3/5]

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

Definition at line 161 of file fe_type.h.

161 { return !(lhs < rhs); }

◆ operator>=() [4/5]

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

Definition at line 162 of file fe_type.h.

162 { return !(lhs < rhs); }

◆ operator>=() [5/5]

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

Definition at line 163 of file fe_type.h.

163 { return !(lhs < rhs); }

◆ OrderWrapperOperators()

libMesh::OrderWrapperOperators ( int  )

Definition at line 133 of file fe_type.h.

References libMesh::OrderWrapper::get_order().

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

◆ orientation()

template<size_t N>
bool libMesh::orientation ( std::array< Point, N > &  arr)

Definition at line 29 of file fe_raviart_shape_3D.C.

References libMesh::MeshTools::Modification::rotate().

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

30 {
31  if (N % 2 == 0)
32  std::rotate(arr.begin(), std::min_element(arr.begin(), arr.end()), arr.end());
33 
34  size_t cnt = 0;
35  for(size_t i = 0; i < arr.size(); i++)
36  for(size_t j = i + 1; j < arr.size(); j++)
37  if (arr[i] > arr[j]) cnt++;
38  return cnt % 2;
39 }
RealTensorValue rotate(MeshBase &mesh, const Real phi, const Real theta=0., const Real psi=0.)
Rotates the mesh in the xy plane.

◆ 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 1158 of file type_vector.h.

References libmesh_conj().

1159 {
1160  TypeVector<typename CompareTypes<T, T2>::supertype> ret;
1161  for (unsigned int i = 0; i < LIBMESH_DIM; i++)
1162  ret(i) = a * libmesh_conj(b(i));
1163 
1164  return ret;
1165 }
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 1169 of file type_vector.h.

References libmesh_conj().

1170 {
1171  TypeVector<typename CompareTypes<T, T2>::supertype> ret;
1172  const auto conj_b = libmesh_conj(b);
1173  for (unsigned int i = 0; i < LIBMESH_DIM; i++)
1174  ret(i) = a(i) * conj_b;
1175 
1176  return ret;
1177 }
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 1393 of file type_tensor.h.

References libmesh_conj().

Referenced by TypeTensorTest::testOuterProduct(), and TypeVectorTestBase< VectorValue< Number > >::testScalarMult().

1394 {
1395  TypeTensor<typename CompareTypes<T, T2>::supertype> ret;
1396  for (unsigned int i=0; i<LIBMESH_DIM; i++)
1397  for (unsigned int j=0; j<LIBMESH_DIM; j++)
1398  ret(i,j) = a(i) * libmesh_conj(b(j));
1399 
1400  return ret;
1401 }
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 54 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().

56 {
57  std::string sys_prefix = "--solver_group_";
58 
59  if (libMesh::on_command_line("--solver-system-names"))
60  {
61  sys_prefix = sys_prefix + sys.name() + "_";
62  }
63 
64  std::map<std::string, std::vector<dof_id_type>> group_indices;
65 
66  if (libMesh::on_command_line("--solver-variable-names"))
67  {
68  for (auto v : make_range(sys.n_vars()))
69  {
70  const std::string & var_name = sys.variable_name(v);
71 
72  std::vector<dof_id_type> var_idx;
74  (var_idx, sys.get_mesh(), v);
75 
76  std::string group_command = sys_prefix + var_name;
77 
78  const std::string empty_string;
79 
80  std::string group_name = libMesh::command_line_value
81  (group_command, empty_string);
82 
83  if (group_name != empty_string)
84  {
85  std::vector<dof_id_type> & indices =
86  group_indices[group_name];
87  const bool prior_indices = !indices.empty();
88  indices.insert(indices.end(), var_idx.begin(),
89  var_idx.end());
90  if (prior_indices)
91  std::sort(indices.begin(), indices.end());
92  }
93  else
94  {
95  indices_to_fieldsplit (sys.comm(), var_idx, my_pc, var_name);
96  }
97  }
98  }
99 
100  for (const auto & [field_name, indices] : group_indices)
101  indices_to_fieldsplit(sys.comm(), indices, my_pc, field_name);
102 }
void local_variable_indices(std::vector< dof_id_type > &idx, const MeshBase &mesh, unsigned int var_num) const
Fills an array of those dof indices which belong to the given variable number and live on the current...
Definition: dof_map.C:1109
const Parallel::Communicator & comm() const
const MeshBase & get_mesh() const
Definition: system.h:2277
T command_line_value(const std::string &, T)
Definition: libmesh.C:957
const std::string & variable_name(const unsigned int i) const
Definition: system.h:2397
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:134
bool on_command_line(std::string arg)
Definition: libmesh.C:924
const std::string & name() const
Definition: system.h:2261
unsigned int n_vars() const
Definition: system.h:2349
const DofMap & get_dof_map() const
Definition: system.h:2293

◆ pPR() [1/2]

template<typename T >
PetscReal * libMesh::pPR ( T *  ptr)

Definition at line 184 of file petsc_macro.h.

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

185 {
186  return &(ptr->backend().value());
187 }

◆ pPR() [2/2]

template<typename T >
const PetscReal * libMesh::pPR ( const T *  ptr)

Definition at line 190 of file petsc_macro.h.

191 {
192  return &(ptr->backend().value());
193 }

◆ 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 178 of file petsc_macro.h.

179 {
180  return &(ptr->backend().value());
181 }

◆ 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 206 of file print_trace.C.

References on_command_line().

Referenced by libMesh::MacroFunctions::report_error(), and write_traceout().

207 {
208  // First try a GDB backtrace. They are better than what you get
209  // from calling backtrace() because you don't have to do any
210  // demangling, and they include line numbers! If the GDB backtrace
211  // fails, for example if your system does not have GDB, fall back to
212  // calling backtrace().
213  bool gdb_worked = false;
214 
215  // Let the user disable GDB backtraces by configuring with
216  // --without-gdb-command or with a command line option.
217  if ((std::string(LIBMESH_GDB_COMMAND) != std::string("no") &&
218  !libMesh::on_command_line("--no-gdb-backtrace")) ||
219  libMesh::on_command_line("--gdb"))
220  gdb_worked = gdb_backtrace(out_stream);
221 
222  // This part requires that your compiler at least supports
223  // backtraces. Demangling is also nice, but it will still run
224  // without it.
225 #if defined(LIBMESH_HAVE_GLIBC_BACKTRACE)
226  if (!gdb_worked)
227  {
228  void * addresses[40];
229  char ** strings;
230 
231  int size = backtrace(addresses, 40);
232  strings = backtrace_symbols(addresses, size);
233  out_stream << "Stack frames: " << size << std::endl;
234  for (int i = 0; i < size; i++)
235  out_stream << i << ": " << process_trace(strings[i]) << std::endl;
236  std::free(strings);
237  }
238 #endif
239 }
bool on_command_line(std::string arg)
Definition: libmesh.C:924

◆ 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,
std::set< const Elem *, CompareElemIdsByLevel > &  connected_elements 
)

Definition at line 140 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().

145 {
146  for (auto & gf :
149  {
150  GhostingFunctor::map_type elements_to_ghost;
151  libmesh_assert(gf);
152  (*gf)(elem_it, elem_end, pid, elements_to_ghost);
153 
154  // We can ignore the CouplingMatrix in ->second, but we
155  // need to ghost all the elements in ->first.
156  for (auto & pr : elements_to_ghost)
157  {
158  const Elem * elem = pr.first;
159  libmesh_assert(elem != remote_elem);
160  libmesh_assert(mesh.elem_ptr(elem->id()) == elem);
161  connected_elements.insert(elem);
162  }
163  }
164 
165  // The GhostingFunctors won't be telling us about the elements from
166  // pid; we need to add those ourselves.
167  for (; elem_it != elem_end; ++elem_it)
168  connected_elements.insert(*elem_it);
169 }
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:823
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:1268
std::set< GhostingFunctor * >::const_iterator ghosting_functors_end() const
End of range of ghosting functors.
Definition: mesh_base.h:1274
const RemoteElem * remote_elem
Definition: remote_elem.C:54

◆ 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 1325 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().

1330 {
1331  const int my_dim = elem.dim();
1332 
1333  std::vector<std::vector<Real>> shapes;
1334  std::vector<std::vector<std::vector<Real>>> derivs(my_dim);
1335 
1336  rational_fe_weighted_shapes_derivs(&elem, underlying_fe_type,
1337  shapes, derivs, p, add_p_level);
1338 
1339  std::vector<Real> shape_sums(p.size(), 0);
1340  std::vector<std::vector<Real>> shape_deriv_sums(my_dim);
1341  for (int d=0; d != my_dim; ++d)
1342  shape_deriv_sums[d].resize(p.size());
1343 
1344  for (auto i : index_range(shapes))
1345  {
1346  libmesh_assert_equal_to ( p.size(), shapes[i].size() );
1347  for (auto j : index_range(p))
1348  shape_sums[j] += shapes[i][j];
1349 
1350  for (int d=0; d != my_dim; ++d)
1351  for (auto j : index_range(p))
1352  shape_deriv_sums[d][j] += derivs[d][i][j];
1353  }
1354 
1355  for (int d=0; d != my_dim; ++d)
1356  {
1357  auto & comps_d = *comps[d];
1358  libmesh_assert_equal_to(comps_d.size(), elem.n_nodes());
1359 
1360  for (auto i : index_range(comps_d))
1361  {
1362  auto & comps_di = comps_d[i];
1363  auto & derivs_di = derivs[d][i];
1364 
1365  for (auto j : index_range(comps_di))
1366  comps_di[j] = (shape_sums[j] * derivs_di[j] -
1367  shapes[i][j] * shape_deriv_sums[d][j]) /
1368  shape_sums[j] / shape_sums[j];
1369  }
1370  }
1371 }
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:1052
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:111

◆ rational_all_shape_derivs< double >()

template LIBMESH_EXPORT void libMesh::rational_all_shape_derivs< double > ( 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 1295 of file fe.C.

References index_range(), and rational_fe_weighted_shapes().

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

1300 {
1301  std::vector<std::vector<Real>> shapes;
1302 
1303  rational_fe_weighted_shapes(&elem, underlying_fe_type, shapes, p,
1304  add_p_level);
1305 
1306  std::vector<Real> shape_sums(p.size(), 0);
1307 
1308  for (auto i : index_range(v))
1309  {
1310  libmesh_assert_equal_to ( p.size(), shapes[i].size() );
1311  for (auto j : index_range(p))
1312  shape_sums[j] += shapes[i][j];
1313  }
1314 
1315  for (auto i : index_range(v))
1316  {
1317  libmesh_assert_equal_to ( p.size(), v[i].size() );
1318  for (auto j : index_range(v[i]))
1319  v[i][j] = shapes[i][j] / shape_sums[j];
1320  }
1321 }
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:1014
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:111

◆ 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 1106 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().

1111 {
1112  int extra_order = add_p_level * elem.p_level();
1113 
1114  const unsigned int n_sf =
1115  FEInterface::n_shape_functions(underlying_fe_type, extra_order, &elem);
1116 
1117  libmesh_assert_equal_to (n_sf, elem.n_nodes());
1118 
1119  std::vector<Real> node_weights(n_sf);
1120 
1121  const unsigned char datum_index = elem.mapping_data();
1122 
1123  Real weighted_shape_i = 0, weighted_sum = 0;
1124 
1125  for (unsigned int sf=0; sf<n_sf; sf++)
1126  {
1127  Real node_weight =
1128  elem.node_ref(sf).get_extra_datum<Real>(datum_index);
1129  Real weighted_shape = node_weight *
1130  FEInterface::shape(underlying_fe_type, extra_order, &elem, sf, p);
1131  weighted_sum += weighted_shape;
1132  if (sf == i)
1133  weighted_shape_i = weighted_shape;
1134  }
1135 
1136  return weighted_shape_i / weighted_sum;
1137 }
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ 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 1140 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().

1146 {
1147  libmesh_assert_less(j, elem.dim());
1148 
1149  int extra_order = add_p_level * elem.p_level();
1150 
1151  const unsigned int n_sf =
1152  FEInterface::n_shape_functions(underlying_fe_type, extra_order, &elem);
1153 
1154  const unsigned int n_nodes = elem.n_nodes();
1155  libmesh_assert_equal_to (n_sf, n_nodes);
1156 
1157  std::vector<Real> node_weights(n_nodes);
1158 
1159  const unsigned char datum_index = elem.mapping_data();
1160  for (unsigned int n=0; n<n_nodes; n++)
1161  node_weights[n] =
1162  elem.node_ref(n).get_extra_datum<Real>(datum_index);
1163 
1164  Real weighted_shape_i = 0, weighted_sum = 0,
1165  weighted_grad_i = 0, weighted_grad_sum = 0;
1166 
1167  for (unsigned int sf=0; sf<n_sf; sf++)
1168  {
1169  Real weighted_shape = node_weights[sf] *
1170  FEInterface::shape(underlying_fe_type, extra_order, &elem, sf, p);
1171  Real weighted_grad = node_weights[sf] *
1172  FEInterface::shape_deriv(underlying_fe_type, extra_order, &elem, sf, j, p);
1173  weighted_sum += weighted_shape;
1174  weighted_grad_sum += weighted_grad;
1175  if (sf == i)
1176  {
1177  weighted_shape_i = weighted_shape;
1178  weighted_grad_i = weighted_grad;
1179  }
1180  }
1181 
1182  return (weighted_sum * weighted_grad_i - weighted_shape_i * weighted_grad_sum) /
1183  weighted_sum / weighted_sum;
1184 }
const dof_id_type n_nodes
Definition: tecplot_io.C:67
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ 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 1189 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().

1195 {
1196  unsigned int j1, j2;
1197  switch (j)
1198  {
1199  case 0:
1200  // j = 0 ==> d^2 phi / dxi^2
1201  j1 = j2 = 0;
1202  break;
1203  case 1:
1204  // j = 1 ==> d^2 phi / dxi deta
1205  j1 = 0;
1206  j2 = 1;
1207  break;
1208  case 2:
1209  // j = 2 ==> d^2 phi / deta^2
1210  j1 = j2 = 1;
1211  break;
1212  case 3:
1213  // j = 3 ==> d^2 phi / dxi dzeta
1214  j1 = 0;
1215  j2 = 2;
1216  break;
1217  case 4:
1218  // j = 4 ==> d^2 phi / deta dzeta
1219  j1 = 1;
1220  j2 = 2;
1221  break;
1222  case 5:
1223  // j = 5 ==> d^2 phi / dzeta^2
1224  j1 = j2 = 2;
1225  break;
1226  default:
1227  libmesh_error();
1228  }
1229 
1230  int extra_order = add_p_level * elem.p_level();
1231 
1232  const unsigned int n_sf =
1233  FEInterface::n_shape_functions(underlying_fe_type, extra_order,
1234  &elem);
1235 
1236  const unsigned int n_nodes = elem.n_nodes();
1237  libmesh_assert_equal_to (n_sf, n_nodes);
1238 
1239  std::vector<Real> node_weights(n_nodes);
1240 
1241  const unsigned char datum_index = elem.mapping_data();
1242  for (unsigned int n=0; n<n_nodes; n++)
1243  node_weights[n] =
1244  elem.node_ref(n).get_extra_datum<Real>(datum_index);
1245 
1246  Real weighted_shape_i = 0, weighted_sum = 0,
1247  weighted_grada_i = 0, weighted_grada_sum = 0,
1248  weighted_gradb_i = 0, weighted_gradb_sum = 0,
1249  weighted_hess_i = 0, weighted_hess_sum = 0;
1250 
1251  for (unsigned int sf=0; sf<n_sf; sf++)
1252  {
1253  Real weighted_shape = node_weights[sf] *
1254  FEInterface::shape(underlying_fe_type, extra_order, &elem, sf,
1255  p);
1256  Real weighted_grada = node_weights[sf] *
1257  FEInterface::shape_deriv(underlying_fe_type, extra_order,
1258  &elem, sf, j1, p);
1259  Real weighted_hess = node_weights[sf] *
1260  FEInterface::shape_second_deriv(underlying_fe_type,
1261  extra_order, &elem, sf, j, p);
1262  weighted_sum += weighted_shape;
1263  weighted_grada_sum += weighted_grada;
1264  Real weighted_gradb = weighted_grada;
1265  if (j1 != j2)
1266  {
1267  weighted_gradb = (j1 == j2) ? weighted_grada :
1268  node_weights[sf] *
1269  FEInterface::shape_deriv(underlying_fe_type, extra_order,
1270  &elem, sf, j2, p);
1271  weighted_grada_sum += weighted_grada;
1272  }
1273  weighted_hess_sum += weighted_hess;
1274  if (sf == i)
1275  {
1276  weighted_shape_i = weighted_shape;
1277  weighted_grada_i = weighted_grada;
1278  weighted_gradb_i = weighted_gradb;
1279  weighted_hess_i = weighted_hess;
1280  }
1281  }
1282 
1283  if (j1 == j2)
1284  weighted_gradb_sum = weighted_grada_sum;
1285 
1286  return (weighted_sum * weighted_hess_i - weighted_grada_i * weighted_gradb_sum -
1287  weighted_shape_i * weighted_hess_sum - weighted_gradb_i * weighted_grada_sum +
1288  2 * weighted_grada_sum * weighted_shape_i * weighted_gradb_sum / weighted_sum) /
1289  weighted_sum / weighted_sum;
1290 }
const dof_id_type n_nodes
Definition: tecplot_io.C:67
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ 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 1014 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().

1019 {
1020  const int extra_order = add_p_level * elem->p_level();
1021 
1022  const int dim = elem->dim();
1023 
1024  const unsigned int n_sf =
1025  FEInterface::n_shape_functions(underlying_fe_type, extra_order,
1026  elem);
1027 
1028  libmesh_assert_equal_to (n_sf, elem->n_nodes());
1029 
1030  std::vector<Real> node_weights(n_sf);
1031 
1032  const unsigned char datum_index = elem->mapping_data();
1033  for (unsigned int n=0; n<n_sf; n++)
1034  node_weights[n] =
1035  elem->node_ref(n).get_extra_datum<Real>(datum_index);
1036 
1037  const std::size_t n_p = p.size();
1038 
1039  shapes.resize(n_sf);
1040  for (unsigned int i=0; i != n_sf; ++i)
1041  {
1042  auto & shapes_i = shapes[i];
1043  shapes_i.resize(n_p, 0);
1044  FEInterface::shapes(dim, underlying_fe_type, elem, i, p,
1045  shapes_i, add_p_level);
1046  for (auto & s : shapes_i)
1047  s *= node_weights[i];
1048  }
1049 }
unsigned int dim
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ 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 1052 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().

1058 {
1059  const int extra_order = add_p_level * elem->p_level();
1060  const unsigned int dim = elem->dim();
1061 
1062  const unsigned int n_sf =
1063  FEInterface::n_shape_functions(fe_type, extra_order, elem);
1064 
1065  libmesh_assert_equal_to (n_sf, elem->n_nodes());
1066 
1067  libmesh_assert_equal_to (dim, derivs.size());
1068  for (unsigned int d = 0; d != dim; ++d)
1069  derivs[d].resize(n_sf);
1070 
1071  std::vector<Real> node_weights(n_sf);
1072 
1073  const unsigned char datum_index = elem->mapping_data();
1074  for (unsigned int n=0; n<n_sf; n++)
1075  node_weights[n] =
1076  elem->node_ref(n).get_extra_datum<Real>(datum_index);
1077 
1078  const std::size_t n_p = p.size();
1079 
1080  shapes.resize(n_sf);
1081  for (unsigned int i=0; i != n_sf; ++i)
1082  shapes[i].resize(n_p, 0);
1083 
1084  FEInterface::all_shapes(dim, fe_type, elem, p, shapes, add_p_level);
1085 
1086  for (unsigned int i=0; i != n_sf; ++i)
1087  {
1088  auto & shapes_i = shapes[i];
1089 
1090  for (auto & s : shapes_i)
1091  s *= node_weights[i];
1092 
1093  for (unsigned int d = 0; d != dim; ++d)
1094  {
1095  auto & derivs_di = derivs[d][i];
1096  derivs_di.resize(n_p);
1097  FEInterface::shape_derivs(fe_type, elem, i, d, p,
1098  derivs_di, add_p_level);
1099  for (auto & dip : derivs_di)
1100  dip *= node_weights[i];
1101  }
1102  }
1103 }
unsigned int dim
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ 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 ( const std::set< const Elem *, CompareElemIdsByLevel > &  connected_elements,
connected_node_set_type connected_nodes 
)

Definition at line 313 of file mesh_communication.C.

References libMesh::Elem::node_ref_range().

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

315 {
316  // We're done using the nodes list for element decisions; now
317  // let's reuse it for nodes of the elements we've decided on.
318  connected_nodes.clear();
319 
320  for (const auto & elem : connected_elements)
321  for (auto & n : elem->node_ref_range())
322  connected_nodes.insert(&n);
323 }

◆ 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!"); }

◆ 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.

References std::abs().

Referenced by libMesh::NewtonSolver::line_search().

34 {
35  return b >= 0 ? std::abs(a) : -std::abs(a);
36 }
ADRealEigenVector< T, D, asd > abs(const ADRealEigenVector< T, D, asd > &)
Definition: type_vector.h:57

◆ 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 244 of file print_trace.C.

References global_processor_id(), and print_trace().

Referenced by libmesh_terminate_handler(), and libMesh::MacroFunctions::report_error().

245 {
246 #ifdef LIBMESH_ENABLE_TRACEFILES
247  std::stringstream outname;
248  outname << "traceout_" << static_cast<std::size_t>(libMesh::global_processor_id()) << '_' << getpid() << ".txt";
249  std::ofstream traceout(outname.str().c_str(), std::ofstream::app);
250  libMesh::print_trace(traceout);
251 #endif
252 }
void print_trace(std::ostream &out_stream=std::cerr)
Print a stack trace (for code compiled with gcc)
Definition: print_trace.C:206
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 635 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.

◆ ctx

void* libMesh::ctx = nullptr

Definition at line 72 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::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< 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(), 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< Node *const >::unpack(), libMesh::Parallel::Packing< Elem *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 65 of file dense_vector_base.C.

◆ DenseVectorBase< Real >

template class LIBMESH_EXPORT libMesh::DenseVectorBase< Real >

Definition at line 62 of file dense_vector_base.C.

◆ DiagonalMatrix< Number >

template class LIBMESH_EXPORT libMesh::DiagonalMatrix< Number >

Definition at line 338 of file diagonal_matrix.C.

◆ DistributedVector< Number >

template class LIBMESH_EXPORT libMesh::DistributedVector< Number >

Definition at line 631 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 440 of file eigen_sparse_linear_solver.C.

◆ EigenSparseMatrix< Number >

template class LIBMESH_EXPORT libMesh::EigenSparseMatrix< Number >

Definition at line 406 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 609 of file trilinos_epetra_matrix.C.

◆ EpetraVector< Number >

template class LIBMESH_EXPORT libMesh::EpetraVector< Number >

Definition at line 936 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::TetGenMeshInterface::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 2630 of file fe_base.C.

◆ FEGenericBase< RealGradient >

template class LIBMESH_EXPORT libMesh::FEGenericBase< RealGradient >

Definition at line 2631 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 229 of file fe_xyz_boundary.C.

◆ FEXYZ< 3 >

template class LIBMESH_EXPORT libMesh::FEXYZ< 3 >

Definition at line 230 of file fe_xyz_boundary.C.

◆ fields

PetscErrorCode PetscInt const PetscInt libMesh::fields[]

Definition at line 61 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 241 of file libmesh_common.h.

Referenced by libmesh_terminate_handler().

◆ 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 257 of file hcurl_fe_transformation.C.

◆ HDivFETransformation< RealGradient >

template class LIBMESH_EXPORT libMesh::HDivFETransformation< RealGradient >

Definition at line 190 of file hdiv_fe_transformation.C.

◆ ierr

libMesh::ierr = DMShellGetContext(dm, & ctx)

Definition at line 73 of file petsc_dm_wrapper.C.

Referenced by __libmesh_petsc_diff_solver_monitor(), __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::PetscVector< libMesh::Number >::_get_array(), libMesh::PetscMatrix< libMesh::Number >::_get_submatrix(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_get_diagonal(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_get_diagonal(), libMesh::SlepcEigenSolver< libMesh::Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult(), libMesh::PetscLinearSolver< Number >::_petsc_shell_matrix_mult_add(), libMesh::PetscVector< libMesh::Number >::_restore_array(), libMesh::SlepcEigenSolver< libMesh::Number >::_solve_generalized_helper(), libMesh::SlepcEigenSolver< libMesh::Number >::_solve_helper(), libMesh::SlepcEigenSolver< libMesh::Number >::_solve_standard_helper(), libMesh::PetscVector< libMesh::Number >::abs(), libMesh::PetscMatrix< libMesh::Number >::add(), libMesh::PetscVector< libMesh::Number >::add(), libMesh::PetscMatrix< libMesh::Number >::add_block_matrix(), libMesh::PetscDMWrapper::add_dofs_helper(), libMesh::PetscDMWrapper::add_dofs_to_section(), libMesh::PetscMatrix< libMesh::Number >::add_matrix(), libMesh::PetscMatrix< libMesh::Number >::add_sparse_matrix(), libMesh::PetscVector< libMesh::Number >::add_vector(), libMesh::PetscVector< libMesh::Number >::add_vector_conjugate_transpose(), libMesh::PetscVector< libMesh::Number >::add_vector_transpose(), libMesh::PetscPreconditioner< T >::apply(), libMesh::SlepcEigenSolver< libMesh::Number >::attach_deflation_space(), libMesh::PetscNonlinearSolver< Number >::build_mat_null_space(), libMesh::PetscDMWrapper::build_section(), libMesh::PetscDMWrapper::build_sf(), libMesh::PetscDMWrapper::check_section_n_dofs(), libMesh::SlepcEigenSolver< libMesh::Number >::clear(), libMesh::TaoOptimizationSolver< T >::clear(), libMesh::PetscVector< libMesh::Number >::clear(), libMesh::PetscMatrix< libMesh::Number >::clear(), libMesh::PetscMatrix< libMesh::Number >::clone(), libMesh::PetscMatrix< libMesh::Number >::closed(), libMesh::PetscMatrix< libMesh::Number >::col_start(), libMesh::PetscMatrix< libMesh::Number >::col_stop(), PetscSolverConfiguration::configure_solver(), SlepcSolverConfiguration::configure_solver(), libMesh::PetscVector< libMesh::Number >::conjugate(), libMesh::PetscLinearSolver< Number >::create_complement_is(), libMesh::PetscMatrix< libMesh::Number >::create_submatrix_nosort(), libMesh::PetscVector< libMesh::Number >::create_subvector(), DMCreate_libMesh(), DMCreateDomainDecomposition_libMesh(), DMCreateFieldDecomposition_libMesh(), DMCreateGlobalVector_libMesh(), DMCreateMatrix_libMesh(), DMDestroy_libMesh(), DMlibMeshCreateDomainDecompositionDM(), DMlibMeshCreateFieldDecompositionDM(), DMlibMeshFunction(), DMlibMeshGetBlocks(), DMlibMeshGetSystem(), DMlibMeshGetSystem_libMesh(), DMlibMeshGetVariables(), DMlibMeshJacobian(), DMlibMeshSetSystem(), DMlibMeshSetSystem_libMesh(), DMlibMeshSetUpName_Private(), DMSetUp_libMesh(), DMVariableBounds_libMesh(), DMView_libMesh(), libMesh::PetscVector< libMesh::Number >::dot(), libMesh::PetscVector< libMesh::Number >::first_local_index(), libMesh::TaoOptimizationSolver< T >::get_converged_reason(), libMesh::PetscNonlinearSolver< Number >::get_converged_reason(), libMesh::PetscShellMatrix< T >::get_diagonal(), libMesh::PetscMatrix< libMesh::Number >::get_diagonal(), libMesh::TaoOptimizationSolver< T >::get_dual_variables(), libMesh::SlepcEigenSolver< libMesh::Number >::get_eigenpair(), libMesh::SlepcEigenSolver< libMesh::Number >::get_eigenvalue(), libMesh::PetscLinearSolver< Number >::get_initial_residual(), libMesh::PetscMatrix< libMesh::Number >::get_local_size(), libMesh::SlepcEigenSolver< libMesh::Number >::get_relative_error(), libMesh::PetscLinearSolver< Number >::get_residual_history(), libMesh::PetscMatrix< libMesh::Number >::get_row(), libMesh::PetscMatrix< libMesh::Number >::get_transpose(), if(), libMesh::PetscVector< libMesh::Number >::indefinite_dot(), libMesh::PetscPreconditioner< T >::init(), libMesh::SlepcEigenSolver< libMesh::Number >::init(), libMesh::PetscShellMatrix< T >::init(), libMesh::TaoOptimizationSolver< T >::init(), libMesh::PetscNonlinearSolver< Number >::init(), libMesh::PetscLinearSolver< Number >::init(), libMesh::PetscMatrix< libMesh::Number >::init(), libMesh::PetscVector< libMesh::Number >::init(), libMesh::PetscDMWrapper::init_and_attach_petscdm(), libMesh::PetscVector< libMesh::Number >::insert(), libMesh::PetscVector< libMesh::Number >::l1_norm(), libMesh::PetscMatrix< libMesh::Number >::l1_norm(), libMesh::PetscVector< libMesh::Number >::l2_norm(), libMesh::PetscVector< libMesh::Number >::last_local_index(), libmesh_petsc_DMCoarsen(), libmesh_petsc_DMCreateInterpolation(), libmesh_petsc_DMCreateRestriction(), libmesh_petsc_DMRefine(), libmesh_petsc_preconditioner_apply(), libmesh_petsc_preconditioner_setup(), libmesh_petsc_recalculate_monitor(), libmesh_petsc_snes_jacobian(), libmesh_petsc_snes_mffd_interface(), libmesh_petsc_snes_postcheck(), libmesh_petsc_snes_precheck(), libmesh_petsc_snes_residual_helper(), libMesh::PetscVector< libMesh::Number >::linfty_norm(), libMesh::PetscMatrix< libMesh::Number >::linfty_norm(), libMesh::PetscShellMatrix< T >::local_m(), libMesh::PetscMatrix< libMesh::Number >::local_m(), libMesh::PetscShellMatrix< T >::local_n(), libMesh::PetscMatrix< libMesh::Number >::local_n(), libMesh::PetscVector< libMesh::Number >::local_size(), libMesh::PetscVector< libMesh::Number >::localize(), libMesh::PetscVector< libMesh::Number >::localize_to_one(), libMesh::PetscShellMatrix< T >::m(), libMesh::PetscMatrix< libMesh::Number >::m(), libMesh::PetscVector< libMesh::Number >::map_global_to_local_index(), libMesh::PetscMatrix< libMesh::Number >::matrix_matrix_mult(), libMesh::PetscVector< libMesh::Number >::max(), libMesh::PetscVector< libMesh::Number >::min(), libMesh::PetscShellMatrix< T >::n(), libMesh::PetscMatrix< libMesh::Number >::n(), libMesh::PetscMatrix< libMesh::Number >::operator()(), libMesh::PetscVector< libMesh::Number >::operator*=(), libMesh::PetscVector< libMesh::Number >::operator/=(), libMesh::PetscVector< libMesh::Number >::operator=(), libMesh::PetscVector< libMesh::Number >::PetscVector(), libMesh::PetscVector< libMesh::Number >::pointwise_divide(), libMesh::PetscVector< libMesh::Number >::pointwise_mult(), libMesh::PetscMatrix< libMesh::Number >::print_matlab(), libMesh::PetscVector< libMesh::Number >::print_matlab(), libMesh::PetscMatrix< libMesh::Number >::print_personal(), libMesh::GMVIO::read(), libMesh::PetscVector< libMesh::Number >::reciprocal(), libMesh::PetscMatrix< libMesh::Number >::reset_preallocation(), libMesh::PetscLinearSolver< Number >::restrict_solve_to(), libMesh::PetscLinearSolver< Number >::restrict_solve_to_is_local_size(), libMesh::PetscMatrix< libMesh::Number >::row_start(), libMesh::PetscMatrix< libMesh::Number >::row_stop(), libMesh::PetscVector< libMesh::Number >::scale(), libMesh::PetscMatrix< libMesh::Number >::set(), libMesh::PetscVector< libMesh::Number >::set(), libMesh::PetscPreconditioner< T >::set_petsc_preconditioner_type(), libMesh::PetscLinearSolver< Number >::set_petsc_solver_type(), libMesh::PetscPreconditioner< T >::set_petsc_subpreconditioner_type(), libMesh::PetscDMWrapper::set_point_range_in_section(), libMesh::SlepcEigenSolver< libMesh::Number >::set_slepc_position_of_spectrum(), libMesh::SlepcEigenSolver< libMesh::Number >::set_slepc_problem_type(), libMesh::SlepcEigenSolver< libMesh::Number >::set_slepc_solver_type(), libMesh::PetscNonlinearSolver< Number >::setup_default_monitor(), libMesh::PetscDiffSolver::setup_petsc_data(), libMesh::PetscLinearSolver< Number >::shell_solve_common(), libMesh::PetscVector< libMesh::Number >::size(), SNESFunction_DMlibMesh(), SNESJacobian_DMlibMesh(), libMesh::PetscDiffSolver::solve(), libMesh::TaoOptimizationSolver< T >::solve(), libMesh::NloptOptimizationSolver< T >::solve(), libMesh::PetscNonlinearSolver< Number >::solve(), libMesh::PetscLinearSolver< Number >::solve_base(), libMesh::SlepcEigenSolver< libMesh::Number >::solve_generalized(), libMesh::SlepcEigenSolver< libMesh::Number >::solve_standard(), libMesh::PetscVector< libMesh::Number >::sum(), libMesh::PetscShellMatrix< T >::vector_mult(), libMesh::PetscShellMatrix< T >::vector_mult_add(), libMesh::TecplotIO::write_binary(), libMesh::PetscVector< libMesh::Number >::zero(), libMesh::PetscMatrix< libMesh::Number >::zero(), libMesh::PetscMatrix< libMesh::Number >::zero_clone(), and libMesh::PetscMatrix< libMesh::Number >::zero_rows().

◆ 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 1435 of file fe.C.

◆ INSTANTIATE_SUBDIVISION_MAPS

libMesh::INSTANTIATE_SUBDIVISION_MAPS

Definition at line 2144 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 292 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 286 of file libmesh.h.

Referenced by libMesh::Xdr::_complex_data_stream(), libMesh::FEMContext::_do_elem_position_set(), 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(), HDGProblem::assemble(), libMesh::CompositeFEMFunction< Output >::attach_subfunction(), libMesh::CompositeFunction< Output >::attach_subfunction(), libMesh::RemoteElem::center_node_on_side(), libMesh::Pyramid14::center_node_on_side(), libMesh::Prism18::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::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::DofObject::has_dofs(), libMesh::MeshFunction::hessian(), libMesh::MeshTools::Generation::Private::idx(), libMesh::Poly2TriTriangulator::insert_refinement_points(), libMesh::FEMap::inverse_map(), libMesh::DofMap::is_evaluable(), 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::Elem::parent_bracketing_nodes(), libMesh::System::read_serialized_blocked_dof_objects(), libMesh::BoundaryInfo::side_with_boundary_id(), libMesh::UnstructuredMesh::stitching_helper(), 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(), FETest< order, family, elem_type >::testLoop(), MeshBaseTest::testMeshBaseVerifyIsPrepared(), libMesh::Node::valence(), libMesh::Elem::which_child_am_i(), libMesh::Elem::which_neighbor_am_i(), libMesh::Elem::which_side_am_i(), and libMesh::System::write_serialized_blocked_dof_objects().

◆ InverseDistanceInterpolation< 1 >

template class LIBMESH_EXPORT libMesh::InverseDistanceInterpolation< 1 >

Definition at line 329 of file meshfree_interpolation.C.

◆ InverseDistanceInterpolation< 2 >

template class LIBMESH_EXPORT libMesh::InverseDistanceInterpolation< 2 >

Definition at line 330 of file meshfree_interpolation.C.

◆ InverseDistanceInterpolation< 3 >

template class LIBMESH_EXPORT libMesh::InverseDistanceInterpolation< 3 >

Definition at line 331 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 658 of file laspack_matrix.C.

◆ LaspackVector< Number >

template class LIBMESH_EXPORT libMesh::LaspackVector< Number >

Definition at line 531 of file laspack_vector.C.

◆ libmesh_errhandler

MPI_Errhandler libMesh::libmesh_errhandler

Definition at line 241 of file libmesh.C.

◆ LinearSolver< Number >

template class LIBMESH_EXPORT libMesh::LinearSolver< Number >

Definition at line 231 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 115 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 436 of file numeric_vector.C.

Referenced by SigmaPhysics::init_context(), HeatSystem::init_context(), and main().

◆ numFields

PetscErrorCode PetscInt libMesh::numFields

Definition at line 61 of file petsc_dm_wrapper.C.

Referenced by if().

◆ old_terminate_handler

std::terminate_handler libMesh::old_terminate_handler

Definition at line 280 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(), 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(), 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::PetscNonlinearSolver< Number >::print_converged_reason(), libMesh::LaspackLinearSolver< T >::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::TransientRBConstruction::print_info(), libMesh::RBSCMConstruction::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::Nemesis_IO_Helper::put_node_cmap(), libMesh::Tet::qual_bounds(), libMesh::Hex::qual_bounds(), libMesh::Tri::qual_bounds(), libMesh::Quad::qual_bounds(), libMesh::InfQuad::qual_bounds(), FEMParameters::read(), libMesh::TetGenIO::read(), libMesh::Nemesis_IO::read(), libMesh::PltLoader::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::VariationalMeshSmoother::readgr(), 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::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(), libMesh::VariationalMeshSmoother::writegr(), and libMesh::LibMeshInit::~LibMeshInit().

◆ p_ctx

PetscDMContext* libMesh::p_ctx = static_cast<PetscDMContext * >(ctx)

Definition at line 76 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 96 of file elem.C.

Referenced by libMesh::Elem::parent_bracketing_nodes().

◆ parent_indices_mutex

Threads::spin_mutex libMesh::parent_indices_mutex

Definition at line 95 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 1080 of file petsc_linear_solver.C.

◆ PetscMatrix< Number >

template class LIBMESH_EXPORT libMesh::PetscMatrix< Number >

Definition at line 1455 of file petsc_matrix.C.

◆ PetscNonlinearSolver< Number >

template class LIBMESH_EXPORT libMesh::PetscNonlinearSolver< Number >

Definition at line 1252 of file petsc_nonlinear_solver.C.

◆ PetscPreconditioner< Number >

template class LIBMESH_EXPORT libMesh::PetscPreconditioner< Number >

Definition at line 307 of file petsc_preconditioner.C.

◆ PetscShellMatrix< Number >

template class LIBMESH_EXPORT libMesh::PetscShellMatrix< Number >

Definition at line 122 of file petsc_shell_matrix.C.

◆ PetscVector< Number >

template class LIBMESH_EXPORT libMesh::PetscVector< Number >

Definition at line 1392 of file petsc_vector.C.

◆ pi

const Real libMesh::pi
Initial value:
=
static_cast<Real>(3.1415926535897932384626433832795029L)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

\( \pi=3.14159... \).

Definition at line 274 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(), CurlCurlExactSolution::curl(), HeatSystem::element_time_derivative(), exact_derivative(), exact_solution(), libMesh::TensorValue< T >::extrinsic_rotation_matrix(), fill_dirichlet_bc(), CurlCurlExactSolution::forcing(), NavierSystem::forcing(), USoln::forcing(), VSoln::forcing(), PSoln::forcing(), forcing_function(), libMesh::MeshTools::Generation::Private::GaussLobattoRedistributionFunction::GaussLobattoRedistributionFunction(), CurlCurlExactSolution::grad(), DivGradExactSolution::grad(), MixedExactSolution::grad(), HeatSystem::HeatSystem(), integrate_function(), libMesh::TensorValue< T >::intrinsic_rotation_matrix(), libMesh::FESubdivision::loop_subdivision_mask(), main(), libMesh::Tri3::min_and_max_angle(), LaplaceExactSolution::operator()(), CurlCurlExactSolution::operator()(), DivGradExactSolution::operator()(), MixedExactSolution::operator()(), LaplaceExactGradient::operator()(), USoln::operator()(), VSoln::operator()(), PSoln::operator()(), libMesh::TriangulatorInterface::PolygonHole::point(), projection_function(), libMesh::VariationalMeshSmoother::readgr(), MixedExactSolution::scalar(), DivGradExactSolution::scalar(), libMesh::Sphere::surface_coords(), DofObjectTest< Node >::testAddExtraData(), RationalMapTest< elem_type >::testContainsPoint(), XdrTest::testDataVec(), CouplingMatrixTest::testIteratorAPI(), VolumeTest::testQuad4Invertible(), CouplingMatrixTest::testSimpleAPI(), 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 781 of file rb_construction_base.C.

◆ RBConstructionBase< LinearImplicitSystem >

template class LIBMESH_EXPORT libMesh::RBConstructionBase< LinearImplicitSystem >

Definition at line 784 of file rb_construction_base.C.

◆ RBConstructionBase< System >

template class LIBMESH_EXPORT libMesh::RBConstructionBase< System >

Definition at line 785 of file rb_construction_base.C.

◆ Real

DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE libMesh::Real

Definition at line 143 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(), adjoint_initial_grad(), adjoint_initial_value(), libMesh::ImplicitSystem::adjoint_qoi_parameter_sensitivity(), libMesh::TwostepTimeSolver::adjoint_solve(), libMesh::VariationalMeshSmoother::adp_renew(), libMesh::FE< Dim, LAGRANGE_VEC >::all_shape_derivs(), libMesh::DofMap::allgather_recursive_constraints(), alternative_fe_assembly(), libMesh::ContinuationSystem::apply_predictor(), libMesh::Elem::as_parent_node(), assemble(), assemble_biharmonic(), assemble_cd(), assemble_divgrad(), assemble_ellipticdg(), assemble_func(), assemble_helmholtz(), assemble_laplace(), assemble_poisson(), libMesh::ImplicitSystem::assemble_residual_derivatives(), assemble_SchroedingerEquation(), assemble_shell(), assemble_stokes(), assemble_wave(), libMesh::FEMSystem::assembly(), libMesh::VariationalMeshSmoother::avertex(), InfFERadialTest::base_point(), libMesh::VariationalMeshSmoother::basisA(), 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::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::InfFE< Dim, T_radial, T_map >::compute_data(), libMesh::FEMap::compute_edge_map(), 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::InfPrism::contains_point(), libMesh::Tri3::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(), DivGradExactSolution::div(), MixedExactSolution::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::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::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_fdm_deriv(), fe_fdm_second_deriv(), 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(), CurlCurlExactSolution::forcing(), LaplaceSystem::forcing(), CurlCurlSystem::forcing(), NavierSystem::forcing(), forcing_function(), forcing_function_2D(), forcing_function_3D(), libMesh::ImplicitSystem::forward_qoi_parameter_sensitivity(), libMesh::VariationalMeshSmoother::full_smooth(), libMesh::DofMap::gather_constraints(), libMesh::MeshTools::Generation::Private::GaussLobattoRedistributionFunction::GaussLobattoRedistributionFunction(), libMesh::VariationalMeshSmoother::gener(), 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(), CurlCurlExactSolution::grad(), DivGradExactSolution::grad(), MixedExactSolution::grad(), libMesh::RBConstruction::greedy_termination_test(), 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::QGrid::init_1D(), libMesh::QGauss::init_1D(), libMesh::QSimpson::init_1D(), libMesh::QNodal::init_1D(), libMesh::QJacobi::init_1D(), libMesh::QGrid::init_2D(), libMesh::QGauss::init_2D(), libMesh::QSimpson::init_2D(), libMesh::QTrap::init_2D(), libMesh::QNodal::init_2D(), libMesh::QMonomial::init_2D(), libMesh::QGrid::init_3D(), libMesh::QGauss::init_3D(), libMesh::QSimpson::init_3D(), libMesh::QTrap::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_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::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::PetscVector< libMesh::Number >::l1_norm(), libMesh::DenseVector< Output >::l1_norm(), libMesh::PetscMatrix< libMesh::Number >::l1_norm(), 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::PetscVector< libMesh::Number >::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::PetscVector< libMesh::Number >::linfty_norm(), libMesh::DenseVector< Output >::linfty_norm(), libMesh::PetscMatrix< libMesh::Number >::linfty_norm(), libMesh::RBDataDeserialization::load_rb_scm_evaluation_data(), libMesh::VariationalMeshSmoother::localP(), 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::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::VariationalMeshSmoother::maxE(), libMesh::ErrorVector::mean(), libMesh::StatisticsVector< ErrorVectorReal >::mean(), libMesh::StatisticsVector< ErrorVectorReal >::median(), AugmentSparsityOnInterface::mesh_reinit(), libMesh::TriangulatorInterface::MeshedHole::MeshedHole(), libMesh::VariationalMeshSmoother::metr_data_gen(), 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(), libMesh::VariationalMeshSmoother::minJ(), libMesh::VariationalMeshSmoother::minJ_BC(), libMesh::VariationalMeshSmoother::minq(), 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::TypeTensor< T >::norm_sq(), libMesh::StatisticsVector< ErrorVectorReal >::normalize(), NumericVectorTest< DistributedVector< Number > >::Norms(), libMesh::FEMSystem::numerical_jacobian(), libMesh::FEMSystem::numerical_jacobian_h_for_var(), libMesh::FEAbstract::on_reference_element(), libMesh::Plane::on_surface(), libMesh::ExodusII_IO_Helper::open(), NumericVectorTest< DistributedVector< Number > >::Operations(), LaplaceExactSolution::operator()(), CurlCurlExactSolution::operator()(), SlitFunc::operator()(), DivGradExactSolution::operator()(), MixedExactSolution::operator()(), SolutionFunction< dim >::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::VariationalMeshSmoother::pcg_ic0(), libMesh::StatisticsVector< ErrorVectorReal >::plot_histogram(), libMesh::TriangulatorInterface::PolygonHole::point(), libMesh::Elem::point_test(), libMesh::RadialBasisInterpolation< KDDim, RBF >::prepare_for_use(), HDGProblem::pressure_volume_residual(), libMesh::QBase::print_info(), libMesh::DofMap::process_constraints(), 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::VariationalMeshSmoother::readgr(), 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::MemorySolutionHistory::retrieve(), libMesh::FileSolutionHistory::retrieve(), Biharmonic::run(), TimeSolverTestImplementation< NewmarkSolver >::run_test_with_exact_soln(), run_timestepping(), 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::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::VariationalMeshSmoother::smooth(), libMesh::MeshTools::Modification::smooth(), libMesh::TwostepTimeSolver::solve(), libMesh::NewtonSolver::solve(), libMesh::NoxNonlinearSolver< Number >::solve(), libMesh::EigenSystem::solve(), libMesh::NloptOptimizationSolver< T >::solve(), libMesh::CondensedEigenSystem::solve(), libMesh::FrequencySystem::solve(), libMesh::PetscNonlinearSolver< Number >::solve(), libMesh::LinearImplicitSystem::solve(), libMesh::RBConstruction::solve_for_matrix_and_rhs(), libMesh::System::solve_for_unconstrained_dofs(), libMesh::ContinuationSystem::solve_tangent(), libMesh::PatchRecoveryErrorEstimator::specpoly(), libMesh::Sphere::Sphere(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::QMonomial::stroud_rule(), libMesh::MeshTools::subdomain_bounding_sphere(), libMesh::NumericVector< Number >::subset_l1_norm(), libMesh::NumericVector< Number >::subset_l2_norm(), libMesh::NumericVector< Number >::subset_linfty_norm(), libMesh::Sphere::surface_coords(), ConstraintOperatorTest::test1DCoarseningOperator(), 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(), RationalMapTest< elem_type >::testContainsPoint(), ContainsPointTest::testContainsPointNodeElem(), ContainsPointTest::testContainsPointTet4(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), FETest< order, family, elem_type >::testCustomReinit(), XdrTest::testDataStream(), SystemsTest::testDofCouplingWithVarGroups(), MeshInputTest::testDynaReadPatch(), VolumeTest::testEdge4Invertible(), DenseMatrixTest::testEVDcomplex(), MeshInputTest::testExodusWriteElementDataFromDiscontinuousNodalData(), MeshTriangulationTest::testFoundCenters(), InfFERadialTest::testInfQuants(), InfFERadialTest::testInfQuants_numericDeriv(), QuadratureTest::testJacobi(), PointLocatorTest::testLocator(), FETest< order, family, elem_type >::testLoop(), MappedSubdomainPartitionerTest::testMappedSubdomainPartitioner(), ParallelPointTest::testMapUnionVec(), ParallelTest::testMaxlocReal(), ParallelTest::testMinlocReal(), NewmarkSolverTest::testNewmarkSolverLinearTimeSecondOrderODEFirstOrderStyle(), NewmarkSolverTest::testNewmarkSolverLinearTimeSecondOrderODESecondOrderStyle(), TypeVectorTestBase< VectorValue< Number > >::testNorm(), TypeVectorTestBase< VectorValue< Number > >::testNormBase(), TypeVectorTestBase< VectorValue< Number > >::testNormSq(), TypeVectorTestBase< VectorValue< Number > >::testNormSqBase(), RBParametersTest::testNSamples(), LumpedMassMatrixTest::testNumerics(), 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::testQuad4Invertible(), VolumeTest::testQuad4TrueCentroid(), EquationSystemsTest::testRepartitionThenReinit(), TypeTensorTest::testRowCol(), TypeVectorTestBase< VectorValue< Number > >::testScalarDiv(), TypeVectorTestBase< VectorValue< Number > >::testScalarDivAssign(), TypeVectorTestBase< VectorValue< Number > >::testScalarDivAssignBase(), TypeVectorTestBase< VectorValue< Number > >::testScalarDivBase(), MeshInputTest::testSingleElementImpl(), WriteVecAndScalar::testSolution(), DenseMatrixTest::testSVD(), MeshInputTest::testTetgenIO(), CompositeFunctionTest::testTimeDependence(), VolumeTest::testTri3TrueCentroid(), MeshTriangulationTest::testTriangleHoleArea(), MeshTriangulationTest::testTriangleHoleContains(), MeshTriangulationTest::testTriangulatorBase(), MeshTriangulationTest::testTriangulatorHoles(), MeshTriangulationTest::testTriangulatorInterp(), MeshTriangulationTest::testTriangulatorMeshedHoles(), 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::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::VariationalMeshSmoother::vertex(), libMesh::Edge3::volume(), libMesh::Quad4::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::Elem::volume(), 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(), libMesh::VariationalMeshSmoother::writegr(), and libMesh::ExodusII_IO_Helper::MappedInputVector::~MappedInputVector().

◆ remote_elem

const RemoteElem * libMesh::remote_elem

Definition at line 54 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(), connect_families(), 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::Elem::remove_links_to_me(), BoundaryMeshTest::sanityCheck(), libMesh::Elem::set_interior_parent(), libMesh::MeshRefinement::test_level_one(), EquationSystemsTest::testRefineThenReinitPreserveFlags(), libMesh::CheckpointIO::write_remote_elem(), and libMesh::RemoteElem::~RemoteElem().

◆ return

libMesh::return

Definition at line 196 of file petsc_dm_wrapper.C.

◆ ShellMatrix< Number >

template class LIBMESH_EXPORT libMesh::ShellMatrix< Number >

Definition at line 53 of file shell_matrix.C.

◆ SlepcEigenSolver< Number >

template class LIBMESH_EXPORT libMesh::SlepcEigenSolver< Number >

Definition at line 953 of file slepc_eigen_solver.C.

◆ SparseMatrix< Number >

template class LIBMESH_EXPORT libMesh::SparseMatrix< Number >

Definition at line 755 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:
{
PetscErrorCode ierr

Definition at line 63 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 672 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 150 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(), 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::DofMap::process_mesh_constraint_rows(), libMesh::ImplicitSystem::qoi_parameter_hessian(), libMesh::ImplicitSystem::qoi_parameter_hessian_vector_product(), libMesh::Quad::quality(), 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(), LaplaceSystem::side_constraint(), libMesh::NewtonSolver::solve(), libMesh::UnstructuredMesh::stitching_helper(), libMesh::MemorySolutionHistory::store(), libMesh::FileSolutionHistory::store(), ConstraintOperatorTest::test1DCoarseningOperator(), SystemsTest::test2DProjectVectorFE(), SystemsTest::test3DProjectVectorFE(), 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(), MeshInputTest::testCopyElementSolutionImpl(), MeshInputTest::testCopyElementVectorImpl(), MeshInputTest::testCopyNodalSolutionImpl(), 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(), 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(), PetscVectorTest::testPetscOperations(), MeshTriangulationTest::testPoly2TriRefinementBase(), SystemsTest::testProjectCubeWithMeshFunction(), MeshInputTest::testProjectionRegression(), SystemsTest::testProjectMatrix1D(), SystemsTest::testProjectMatrix2D(), SystemsTest::testProjectMatrix3D(), VolumeTest::testPyramid5TrueCentroid(), VolumeTest::testQuad4TrueCentroid(), 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(), MixedOrderTest::testStitch(), DenseMatrixTest::testSVD(), SlitMeshRefinedSystemTest::testSystem(), MeshInputTest::testTetgenIO(), VolumeTest::testTri3TrueCentroid(), MeshTriangulationTest::testTriangleHoleArea(), MeshTriangulationTest::testTriangulatorInterp(), 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(), 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 194 of file type_tensor.C.

◆ TypeTensor< Real >

template class LIBMESH_EXPORT libMesh::TypeTensor< Real >

Definition at line 191 of file type_tensor.C.

◆ TypeVector< Complex >

template class LIBMESH_EXPORT libMesh::TypeVector< Complex >

Definition at line 230 of file type_vector.C.

◆ TypeVector< Real >

template class LIBMESH_EXPORT libMesh::TypeVector< Real >

Definition at line 227 of file type_vector.C.

◆ warned_about_auto_ptr

bool libMesh::warned_about_auto_ptr

◆ zero

const Number libMesh::zero = 0.