libmesh解析
本工作只是尝试解析原libmesh的代码,供学习使用
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 
命名空间 | | 类型定义 | 枚举 | 函数 | 变量
libMesh 命名空间参考

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

命名空间

 DenseMatrices
 为密集矩阵提供 Typedefs
 
 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
 
 Parallel
 
 Predicates
 This namespace defines several multi_predicates which are used by the element and node iterators.
 
 SparsityPattern
 This defines the sparsity pattern, or graph, of a sparse matrix.
 
 TensorTools
 
 Threads
 

class  FEMFunctionBase
 FEMFunctionBase是一个基类,用户可以从中派生出“函数样式”的对象,以在FEMSystem中使用。 更多...
 
class  FunctionBase
 FunctionBase是一个函数对象的基类,可以在某一点(可选地包括时间)进行评估。 更多...
 
class  DirichletBoundary
 This class allows one to associate Dirichlet boundary values with a given set of mesh boundary ids and system variable ids. 更多...
 
class  DirichletBoundaries
 We're using a class instead of a typedef to allow forward declarations and future flexibility. 更多...
 
class  DenseVectorBase
 定义用于有限元计算的抽象稠密向量基类。 可以从这个类派生出特定的稠密向量,例如 DenseSubVectors。 更多...
 
class  DenseVector
 定义用于有限元计算的稠密向量类。该类基本上是为了补充 DenseMatrix 类而设计的。 它相对于 std::vector 具有额外的功能,使其在有限元中特别有用,特别是对于方程组。 所有重写的虚拟函数都在 dense_vector_base.h 中有文档说明。 更多...
 
class  DenseMatrix
 定义用于有限元类型计算的密集矩阵。 用于在求和成全局矩阵之前存储单元刚度矩阵。所有被覆盖的虚函数都记录在dense_matrix_base.h中。 更多...
 
class  SparseMatrix
 这是一个通用的稀疏矩阵类。该类包含了必须在派生类中覆盖的纯虚拟成员。 使用一个公共的基类允许从不同的求解器包中以不同的格式统一访问稀疏矩阵。 更多...
 
class  NumericVector
 提供了不同线性代数库的向量存储方案的统一接口。 更多...
 
class  DofConstraints
 The constraint matrix storage format. 更多...
 
class  DofConstraintValueMap
 Storage for DofConstraint right hand sides for a particular problem. 更多...
 
class  AdjointDofConstraintValues
 Storage for DofConstraint right hand sides for all adjoint problems. 更多...
 
class  NodeConstraints
 The Node constraint storage format. 更多...
 
class  DofMap
 This class handles the numbering of degrees of freedom on a mesh. 更多...
 
class  DofObject
 The DofObject defines an abstract base class for objects that have degrees of freedom associated with them. 更多...
 
struct  CompareDofObjectsByID
 Comparison object to use with DofObject pointers. 更多...
 
struct  CompareDofObjectsByPIDAndThenID
 
class  Factory
 Factory class definition. 更多...
 
class  FactoryImp
 Factory implementation class. 更多...
 
class  TestClass
 
