DOLFINx 0.9.0
DOLFINx C++ interface
Loading...
Searching...
No Matches
dolfinx Namespace Reference

Top-level namespace. More...

Namespaces

namespace  common
 Miscellaneous classes, functions and types.
 
namespace  fem
 Finite element method functionality.
 
namespace  geometry
 Geometry data structures and algorithms.
 
namespace  graph
 Graph data structures and algorithms.
 
namespace  io
 Support for file IO.
 
namespace  la
 Linear algebra interface.
 
namespace  mesh
 Mesh data structures and algorithms on meshes.
 
namespace  MPI
 MPI support functionality.
 
namespace  nls
 Nonlinear solvers.
 
namespace  refinement
 Mesh refinement algorithms.
 

Classes

struct  __radix_sort
 
class  Table
 This class provides storage and pretty-printing for tables. More...
 

Concepts

concept  scalar
 

Enumerations

enum class  TimingType : int { wall = 0 , user = 1 , system = 2 }
 Timing types. More...
 

Functions

std::string version ()
 Return DOLFINx version string.
 
std::string ufcx_signature ()
 Return UFC signature string.
 
std::string git_commit_hash ()
 
consteval bool has_debug ()
 
consteval bool has_petsc ()
 Return true if DOLFINx is compiled with PETSc.
 
consteval bool has_slepc ()
 Return true if DOLFINx is compiled with SLEPc.
 
consteval bool has_parmetis ()
 Return true if DOLFINx is compiled with ParMETIS.
 
consteval bool has_kahip ()
 Return true if DOLFINx is compiled with KaHIP.
 
consteval bool has_adios2 ()
 Return true if DOLFINX is compiled with ADIOS2.
 
consteval bool has_ptscotch ()
 Return true if DOLFINX is compiled with PT-SCOTCH.
 
consteval bool has_complex_ufcx_kernels ()
 
void init_logging (int argc, char *argv[])
 Optional initialisation of the logging backend.
 
template<typename T , int BITS = 16>
std::vector< std::int32_t > sort_by_perm (std::span< const T > x, std::size_t shape1)
 Compute the permutation array that sorts a 2D array by row.
 
Table timings (std::set< TimingType > type)
 Return a summary of timings and tasks in a Table.
 
void list_timings (MPI_Comm comm, std::set< TimingType > type, Table::Reduction reduction=Table::Reduction::max)
 List a summary of timings and tasks.
 
std::tuple< std::size_t, double, double, double > timing (std::string task)
 Return timing (count, total wall time, total user time, total system time) for given task.
 

Variables

constexpr __radix_sort radix_sort {}
 Radix sort.
 

Detailed Description

Top-level namespace.

Enumeration Type Documentation

◆ TimingType

enum class TimingType : int
strong

Timing types.

Enumerator
wall 

Wall-clock time.

user 

User (cpu) time.

system 

System (kernel) time.

Function Documentation

◆ git_commit_hash()

std::string git_commit_hash ( )

Return git changeset hash (returns "unknown" if changeset is not known)

◆ has_complex_ufcx_kernels()

bool has_complex_ufcx_kernels ( )
consteval

Return true if DOLFINx supports UFCx kernels with arguments of type C99 _Complex. When DOLFINx was built with MSVC this returns false. This returning false does not preclude using DOLFINx with kernels accepting std::complex.

◆ has_debug()

bool has_debug ( )
consteval

Return true if DOLFINx is compiled in debugging mode, i.e., with assertions on

◆ init_logging()

void init_logging ( int argc,
char * argv[] )

Optional initialisation of the logging backend.

The log verbosity can be controlled from the command line using SPDLOG_LEVEL=<level>, where <level> is info, warn, debug, etc.

The full spdlog API can be used in applications to control the log system. See https://github.com/gabime/spdlog for the spdlog documentation.

Parameters
[in]argcNumber of command line arguments.
[in]argvCommand line argument vector.

◆ list_timings()

void list_timings ( MPI_Comm comm,
std::set< TimingType > type,
Table::Reduction reduction = Table::Reduction::max )

List a summary of timings and tasks.

MPI_AVG reduction is printed.

Parameters
[in]commMPI Communicator.
[in]typeTiming type.
[in]reductionMPI Reduction to apply (min, max or average).

◆ sort_by_perm()

template<typename T , int BITS = 16>
std::vector< std::int32_t > sort_by_perm ( std::span< const T > x,
std::size_t shape1 )

Compute the permutation array that sorts a 2D array by row.

Parameters
[in]xThe flattened 2D array to compute the permutation array for.
[in]shape1The number of columns of x.
Returns
The permutation array such that x[perm[i]] <= x[perm[i +1]]. / @prex.size()must be a multiple ofshape1. / @note This function is suitable for small values ofshape1. Each / column ofx` is copied into an array that is then sorted.

◆ timing()

std::tuple< std::size_t, double, double, double > timing ( std::string task)

Return timing (count, total wall time, total user time, total system time) for given task.

Parameters
[in]taskName of a task
Returns
The (count, total wall time, total user time, total system time) for the task.

◆ timings()

dolfinx::Table timings ( std::set< TimingType > type)

Return a summary of timings and tasks in a Table.

Parameters
[in]typeTiming type.
Returns
Table with timings.