class  LibMeshInit
 The LibMeshInit class, when constructed, initializes the dependent libraries (e.g. 更多...
 
struct  casting_compare
 
class  LogicError
 A class to represent the internal "this should never happen" errors, to be thrown by "libmesh_error();". 更多...
 
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();". 更多...
 
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. 更多...
 
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. 更多...
 
class  DynamicCastFailure
 A class representing that a dynamic cast failed to produce expected output. 更多...
 
class  FloatingPointException
 A class representing a floating point exception. 更多...
 
class  SolverException
 A class representing an exception during a solve. 更多...
 
struct  PerfItem
 Used for logging something that naturally lasts as long as some enclosing scope, such as the current function. 更多...
 
class  Singleton
 Base class for all library singleton objects. 更多...
 
class  PeriodicBoundaries
 We're using a class instead of a typedef to allow forward declarations and future flexibility. 更多...
 
class  PeriodicBoundary
 The definition of a periodic boundary. 更多...
 
class  PeriodicBoundaryBase
 The base class for defining periodic boundaries. 更多...
 
class  ReferenceCountedObject
 This class implements reference counting. 更多...
 
class  ReferenceCounter
 This is the base class for enabling reference counting. 更多...
 
class  Variable
 This class defines the notion of a variable in the system. 更多...
 
class  VariableGroup
 This class defines a logically grouped set of variables in the system. 更多...
 
class  AnalyticFunction
 将函数指针封装成FunctionBase对象。 更多...
 
class  CompositeFEMFunction
 FEMFunction函数的另一个函数。 更多...
 
class  CompositeFunction
 将不同函数的结果组合成单个向量的函数。所有重写的虚拟函数在function_base.h中都有文档。 更多...
 
class  ConstFEMFunction
 由Roy Stogner创作 2012年 更多...
 
class  ConstFunction
 由Roy Stogner创作 2012年 更多...
 
class  DenseMatrixBase
 为有限元类型的计算定义了一个抽象的稠密矩阵基类。例如 DenseSubMatrices 可以从这个类派生出来。 更多...
 
class  DenseSubMatrix
 为有限元类型的计算定义密集子矩阵。 在将元素刚度矩阵相加到全局矩阵之前存储非常有用,特别是在存在方程组时。 所有重写的虚拟函数在 dense_matrix_base.h 中有文档。 更多...
 
class  DenseSubVector
 定义了一个用于有限元计算的稠密子向量。 在将元素载荷向量累加到全局向量之前存储这些载荷向量时特别有用,尤其是在存在方程组的情况下。 所有重写的虚拟函数在 dense_vector_base.h 中有文档说明。 更多...
 
class  DiagonalMatrix
 对角矩阵类,其底层存储是一个向量 更多...
 
class  DistributedVector
 该类提供了一个简单的并行分布式向量数据类型, 专门用于 libmesh。提供了一些集体通信功能。 更多...
 
class  ShellMatrix
 通用的Shell矩阵,即一个仅定义其对向量的作用的矩阵。此类包含必须在派生类中重写的纯虚拟成员。 更多...
 
class  EigenPreconditioner
 EigenPreconditioner 类提供了对 Eigen 库中预处理器集合的接口。 更多...
 
class  EigenSparseVector
 This class provides a nice interface to the Eigen C++-based data structures for serial vectors. 更多...
 
class  EigenSparseLinearSolver
 
class  EigenSparseMatrix
 EigenSparseMatrix 类包装了来自 Eigen 库的稀疏矩阵对象。 更多...
 
class  LaspackVector
 这个类为基于laspackc的串行向量数据结构提供了一个很好的接口。 所有被覆盖的虚函数都记录在numeric_vector.h中。 更多...
 
class  LaspackLinearSolver
 
class  LaspackMatrix
 LaspackMatrix类封装了Laspack库中的QMatrix对象。 目前,Laspack仅支持实数数据类型,因此这个类是对 SparseMatrix<T> 的全特化,其中 T = Real。 所有重写的虚拟函数在 sparse_matrix.h 中有文档说明。 更多...
 
class  LumpedMassMatrix
 模板类用于构造集中质量矩阵。 可能还有用于计算与整体系统缩放相关的数量。每当在此类上调用 add 方法时,我们都会将提供的值的绝对值相加到行索引 i 中。 更多...
 
class  ParsedFEMFunction
 ParsedFEMFunction 提供对 FEMSystem 中基于 FParser 的解析函数的支持。 更多...
 
class  ParsedFEMFunctionParameter
 访问器对象,允许读取和修改参数灵敏度计算中的独立变量。 更多...
 
class  ParsedFunction
 通过解析数学表达式生成(通过 FParser)的函数。所有重写的虚拟函数在 function_base.h 中都有文档说明。 更多...
 
class  ParsedFunctionParameter
 访问器对象,允许在参数敏感性计算中读取和修改参数的独立变量。 更多...
 
class  PetscMatrix
 这个类提供了一个方便的接口,用于操作并行稀疏矩阵的 PETSc C 库数据结构。 所有覆盖的虚拟函数都在 sparse_matrix.h 中有详细的文档说明。 更多...
 
class  PetscShellMatrix
 这个类允许使用 PETSc shell 矩阵。 所有覆盖的虚拟函数都在 shell_matrix.h 中有文档说明。 更多...
 
class  PetscSolverException
 A specialization of the SolverException class for PETSc. 更多...
 
class  PetscVector
 该类提供了一个良好的接口,用于访问 PETSc 的 Vec 对象。所有重写的虚拟函数都在 numeric_vector.h 中有文档说明。 更多...
 
class  Preconditioner
 该类提供了一个统一的接口,用于预处理器。此基类可继承,以包装来自不同软件包(如 PETSc 或 Trilinos)的预处理器。 更多...
 
struct  RawFieldType
 What underlying data type would we need to access in each field? 更多...
 
struct  RawFieldType< Number >
 
struct  RawFieldType< Gradient >
 
struct  RawFieldType< Tensor >
 
struct  RawFieldType< TypeNTensor< 3, Number > >
 
struct  RawFieldType< Real >
 
struct  RawFieldType< RealGradient >
 
struct  RawFieldType< RealTensor >
 
struct  RawFieldType< TypeNTensor< 3, Real > >
 
class  RawAccessor
 This class provides single index access to FieldType (i.e. 更多...
 
class  RawAccessor< TypeNTensor< N, ScalarType > >
 Stub implementations for stub TypeNTensor object. 更多...
 
class  RefinementSelector
 这个抽象类提供了一个接口,用于选择在给定网格中的每个元素上要使用的细化类型。 目前我们假设一组元素已经被标记为 h 细化,而唯一的具体子类将会更改其中一些元素以标记为 p 细化。 未来的子类可能会处理各向异性细化。 更多...
 
class  SparseShellMatrix
 允许将任何SparseMatrix对象用作壳矩阵的类。 更多...
 
class  SumShellMatrix
 将任意数量的壳矩阵组合成一个单独的壳矩阵,通过将它们相加在一起的类。 更多...
 
class  TensorShellMatrix
 由两个向量的张量积构成的壳矩阵,即A = v*w^T。 更多...
 
class  TypeVector
 该类定义了一个在 LIBMESH_DIM 维度空间中类型为 T 的向量。 更多...
 
class  VectorValue
 此类定义了LIBMESH_DIM维的实数或复数空间中的向量。 更多...
 
class  TypeTensor
 This class defines a tensor in LIBMESH_DIM dimensional space of type T. 更多...
 
class  TensorValue
 此类定义了LIBMESH_DIM维度的实数或复数空间中的张量。typedef RealTensorValue总是定义为实数值的张量, 而NumberTensorValue则根据库的配置定义为实数或复数值的张量。 更多...
 
class  TypeNTensor
 该类最终将定义一个在类型为T的LIBMESH_DIM维空间中的N阶张量。 更多...
 
class  EpetraMatrix
 此类提供了对Epetra数据结构的并行、稀疏矩阵的友好接口。所有重写的虚拟函数在sparse_matrix.h中都有文档。 更多...
 
class  EpetraVector
 此类提供了对Trilinos Epetra_Vector对象的友好接口。所有重写的虚拟函数在numeric_vector.h中都有文档。 更多...
 
class  TrilinosPreconditioner
 这个类提供了一个接口,用于使用Trilinos提供的预条件器套件。 所有重写的虚拟函数在preconditioner.h中有文档说明。 更多...
 
struct  tuple_n
 
struct  tuple_n< 0, T >
 
class  TypeTensorColumn
 表示 TypeTensorColumn 类,用于访问 TypeTensor 的列并进行写操作。 更多...
 
class  ConstTypeTensorColumn
 表示 ConstTypeTensorColumn 类,用于访问 TypeTensor 的列并进行只读操作。 更多...
 
struct  CompareTypes< TypeVector< T >, TypeVector< T > >
 
struct  CompareTypes< TypeVector< T >, TypeVector< T2 > >
 
struct  CompareTypes< VectorValue< T >, VectorValue< T > >
 
struct  CompareTypes< VectorValue< T >, VectorValue< T2 > >
 
struct  CompareTypes< VectorValue< T >, TypeVector< T2 > >
 
struct  CompareTypes< TypeVector< T >, VectorValue< T2 > >
 
class  WrappedFunction
 将libMesh风格的函数指针封装成FunctionBase对象。 更多...
 
class  WrappedFunctor
 该类提供了一个包装器,用于在FunctionBase<Output>兼容接口中评估(libMesh风格的)函数指针。 更多...
 
struct  WrappedPetsc
 
class  ZeroFunction
 ConstFunction that simply returns 0. 更多...
 

类型定义

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. 更多...
 
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. 更多...
 
typedef TestClass subdomain_id_type
 Based on the 4-byte comment warning above, this probably doesn't work with exodusII at all... 更多...
 
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 int32_t eigen_idx_type
 
typedef Eigen::SparseMatrix
< Number, Eigen::RowMajor,
eigen_idx_type
EigenSM
 
typedef Eigen::Matrix< Number,
Eigen::Dynamic, 1 > 
EigenSV
 
typedef TensorValue< RealRealTensorValue
 用于允许在实数和复数数据类型之间无缝切换的有用typedef。 更多...
 
typedef TensorValue< NumberNumberTensorValue
 
typedef RealTensorValue RealTensor
 
typedef NumberTensorValue Tensor
 
template<std::size_t Index, typename T >
using tuple_of = typename tuple_n< Index, T >::template type<>
 
typedef VectorValue< RealRealVectorValue
 用于实现实数或复数数据类型之间的透明切换的有用typedef。 更多...
 
typedef VectorValue< NumberNumberVectorValue
 
typedef RealVectorValue RealGradient
 
typedef NumberVectorValue Gradient
 

枚举

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. 更多...
 
enum  PetscMatrixType : int { AIJ =0, HYPRE }
 

函数

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.)
 
bool initialized ()
 Checks that library initialization has been done. 更多...
 
bool closed ()
 Checks that the library has been closed. 更多...
 
void libmesh_terminate_handler ()
 
void enableFPE (bool on)
 Toggle floating point exceptions – courtesy of Cody Permann & MOOSE team. 更多...
 
void enableSEGV (bool on)
 Toggle libMesh reporting of segmentation faults. 更多...
 
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 > &name, T value)
 
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. 更多...
 
template<typename T >
void command_line_vector (const std::string &, std::vector< T > &)
 
SolverPackage default_solver_package ()
 
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 > &)
 
void print_trace (std::ostream &out_stream=std::cerr)
 Print a stack trace (for code compiled with gcc) 更多...
 
void write_traceout ()
 Writes a stack trace to a uniquely named file if –enable-tracefiles has been set by configure, otherwise does nothing. 更多...
 
std::string demangle (const char *name)
 Mostly system independent demangler. 更多...
 
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. 更多...
 
 LIBMESH_VMA_INSTANTIATE (Real, int, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, float, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, double, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, int, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, int, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, int, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, float, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, float, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, float, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, std::complex< float >, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, std::complex< float >, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, std::complex< float >, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, double, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, double, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, double, Real)
 
 LIBMESH_VMA_INSTANTIATE (Real, std::complex< double >, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, std::complex< double >, Complex)
 
 LIBMESH_VMA_INSTANTIATE (Complex, std::complex< double >, Real)
 
template<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)
 
int * numeric_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(). 更多...
 
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. 更多...
 
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)
 

变量

DIE A HORRIBLE DEATH HERE
typedef
LIBMESH_DEFAULT_SCALAR_TYPE 
Real
 
DIE A HORRIBLE DEATH HERE
typedef float 
ErrorVectorReal
 
MPI_Comm GLOBAL_COMM_WORLD = MPI_COMM_NULL
 MPI Communicator used to initialize libMesh. 更多...
 
MPI_Errhandler libmesh_errhandler
 
 TRILINOS_SOLVERS
 
 EIGEN_SOLVERS
 
 LASPACK_SOLVERS
 
 INVALID_SOLVER_PACKAGE
 
std::terminate_handler old_terminate_handler
 
const Number imaginary
 The imaginary unit, $ \sqrt{-1} $. 更多...
 
const Real pi
 $ \pi=3.14159... $. 更多...
 
const Number zero = 0.
 $ zero=0. $. 更多...
 
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. 更多...
 
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. 更多...
 
OStreamProxy out
 
OStreamProxy err
 
static constexpr Real TOLERANCE = 2.5e-3
 
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. 更多...
 
PerfLog perflog
 A PerfLog object to log performance. 更多...
 
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 >
 

详细描述

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

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.

类型定义说明

typedef int16_t libMesh::boundary_id_type

在文件 id_types.h51 行定义.

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

在文件 libmesh_common.h179 行定义.

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

在文件 libmesh_common.h180 行定义.

typedef int32_t libMesh::dof_id_signed_type

在文件 id_types.h68 行定义.

typedef uint32_t libMesh::dof_id_type

在文件 id_types.h67 行定义.

typedef std::map<dof_id_type, Real, std::less<dof_id_type>, Threads::scalable_allocator<std::pair<const dof_id_type, Real> > > libMesh::DofConstraintRow

A row of the Dof constraint matrix.

在文件 dof_map.h90 行定义.

typedef int32_t libMesh::eigen_idx_type

在文件 eigen_core_support.h66 行定义.

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

在文件 eigen_core_support.h78 行定义.

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

在文件 eigen_core_support.h79 行定义.

在文件 id_types.h166 行定义.

在文件 vector_value.h151 行定义.

typedef uint8_t libMesh::largest_id_type

在文件 id_types.h148 行定义.

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.

在文件 dof_map.h138 行定义.

在文件 libmesh_common.h214 行定义.

在文件 tensor_value.h221 行定义.

在文件 vector_value.h149 行定义.

在文件 id_types.h99 行定义.

typedef uint64_t libMesh::processor_id_type

在文件 id_types.h104 行定义.

在文件 vector_value.h150 行定义.

在文件 tensor_value.h222 行定义.

用于允许在实数和复数数据类型之间无缝切换的有用typedef。

在文件 tensor_value.h220 行定义.

用于实现实数或复数数据类型之间的透明切换的有用typedef。

在文件 vector_value.h148 行定义.

typedef uint16_t libMesh::subdomain_id_type

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

注解
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.

在文件 id_types.h43 行定义.

在文件 tensor_value.h223 行定义.

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

在文件 tuple_of.h22 行定义.

typedef uint64_t libMesh::unique_id_type

在文件 id_types.h86 行定义.

枚举类型说明

枚举值
AIJ 
HYPRE 

在文件 petsc_matrix.h78 行定义.

78  : int {
79  AIJ=0,
80  HYPRE};

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.

枚举值
SYSTEM_VARIABLE_ORDER 
LOCAL_VARIABLE_ORDER 

在文件 dirichlet_boundaries.h61 行定义.

函数说明

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

在文件 libmesh_common.h613 行定义.

614 {
615  libmesh_assert_equal_to
616  (oldvar, static_cast<Told>(static_cast<Tnew>(oldvar)));
617 
618  return(static_cast<Tnew>(oldvar));
619 }
template<typename Tnew , typename Told >
Tnew libMesh::cast_ptr ( Told *  oldvar)
inline

在文件 libmesh_common.h572 行定义.

参考 err.

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 }
OStreamProxy err
template<typename Tnew , typename Told >
Tnew libMesh::cast_ref ( Told &  oldvar)
inline

在文件 libmesh_common.h546 行定义.

参考 err.

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 }
OStreamProxy err
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.

在文件 libmesh.C268 行定义.

参考 libMesh::libMeshPrivateData::_is_initialized.

参考自 libMesh::PetscMatrix< T >::_get_submatrix(), libMesh::PetscMatrix< T >::add_sparse_matrix(), libMesh::PetscMatrix< T >::clone(), libMesh::PetscMatrix< T >::create_submatrix_nosort(), libMesh::PetscMatrix< T >::get_row(), libMesh::EigenSparseVector< T >::l1_norm(), libMesh::EpetraVector< T >::l1_norm(), libMesh::LaspackVector< T >::l1_norm(), libMesh::PetscVector< T >::l1_norm(), libMesh::PetscMatrix< T >::l1_norm(), libMesh::EigenSparseVector< T >::l2_norm(), libMesh::EpetraVector< T >::l2_norm(), libMesh::LaspackVector< T >::l2_norm(), libMesh::PetscVector< T >::l2_norm(), libMesh::EigenSparseVector< T >::linfty_norm(), libMesh::EpetraVector< T >::linfty_norm(), libMesh::LaspackVector< T >::linfty_norm(), libMesh::PetscVector< T >::linfty_norm(), libMesh::PetscMatrix< T >::linfty_norm(), libMesh::PetscMatrix< T >::operator()(), libMesh::EigenSparseVector< T >::operator*=(), libMesh::EpetraVector< T >::operator*=(), libMesh::DistributedVector< T >::operator+=(), libMesh::EigenSparseVector< T >::operator+=(), libMesh::EpetraVector< T >::operator+=(), libMesh::LaspackVector< T >::operator+=(), libMesh::PetscVector< T >::operator+=(), libMesh::DistributedVector< T >::operator-=(), libMesh::EigenSparseVector< T >::operator-=(), libMesh::EpetraVector< T >::operator-=(), libMesh::LaspackVector< T >::operator-=(), libMesh::PetscVector< T >::operator-=(), libMesh::EigenSparseVector< T >::operator/=(), libMesh::EpetraVector< T >::operator/=(), libMesh::EigenSparseVector< T >::operator=(), libMesh::LaspackVector< T >::operator=(), libMesh::PetscVector< T >::operator=(), libMesh::PetscMatrix< T >::print_matlab(), libMesh::PetscVector< T >::print_matlab(), libMesh::PetscMatrix< T >::print_personal(), libMesh::NumericVector< T >::readable(), libMesh::EigenSparseVector< T >::sum(), libMesh::EpetraVector< T >::sum(), libMesh::LaspackVector< T >::sum(), libMesh::PetscVector< T >::sum(), libMesh::EigenSparseVector< T >::zero(), libMesh::EpetraVector< T >::zero(), libMesh::LaspackVector< T >::zero(), libMesh::PetscVector< T >::zero(), libMesh::PetscMatrix< T >::zero_clone() , 以及 libMesh::LibMeshInit::~LibMeshInit().

269 {
271 }
bool _is_initialized
Flag that tells if init() has been called.
Definition: libmesh.C:242
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.

在文件 libmesh.C937 行定义.

参考 on_command_line().

参考自 libMesh::DofMap::use_coupled_neighbor_dofs().

938 {
939  // on_command_line also puts the command_line cursor in the spot we
940  // need
941  if (on_command_line(name))
942  return command_line->next(value);
943 
944  return value;
945 }
bool on_command_line(std::string arg)
Definition: libmesh.C:872
template LIBMESH_EXPORT char libMesh::command_line_next< char > ( std::string  ,
char   
)
template LIBMESH_EXPORT double libMesh::command_line_next< double > ( std::string  ,
double   
)
template LIBMESH_EXPORT float libMesh::command_line_next< float > ( std::string  ,
float   
)
template LIBMESH_EXPORT int libMesh::command_line_next< int > ( std::string  ,
int   
)
template LIBMESH_EXPORT long double libMesh::command_line_next< long double > ( std::string  ,
long  double 
)
template LIBMESH_EXPORT Real libMesh::command_line_next< Real > ( std::string  ,
Real   
)
template LIBMESH_EXPORT short libMesh::command_line_next< short > ( std::string  ,
short   
)
template LIBMESH_EXPORT std::string libMesh::command_line_next< std::string > ( std::string  ,
std::string   
)
template LIBMESH_EXPORT unsigned char libMesh::command_line_next< unsigned char > ( std::string  ,
unsigned  char 
)
template LIBMESH_EXPORT unsigned int libMesh::command_line_next< unsigned int > ( std::string  ,
unsigned  int 
)
template LIBMESH_EXPORT unsigned short libMesh::command_line_next< unsigned short > ( std::string  ,
unsigned  short 
)
template<typename T >
T libMesh::command_line_value ( const std::string &  ,
 
)
返回
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.

在文件 libmesh.C905 行定义.

906 {
907  // Make sure the command line parser is ready for use
908  libmesh_assert(command_line.get());
909 
910  // only if the variable exists in the file
911  if (command_line->have_variable(name))
912  value = (*command_line)(name, value);
913 
914  return value;
915 }
template<typename T >
T libMesh::command_line_value ( const std::vector< std::string > &  name,
value 
)

在文件 libmesh.C918 行定义.

919 {
920  // Make sure the command line parser is ready for use
921  libmesh_assert(command_line.get());
922 
923  // Check for multiple options (return the first that matches)
924  for (const auto & entry : name)
925  if (command_line->have_variable(entry))
926  {
927  value = (*command_line)(entry, value);
928  break;
929  }
930 
931  return value;
932 }
template LIBMESH_EXPORT char libMesh::command_line_value< char > ( const std::string &  ,
char   
)
template LIBMESH_EXPORT char libMesh::command_line_value< char > ( const std::vector< std::string > &  ,
char   
)
template LIBMESH_EXPORT double libMesh::command_line_value< double > ( const std::string &  ,
double   
)
template LIBMESH_EXPORT double libMesh::command_line_value< double > ( const std::vector< std::string > &  ,
double   
)
template LIBMESH_EXPORT float libMesh::command_line_value< float > ( const std::string &  ,
float   
)
template LIBMESH_EXPORT float libMesh::command_line_value< float > ( const std::vector< std::string > &  ,
float   
)
template LIBMESH_EXPORT int libMesh::command_line_value< int > ( const std::string &  ,
int   
)
template LIBMESH_EXPORT int libMesh::command_line_value< int > ( const std::vector< std::string > &  ,
int   
)
template LIBMESH_EXPORT long double libMesh::command_line_value< long double > ( const std::string &  ,
long  double 
)
template LIBMESH_EXPORT long double libMesh::command_line_value< long double > ( const std::vector< std::string > &  ,
long  double 
)
template LIBMESH_EXPORT Real libMesh::command_line_value< Real > ( const std::string &  ,
Real   
)
template LIBMESH_EXPORT Real libMesh::command_line_value< Real > ( const std::vector< std::string > &  ,
Real   
)
template LIBMESH_EXPORT short libMesh::command_line_value< short > ( const std::string &  ,
short   
)
template LIBMESH_EXPORT short libMesh::command_line_value< short > ( const std::vector< std::string > &  ,
short   
)
template LIBMESH_EXPORT std::string libMesh::command_line_value< std::string > ( const std::string &  ,
std::string   
)
template LIBMESH_EXPORT std::string libMesh::command_line_value< std::string > ( const std::vector< std::string > &  ,
std::string   
)
template LIBMESH_EXPORT unsigned char libMesh::command_line_value< unsigned char > ( const std::string &  ,
unsigned  char 
)
template LIBMESH_EXPORT unsigned char libMesh::command_line_value< unsigned char > ( const std::vector< std::string > &  ,
unsigned  char 
)
template LIBMESH_EXPORT unsigned int libMesh::command_line_value< unsigned int > ( const std::string &  ,
unsigned  int 
)
template LIBMESH_EXPORT unsigned int libMesh::command_line_value< unsigned int > ( const std::vector< std::string > &  ,
unsigned  int 
)
template LIBMESH_EXPORT unsigned short libMesh::command_line_value< unsigned short > ( const std::string &  ,
unsigned  short 
)
template LIBMESH_EXPORT unsigned short libMesh::command_line_value< unsigned short > ( const std::vector< std::string > &  ,
unsigned  short 
)
template<typename T >
void libMesh::command_line_vector ( const std::string &  ,
std::vector< T > &   
)
返回
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.

在文件 libmesh.C950 行定义.

951 {
952  // Make sure the command line parser is ready for use
953  libmesh_assert(command_line.get());
954 
955  // only if the variable exists on the command line
956  if (command_line->have_variable(name))
957  {
958  unsigned size = command_line->vector_variable_size(name);
959  vec.resize(size);
960 
961  for (unsigned i=0; i<size; ++i)
962  vec[i] = (*command_line)(name, vec[i], i);
963  }
964 }
template LIBMESH_EXPORT void libMesh::command_line_vector< char > ( const std::string &  ,
std::vector< char > &   
)
template LIBMESH_EXPORT void libMesh::command_line_vector< double > ( const std::string &  ,
std::vector< double > &   
)
template LIBMESH_EXPORT void libMesh::command_line_vector< float > ( const std::string &  ,
std::vector< float > &   
)
template LIBMESH_EXPORT void libMesh::command_line_vector< int > ( const std::string &  ,
std::vector< int > &   
)
template LIBMESH_EXPORT void libMesh::command_line_vector< long double > ( const std::string &  ,
std::vector< long double > &   
)
template LIBMESH_EXPORT void libMesh::command_line_vector< Real > ( const std::string &  ,
std::vector< Real > &   
)
template LIBMESH_EXPORT void libMesh::command_line_vector< short > ( const std::string &  ,
std::vector< short > &   
)
template LIBMESH_EXPORT void libMesh::command_line_vector< unsigned char > ( const std::string &  ,
std::vector< unsigned char > &   
)
template LIBMESH_EXPORT void libMesh::command_line_vector< unsigned int > ( const std::string &  ,
std::vector< unsigned int > &   
)
template LIBMESH_EXPORT void libMesh::command_line_vector< unsigned short > ( const std::string &  ,
std::vector< unsigned short > &   
)
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.

在文件 type_vector.h1238 行定义.

参考 cross_norm_sq() , 以及 std::sqrt().

1240 {
1241  return std::sqrt(cross_norm_sq(b,c));
1242 }
ADRealEigenVector< T, D, asd > sqrt(const ADRealEigenVector< T, D, asd > &)
计算自动微分实数向量的平方根。
Definition: type_vector.h:88
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:1217
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().

在文件 type_vector.h1217 行定义.

参考自 cross_norm().

1219 {
1220  T z = b(0)*c(1) - b(1)*c(0);
1221 
1222 #if LIBMESH_DIM == 3
1223  T x = b(1)*c(2) - b(2)*c(1),
1224  y = b(0)*c(2) - b(2)*c(0);
1225  return x*x + y*y + z*z;
1226 #else
1227  return z*z;
1228 #endif
1229 }
SolverPackage libMesh::default_solver_package ( )
返回
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.

在文件 libmesh.C967 行定义.

参考 libMesh::libMeshPrivateData::_solver_package, EIGEN_SOLVERS, initialized(), INVALID_SOLVER_PACKAGE, LASPACK_SOLVERS, on_command_line() , 以及 TRILINOS_SOLVERS.

968 {
969  libmesh_assert (libMesh::initialized());
970 
971  static bool called = false;
972 
973  // Check the command line. Since the command line is
974  // unchanging it is sufficient to do this only once.
975  if (!called)
976  {
977  called = true;
978 
979 #ifdef LIBMESH_HAVE_PETSC
980  if (libMesh::on_command_line ("--use-petsc"))
981  libMeshPrivateData::_solver_package = PETSC_SOLVERS;
982 #endif
983 
984 #ifdef LIBMESH_TRILINOS_HAVE_AZTECOO
985  if (libMesh::on_command_line ("--use-trilinos") ||
986  libMesh::on_command_line ("--disable-petsc"))
988 #endif
989 
990 #ifdef LIBMESH_HAVE_EIGEN
991  if (libMesh::on_command_line ("--use-eigen" ) ||
992 #if defined(LIBMESH_HAVE_MPI)
993  // If the user bypassed MPI, we disable PETSc and Trilinos
994  // too
995  libMesh::on_command_line ("--disable-mpi") ||
996 #endif
997  libMesh::on_command_line ("--disable-petsc"))
999 #endif
1000 
1001 #ifdef LIBMESH_HAVE_LASPACK
1002  if (libMesh::on_command_line ("--use-laspack" ) ||
1003 #if defined(LIBMESH_HAVE_MPI)
1004  // If the user bypassed MPI, we disable PETSc and Trilinos
1005  // too
1006  libMesh::on_command_line ("--disable-mpi") ||
1007 #endif
1008  libMesh::on_command_line ("--disable-petsc"))
1010 #endif
1011 
1012  if (libMesh::on_command_line ("--disable-laspack") &&
1013  libMesh::on_command_line ("--disable-trilinos") &&
1014  libMesh::on_command_line ("--disable-eigen") &&
1015  (
1016 #if defined(LIBMESH_HAVE_MPI)
1017  // If the user bypassed MPI, we disable PETSc too
1018  libMesh::on_command_line ("--disable-mpi") ||
1019 #endif
1020  libMesh::on_command_line ("--disable-petsc")))
1022  }
1023 
1024 
1026 }
EIGEN_SOLVERS
Definition: libmesh.C:249
TRILINOS_SOLVERS
Definition: libmesh.C:247
LASPACK_SOLVERS
Definition: libmesh.C:251
bool initialized()
Checks that library initialization has been done.
Definition: libmesh.C:261
INVALID_SOLVER_PACKAGE
Definition: libmesh.C:253
bool on_command_line(std::string arg)
Definition: libmesh.C:872
SolverPackage _solver_package
The default solver package to use.
Definition: libmesh.C:243
std::string libMesh::demangle ( const char *  name)

Mostly system independent demangler.

在文件 print_trace.C261 行定义.

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 }
void libMesh::enableFPE ( bool  on)

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

Toggle hardware trap floating point exceptions.

在文件 libmesh.C800 行定义.

参考自 libMesh::LibMeshInit::~LibMeshInit().

801 {
802 #if !defined(LIBMESH_HAVE_FEENABLEEXCEPT) && defined(LIBMESH_HAVE_XMMINTRIN_H)
803  static int flags = 0;
804 #endif
805 
806  if (on)
807  {
808 #ifdef LIBMESH_HAVE_FEENABLEEXCEPT
809  feenableexcept(FE_DIVBYZERO | FE_INVALID);
810 #elif LIBMESH_HAVE_XMMINTRIN_H
811  flags = _MM_GET_EXCEPTION_MASK(); // store the flags
812  _MM_SET_EXCEPTION_MASK(flags & ~_MM_MASK_INVALID);
813 #endif
814 
815 #if LIBMESH_HAVE_DECL_SIGACTION
816  struct sigaction new_action, old_action;
817 
818  // Set up the structure to specify the new action.
819  new_action.sa_sigaction = libmesh_handleFPE;
820  sigemptyset (&new_action.sa_mask);
821  new_action.sa_flags = SA_SIGINFO;
822 
823  sigaction (SIGFPE, nullptr, &old_action);
824  if (old_action.sa_handler != SIG_IGN)
825  sigaction (SIGFPE, &new_action, nullptr);
826 #endif
827  }
828  else
829  {
830 #ifdef LIBMESH_HAVE_FEDISABLEEXCEPT
831  fedisableexcept(FE_DIVBYZERO | FE_INVALID);
832 #elif LIBMESH_HAVE_XMMINTRIN_H
833  _MM_SET_EXCEPTION_MASK(flags);
834 #endif
835  signal(SIGFPE, SIG_DFL);
836  }
837 }
void libMesh::enableSEGV ( bool  on)

Toggle libMesh reporting of segmentation faults.

在文件 libmesh.C842 行定义.

843 {
844 #if LIBMESH_HAVE_DECL_SIGACTION
845  static struct sigaction old_action;
846  static bool was_on = false;
847 
848  if (on)
849  {
850  struct sigaction new_action;
851  was_on = true;
852 
853  // Set up the structure to specify the new action.
854  new_action.sa_sigaction = libmesh_handleSEGV;
855  sigemptyset (&new_action.sa_mask);
856  new_action.sa_flags = SA_SIGINFO;
857 
858  sigaction (SIGSEGV, &new_action, &old_action);
859  }
860  else if (was_on)
861  {
862  was_on = false;
863  sigaction (SIGSEGV, &old_action, nullptr);
864  }
865 #else
866  libmesh_error_msg("System call sigaction not supported.");
867 #endif
868 }
OStreamProxy libMesh::err ( std::cerr  )
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.

在文件 libmesh_version.C80 行定义.

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

在文件 libmesh_version.C46 行定义.

参考自 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 }
libMesh::processor_id_type libMesh::global_n_processors ( )
inline
返回
The number of processors libMesh was initialized with.

在文件 libmesh_base.h75 行定义.

参考 libMesh::libMeshPrivateData::_n_processors.

参考自 libMesh::MacroFunctions::report_error() , 以及 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:238
libMesh::processor_id_type libMesh::global_processor_id ( )
inline
返回
The index of the local processor with respect to the original MPI pool libMesh was initialized with.

在文件 libmesh_base.h85 行定义.

参考 libMesh::libMeshPrivateData::_processor_id.

参考自 libMesh::MacroFunctions::here() , 以及 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:239
const Number libMesh::imaginary ( 0.  ,
1.   
)
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.

在文件 libmesh.C261 行定义.

参考 libMesh::libMeshPrivateData::_is_initialized.

参考自 libMesh::PetscVector< T >::_get_array(), libMesh::PetscVector< T >::_restore_array(), libMesh::DistributedVector< T >::abs(), libMesh::EigenSparseVector< T >::abs(), libMesh::LaspackVector< T >::abs(), libMesh::EigenSparseMatrix< T >::add(), libMesh::DistributedVector< T >::add(), libMesh::EigenSparseVector< T >::add(), libMesh::LaspackMatrix< T >::add(), libMesh::EpetraMatrix< T >::add(), libMesh::PetscMatrix< T >::add(), libMesh::LaspackVector< T >::add(), libMesh::PetscMatrix< T >::add_block_matrix(), libMesh::EigenSparseMatrix< T >::add_matrix(), libMesh::LaspackMatrix< T >::add_matrix(), libMesh::EpetraMatrix< T >::add_matrix(), libMesh::PetscMatrix< T >::add_matrix(), libMesh::LaspackMatrix< T >::clear(), libMesh::PetscShellMatrix< T >::clear(), libMesh::EpetraVector< T >::clear(), libMesh::LaspackVector< T >::clear(), libMesh::PetscVector< T >::clear(), libMesh::PetscMatrix< T >::clear(), libMesh::DistributedVector< T >::close(), libMesh::EigenSparseVector< T >::close(), libMesh::EpetraVector< T >::close(), libMesh::LaspackVector< T >::close(), libMesh::LaspackMatrix< T >::close(), libMesh::EpetraMatrix< T >::closed(), libMesh::PetscMatrix< T >::closed(), default_solver_package(), libMesh::EigenSparseVector< T >::dot(), libMesh::LaspackVector< T >::dot(), libMesh::DistributedVector< T >::first_local_index(), libMesh::EigenSparseVector< T >::first_local_index(), libMesh::EpetraVector< T >::first_local_index(), libMesh::LaspackVector< T >::first_local_index(), libMesh::PetscVector< T >::first_local_index(), libMesh::PetscMatrix< T >::get_local_size(), libMesh::PetscMatrix< T >::get_row(), libMesh::EigenSparseMatrix< T >::init(), libMesh::DistributedVector< T >::init(), libMesh::LaspackMatrix< T >::init(), libMesh::EigenSparseVector< T >::init(), libMesh::PetscShellMatrix< T >::init(), libMesh::EpetraMatrix< T >::init(), libMesh::PetscMatrix< T >::init(), libMesh::PetscVector< T >::init(), libMesh::DistributedVector< T >::l1_norm(), libMesh::EigenSparseVector< T >::l1_norm(), libMesh::EpetraMatrix< T >::l1_norm(), libMesh::PetscMatrix< T >::l1_norm(), libMesh::DistributedVector< T >::l2_norm(), libMesh::EigenSparseVector< T >::l2_norm(), libMesh::DistributedVector< T >::last_local_index(), libMesh::EigenSparseVector< T >::last_local_index(), libMesh::EpetraVector< T >::last_local_index(), libMesh::LaspackVector< T >::last_local_index(), libMesh::PetscVector< T >::last_local_index(), libMesh::DistributedVector< T >::linfty_norm(), libMesh::EigenSparseVector< T >::linfty_norm(), libMesh::EpetraMatrix< T >::linfty_norm(), libMesh::PetscMatrix< T >::linfty_norm(), libMesh::PetscMatrix< T >::local_m(), libMesh::PetscMatrix< T >::local_n(), libMesh::DistributedVector< T >::local_size(), libMesh::EigenSparseVector< T >::local_size(), libMesh::EpetraVector< T >::local_size(), libMesh::LaspackVector< T >::local_size(), libMesh::PetscVector< T >::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< T >::m(), libMesh::PetscVector< T >::map_global_to_local_index(), libMesh::PetscMatrix< T >::matrix_matrix_mult(), libMesh::DistributedVector< T >::max(), libMesh::EigenSparseVector< T >::max(), libMesh::EpetraVector< T >::max(), libMesh::LaspackVector< T >::max(), libMesh::DistributedVector< T >::min(), libMesh::EigenSparseVector< T >::min(), libMesh::EpetraVector< T >::min(), libMesh::LaspackVector< T >::min(), libMesh::EigenSparseMatrix< T >::n(), libMesh::LaspackMatrix< T >::n(), libMesh::EpetraMatrix< T >::n(), libMesh::PetscMatrix< T >::n(), libMesh::AnalyticFunction< Output >::operator()(), libMesh::EigenSparseMatrix< T >::operator()(), libMesh::DistributedVector< T >::operator()(), libMesh::EigenSparseVector< T >::operator()(), libMesh::LaspackMatrix< T >::operator()(), libMesh::EpetraMatrix< T >::operator()(), libMesh::EpetraVector< T >::operator()(), libMesh::LaspackVector< T >::operator()(), libMesh::PetscMatrix< T >::operator()(), libMesh::DistributedVector< T >::operator+=(), libMesh::DistributedVector< T >::operator-=(), libMesh::DistributedVector< T >::operator=(), libMesh::EigenSparseVector< T >::operator=(), libMesh::LaspackVector< T >::operator=(), libMesh::SparseMatrix< T >::print(), libMesh::NumericVector< T >::print(), libMesh::NumericVector< T >::print_global(), libMesh::PetscMatrix< T >::print_matlab(), libMesh::EpetraMatrix< T >::print_personal(), libMesh::PetscMatrix< T >::print_personal(), libMesh::NumericVector< T >::readable(), libMesh::PetscMatrix< T >::reset_preallocation(), libMesh::EpetraMatrix< T >::row_start(), libMesh::PetscMatrix< T >::row_start(), libMesh::EpetraMatrix< T >::row_stop(), libMesh::PetscMatrix< T >::row_stop(), libMesh::DistributedVector< T >::scale(), libMesh::EigenSparseVector< T >::scale(), libMesh::LaspackVector< T >::scale(), libMesh::EigenSparseMatrix< T >::set(), libMesh::DistributedVector< T >::set(), libMesh::LaspackMatrix< T >::set(), libMesh::EigenSparseVector< T >::set(), libMesh::EpetraMatrix< T >::set(), libMesh::PetscMatrix< T >::set(), libMesh::LaspackVector< T >::set(), libMesh::DistributedVector< T >::size(), libMesh::EigenSparseVector< T >::size(), libMesh::EpetraVector< T >::size(), libMesh::LaspackVector< T >::size(), libMesh::PetscVector< T >::size(), libMesh::DistributedVector< T >::sum(), libMesh::EigenSparseVector< T >::sum(), libMesh::LaspackMatrix< T >::update_sparsity_pattern(), libMesh::EpetraMatrix< T >::update_sparsity_pattern(), libMesh::DistributedVector< T >::zero(), libMesh::EigenSparseVector< T >::zero(), libMesh::EpetraMatrix< T >::zero(), libMesh::EpetraVector< T >::zero(), libMesh::LaspackVector< T >::zero(), libMesh::PetscMatrix< T >::zero() , 以及 libMesh::PetscMatrix< T >::zero_rows().

262 {
264 }
bool _is_initialized
Flag that tells if init() has been called.
Definition: libmesh.C:242
template<typename Tnew , typename Told >
Tnew libMesh::libmesh_cast_int ( Told  oldvar)
inline

在文件 libmesh_common.h623 行定义.

624 {
625  // we use the less redundantly named libMesh::cast_int now
626  return cast_int<Tnew>(oldvar);
627 }
template<typename Tnew , typename Told >
Tnew libMesh::libmesh_cast_ptr ( Told *  oldvar)
inline

在文件 libmesh_common.h595 行定义.

596 {
597  libmesh_deprecated();
598 
599  // we use the less redundantly named libMesh::cast_ptr now
600  return cast_ptr<Tnew>(oldvar);
601 }
template<typename T >
T libMesh::libmesh_conj ( a)
inline
template<typename T >
std::complex<T> libMesh::libmesh_conj ( std::complex< T >  a)
inline

在文件 libmesh_common.h192 行定义.

192 { return std::conj(a); }
template<class... Args>
void libMesh::libmesh_ignore ( const Args &  ...)
inline
template<typename T >
bool libMesh::libmesh_isinf ( x)
inline

在文件 libmesh_common.h204 行定义.

204 { return std::isinf(x); }
template<typename T >
bool libMesh::libmesh_isinf ( std::complex< T >  a)
inline

在文件 libmesh_common.h207 行定义.

参考 std::imag() , 以及 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)
template<typename T >
bool libMesh::libmesh_isnan ( x)
inline

在文件 libmesh_common.h196 行定义.

参考自 libMesh::DofMap::allgather_recursive_constraints().

196 { return std::isnan(x); }
template<typename T >
bool libMesh::libmesh_isnan ( std::complex< T >  a)
inline

在文件 libmesh_common.h199 行定义.

参考 std::imag() , 以及 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)
template<typename T >
void libMesh::libmesh_merge_move ( T &  target,
T &  source 
)

在文件 libmesh_common.h524 行定义.

525 {
526  target.merge(std::move(source));
527 }
template<typename T >
T libMesh::libmesh_real ( a)
inline
template<typename T >
T libMesh::libmesh_real ( std::complex< T >  a)
inline

在文件 libmesh_common.h189 行定义.

参考 std::real().

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

在文件 libmesh.C277 行定义.

参考 err, GLOBAL_COMM_WORLD, old_terminate_handler, perflog , 以及 write_traceout().

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

在文件 libmesh_version.C23 行定义.

参考 get_libmesh_version().

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::LIBMESH_VMA_INSTANTIATE ( Real  ,
int  ,
Real   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
float  ,
Real   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
double  ,
Real   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
int  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
int  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
int  ,
Real   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
float  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
float  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
float  ,
Real   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
std::complex< float >  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
std::complex< float >  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
std::complex< float >  ,
Real   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
double  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
double  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
double  ,
Real   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Real  ,
std::complex< double >  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
std::complex< double >  ,
Complex   
)
libMesh::LIBMESH_VMA_INSTANTIATE ( Complex  ,
std::complex< double >  ,
Real   
)
unsigned int libMesh::n_threads ( )
inline
返回
The maximum number of threads used in the simulation.

在文件 libmesh_base.h96 行定义.

参考 libMesh::libMeshPrivateData::_n_threads.

97 {
98  return static_cast<unsigned int>(libMeshPrivateData::_n_threads);
99 }
int _n_threads
Total number of threads possible.
Definition: libmesh.C:241
PetscInt* libMesh::numeric_petsc_cast ( const numeric_index_type *  p)
inline
int* libMesh::numeric_trilinos_cast ( const numeric_index_type *  p)
inline

在文件 trilinos_epetra_vector.h1241 行定义.

参考自 libMesh::EpetraMatrix< T >::add_matrix(), libMesh::EpetraVector< T >::add_vector() , 以及 libMesh::EpetraVector< T >::insert().

1242 {
1243  return reinterpret_cast<int *>(const_cast<numeric_index_type *>(p));
1244 }
dof_id_type numeric_index_type
Definition: id_types.h:99
bool libMesh::on_command_line ( std::string  arg)
返回
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.

在文件 libmesh.C872 行定义.

参考自 command_line_next(), default_solver_package(), libMesh::DofMap::distribute_dofs(), print_trace(), libMesh::MacroFunctions::report_error(), libMesh::DofMap::use_coupled_neighbor_dofs() , 以及 libMesh::LibMeshInit::~LibMeshInit().

873 {
874  // Make sure the command line parser is ready for use
875  libmesh_assert(command_line.get());
876 
877  // Users had better not be asking about an empty string
878  libmesh_assert(!arg.empty());
879 
880  bool found_it = command_line->search(arg);
881 
882  if (!found_it)
883  {
884  // Try with all dashes instead of underscores
885  std::replace(arg.begin(), arg.end(), '_', '-');
886  found_it = command_line->search(arg);
887  }
888 
889  if (!found_it)
890  {
891  // OK, try with all underscores instead of dashes
892  auto name_begin = arg.begin();
893  while (*name_begin == '-')
894  ++name_begin;
895  std::replace(name_begin, arg.end(), '-', '_');
896  found_it = command_line->search(arg);
897  }
898 
899  return found_it;
900 }
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 > &   
)

在文件 type_n_tensor.h297 行定义.

298 {
299  libmesh_not_implemented();
300  return TypeNTensor<N,typename CompareTypes<Scalar, T>::supertype>();
301 }
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

在文件 type_vector.h916 行定义.

918 {
919  return v * factor;
920 }
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

在文件 type_tensor.h1093 行定义.

1095 {
1096  return t * factor;
1097 }
template<typename T , typename T2 >
TypeVector<typename CompareTypes<T,T2>::supertype> libMesh::operator* ( const TypeVector< T > &  a,
const TypeTensor< T2 > &  b 
)
inline

在文件 type_tensor.h1314 行定义.

参考 libMesh::TypeTensor< T >::left_multiply().

1315 {
1316  return b.left_multiply(a);
1317 }
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 > &   
)

在文件 type_n_tensor.h307 行定义.

308 {
309  libmesh_not_implemented();
310  return TypeNTensor<N,typename CompareTypes<Scalar, T>::supertype>();
311 }
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);
注解
上面的语法不需要任何对 operator<< 的先前声明, 它声明了 SparseMatrix<X> 的任何实例是 SparseMatrix<Y> 的 operator<<(ostream &, SparseMatrix<Y> &) 的 friend。 实际上不会发生这种情况,但原则上这意味着 SparseMatrix<Complex> 将是 operator<<(ostream &, SparseMatrix<Real>) 的 friend。
下面的形式,它要求先前声明 operator<<(stream &, SparseMatrix<T> &) 函数(见本文件顶部), 意味着 SparseMatrix<T> 的任何实例是 operator<<(ostream &, SparseMatrix<T> &) 的特化的 friend, 但例如 SparseMatrix<U> 不是同一函数的 friend。因此,这与上面的形式略有不同...

这种方法似乎是“首选”技术,参见 http://www.parashift.com/c++-faq-lite/template-friends.html

在文件 sparse_matrix.h517 行定义.

518 {
519  m.print(os);
520  return os;
521 }
OStreamProxy libMesh::out ( std::cout  )
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 
)

在文件 type_vector.h1284 行定义.

参考 libmesh_conj().

1285 {
1286  TypeVector<typename CompareTypes<T, T2>::supertype> ret;
1287  for (unsigned int i = 0; i < LIBMESH_DIM; i++)
1288  ret(i) = a * libmesh_conj(b(i));
1289 
1290  return ret;
1291 }
T libmesh_conj(T a)
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 
)

在文件 type_vector.h1295 行定义.

参考 libmesh_conj().

1296 {
1297  TypeVector<typename CompareTypes<T, T2>::supertype> ret;
1298  const auto conj_b = libmesh_conj(b);
1299  for (unsigned int i = 0; i < LIBMESH_DIM; i++)
1300  ret(i) = a(i) * conj_b;
1301 
1302  return ret;
1303 }
T libmesh_conj(T a)
template<typename T , typename T2 >
TypeTensor<typename CompareTypes<T, T2>::supertype> libMesh::outer_product ( const TypeVector< T > &  a,
const TypeVector< T2 > &  b 
)
inline

在文件 type_tensor.h1483 行定义.

参考 libmesh_conj().

1484 {
1485  TypeTensor<typename CompareTypes<T, T2>::supertype> ret;
1486  for (unsigned int i=0; i<LIBMESH_DIM; i++)
1487  for (unsigned int j=0; j<LIBMESH_DIM; j++)
1488  ret(i,j) = a(i) * libmesh_conj(b(j));
1489 
1490  return ret;
1491 }
T libmesh_conj(T a)
PerfLog libMesh::perflog ( "libMesh"  ,
#ifdef LIBMESH_ENABLE_PERFORMANCE_LOGGING true#else false#  endif 
)
template<typename T >
PetscReal * libMesh::pPR ( T *  ptr)

在文件 petsc_macro.h184 行定义.

185 {
186  return &(ptr->backend().value());
187 }
template<typename T >
const PetscReal * libMesh::pPR ( const T *  ptr)

在文件 petsc_macro.h190 行定义.

191 {
192  return &(ptr->backend().value());
193 }
template<typename T >
PetscScalar * libMesh::pPS ( T *  ptr)
template<typename T >
const PetscScalar * libMesh::pPS ( const T *  ptr)

在文件 petsc_macro.h178 行定义.

179 {
180  return &(ptr->backend().value());
181 }
void libMesh::print_trace ( std::ostream &  out_stream)

Print a stack trace (for code compiled with gcc)

在文件 print_trace.C206 行定义.

参考 on_command_line().

参考自 libMesh::MacroFunctions::report_error() , 以及 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:872
template<typename T >
PetscScalar libMesh::PS ( val)
template<typename T >
T libMesh::triple_product ( const TypeVector< T > &  a,
const TypeVector< T > &  b,
const TypeVector< T > &  c 
)
inline

在文件 type_vector.h1194 行定义.

参考 libmesh_ignore().

1197 {
1198 #if LIBMESH_DIM == 3
1199  return
1200  a(0)*(b(1)*c(2) - b(2)*c(1)) -
1201  a(1)*(b(0)*c(2) - b(2)*c(0)) +
1202  a(2)*(b(0)*c(1) - b(1)*c(0));
1203 #else
1204  libmesh_ignore(a, b, c);
1205  return 0;
1206 #endif
1207 }
void libmesh_ignore(const Args &...)
bool libMesh::warned_about_auto_ptr ( false  )
void libMesh::write_traceout ( )

Writes a stack trace to a uniquely named file if –enable-tracefiles has been set by configure, otherwise does nothing.

注解
We append to the trace file rather than overwriting it. This allows multiple traces to be written to the same file.

在文件 print_trace.C244 行定义.

参考 global_processor_id() , 以及 print_trace().

参考自 libmesh_terminate_handler() , 以及 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)
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

变量说明

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.

在文件 libmesh_common.h635 行定义.

template class LIBMESH_EXPORT libMesh::DenseMatrix< Complex >

在文件 dense_matrix.C49 行定义.

template class LIBMESH_EXPORT libMesh::DenseMatrix< Real >

在文件 dense_matrix.C35 行定义.

template class LIBMESH_EXPORT libMesh::DenseMatrixBase< Complex >

在文件 dense_matrix_base.C29 行定义.

template class LIBMESH_EXPORT libMesh::DenseMatrixBase< Real >

在文件 dense_matrix_base.C26 行定义.

template class LIBMESH_EXPORT libMesh::DenseSubMatrix< Complex >

在文件 dense_submatrix.C71 行定义.

template class LIBMESH_EXPORT libMesh::DenseSubMatrix< Real >

在文件 dense_submatrix.C68 行定义.

template class LIBMESH_EXPORT libMesh::DenseSubVector< Complex >

在文件 dense_subvector.C30 行定义.

template class LIBMESH_EXPORT libMesh::DenseSubVector< Real >

在文件 dense_subvector.C27 行定义.

template class LIBMESH_EXPORT libMesh::DenseVector< Complex >

在文件 dense_vector.C32 行定义.

template class LIBMESH_EXPORT libMesh::DenseVector< Real >

在文件 dense_vector.C29 行定义.

template class LIBMESH_EXPORT libMesh::DenseVectorBase< Complex >

在文件 dense_vector_base.C65 行定义.

template class LIBMESH_EXPORT libMesh::DenseVectorBase< Real >

在文件 dense_vector_base.C62 行定义.

template class LIBMESH_EXPORT libMesh::DiagonalMatrix< Number >

在文件 diagonal_matrix.C304 行定义.

template class LIBMESH_EXPORT libMesh::DistributedVector< Number >

在文件 distributed_vector.C631 行定义.

libMesh::EIGEN_SOLVERS
template class LIBMESH_EXPORT libMesh::EigenPreconditioner< Number >

在文件 eigen_preconditioner.C52 行定义.

template class LIBMESH_EXPORT libMesh::EigenSparseMatrix< Number >

在文件 eigen_sparse_matrix.C369 行定义.

template class LIBMESH_EXPORT libMesh::EigenSparseVector< Number >

在文件 eigen_sparse_vector.C476 行定义.

template class LIBMESH_EXPORT libMesh::EpetraMatrix< Number >

在文件 trilinos_epetra_matrix.C555 行定义.

template class LIBMESH_EXPORT libMesh::EpetraVector< Number >

在文件 trilinos_epetra_vector.C936 行定义.

OStreamProxy libMesh::err
DIE A HORRIBLE DEATH HERE typedef float libMesh::ErrorVectorReal

在文件 libmesh_common.h225 行定义.

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.

在文件 libmesh.C198 行定义.

参考自 libmesh_terminate_handler().

const Number libMesh::imaginary

The imaginary unit, $ \sqrt{-1} $.

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.

在文件 libmesh.h260 行定义.

libMesh::INVALID_SOLVER_PACKAGE

在文件 libmesh.C253 行定义.

参考自 default_solver_package().

const unsigned int libMesh::invalid_uint = static_cast<unsigned int>(-1)
libMesh::LASPACK_SOLVERS
template class LIBMESH_EXPORT libMesh::LaspackMatrix< Number >

在文件 laspack_matrix.C520 行定义.

template class LIBMESH_EXPORT libMesh::LaspackVector< Number >

在文件 laspack_vector.C531 行定义.

MPI_Errhandler libMesh::libmesh_errhandler

在文件 libmesh.C236 行定义.

template class LIBMESH_EXPORT libMesh::LumpedMassMatrix< Number >

在文件 lumped_mass_matrix.C115 行定义.

template class LIBMESH_EXPORT libMesh::NumericVector< Number >

在文件 numeric_vector.C436 行定义.

std::terminate_handler libMesh::old_terminate_handler

在文件 libmesh.C275 行定义.

参考自 libmesh_terminate_handler() , 以及 libMesh::LibMeshInit::~LibMeshInit().

OStreamProxy libMesh::out
PerfLog libMesh::perflog

A PerfLog object to log performance.

If the library is configured with –enable-perflog then it will log key functions.

参考自 libmesh_terminate_handler() , 以及 libMesh::LibMeshInit::~LibMeshInit().

template class LIBMESH_EXPORT libMesh::PetscMatrix< Number >

在文件 petsc_matrix.C1421 行定义.

template class LIBMESH_EXPORT libMesh::PetscPreconditioner< Number >

在文件 petsc_preconditioner.C307 行定义.

template class LIBMESH_EXPORT libMesh::PetscShellMatrix< Number >

在文件 petsc_shell_matrix.C122 行定义.

template class LIBMESH_EXPORT libMesh::PetscVector< Number >

在文件 petsc_vector.C1392 行定义.

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

$ \pi=3.14159... $.

在文件 libmesh.h242 行定义.

参考自 libMesh::TensorValue< T >::extrinsic_rotation_matrix() , 以及 libMesh::TensorValue< T >::intrinsic_rotation_matrix().

template class LIBMESH_EXPORT libMesh::Preconditioner< Number >

在文件 preconditioner.C86 行定义.

DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE libMesh::Real

在文件 libmesh_common.h143 行定义.

参考自 libMesh::DofMap::allgather_recursive_constraints(), libMesh::DofMap::check_for_constraint_loops(), libMesh::DofMap::gather_constraints(), libMesh::ParsedFEMFunction< Output >::get_inline_value(), libMesh::ParsedFunction< Output, OutputGradient >::get_inline_value(), libMesh::TensorValue< T >::intrinsic_rotation_matrix(), libMesh::DenseSubVector< T >::l1_norm(), libMesh::DistributedVector< T >::l1_norm(), libMesh::EpetraMatrix< T >::l1_norm(), libMesh::EpetraVector< T >::l1_norm(), libMesh::DenseVector< T >::l1_norm(), libMesh::LaspackVector< T >::l1_norm(), libMesh::PetscVector< T >::l1_norm(), libMesh::PetscMatrix< T >::l1_norm(), libMesh::DenseSubVector< T >::l2_norm(), libMesh::DistributedVector< T >::l2_norm(), libMesh::EpetraVector< T >::l2_norm(), libMesh::DenseVector< T >::l2_norm(), libMesh::LaspackVector< T >::l2_norm(), libMesh::PetscVector< T >::l2_norm(), libMesh::NumericVector< T >::l2_norm_diff(), libMesh::EigenSparseMatrix< T >::linfty_norm(), libMesh::DenseSubVector< T >::linfty_norm(), libMesh::DistributedVector< T >::linfty_norm(), libMesh::EpetraMatrix< T >::linfty_norm(), libMesh::EpetraVector< T >::linfty_norm(), libMesh::DenseVector< T >::linfty_norm(), libMesh::LaspackVector< T >::linfty_norm(), libMesh::PetscVector< T >::linfty_norm(), libMesh::PetscMatrix< T >::linfty_norm(), libMesh::DenseSubVector< T >::max(), libMesh::DistributedVector< T >::max(), libMesh::EigenSparseVector< T >::max(), libMesh::LaspackVector< T >::max(), libMesh::DenseVector< T >::max(), libMesh::PetscVector< T >::max(), libMesh::DofMap::max_constraint_error(), libMesh::DenseSubVector< T >::min(), libMesh::DistributedVector< T >::min(), libMesh::EigenSparseVector< T >::min(), libMesh::LaspackVector< T >::min(), libMesh::DenseVector< T >::min(), libMesh::PetscVector< T >::min(), libMesh::TypeTensor< T >::norm_sq(), libMesh::ParsedFEMFunction< Output >::partial_reparse(), libMesh::ParsedFunction< Output, OutputGradient >::partial_reparse(), libMesh::DofMap::process_constraints(), libMesh::NumericVector< T >::subset_l1_norm(), libMesh::NumericVector< T >::subset_l2_norm() , 以及 libMesh::NumericVector< T >::subset_linfty_norm().

template class LIBMESH_EXPORT libMesh::ShellMatrix< Number >

在文件 shell_matrix.C53 行定义.

template class LIBMESH_EXPORT libMesh::SparseMatrix< Number >

在文件 sparse_matrix.C351 行定义.

template class LIBMESH_EXPORT libMesh::SparseShellMatrix< Number >

在文件 sparse_shell_matrix.C46 行定义.

template class LIBMESH_EXPORT libMesh::SumShellMatrix< Number >

在文件 sum_shell_matrix.C91 行定义.

template class LIBMESH_EXPORT libMesh::TensorShellMatrix< Number >

在文件 tensor_shell_matrix.C55 行定义.

static constexpr Real libMesh::TOLERANCE = 2.5e-3
static
libMesh::TRILINOS_SOLVERS
template class LIBMESH_EXPORT libMesh::TrilinosPreconditioner< Number >

在文件 trilinos_preconditioner.C260 行定义.

template class LIBMESH_EXPORT libMesh::TypeTensor< Complex >

在文件 type_tensor.C194 行定义.

template class LIBMESH_EXPORT libMesh::TypeTensor< Real >

在文件 type_tensor.C191 行定义.

template class LIBMESH_EXPORT libMesh::TypeVector< Complex >

在文件 type_vector.C230 行定义.

template class LIBMESH_EXPORT libMesh::TypeVector< Real >

在文件 type_vector.C227 行定义.

bool libMesh::warned_about_auto_ptr
const Number libMesh::zero = 0.