Top-level namespace.
More...
|
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.
|
|
|
enum class | TimingType : int { wall = 0
, user = 1
, system = 2
} |
|
|
std::string | version () |
| Return DOLFINx version string.
|
|
std::string | ufcx_signature () |
| Return UFC signature string.
|
|
std::string | git_commit_hash () |
|
bool | has_debug () |
|
bool | has_petsc () |
| Return true if DOLFINx is compiled with PETSc.
|
|
bool | has_slepc () |
| Return true if DOLFINx is compiled with SLEPc.
|
|
bool | has_scotch () |
| Return true if DOLFINx is compiled with Scotch.
|
|
bool | has_parmetis () |
| Return true if DOLFINx is compiled with ParMETIS.
|
|
bool | has_kahip () |
| Return true if DOLFINx is compiled with KaHIP.
|
|
bool | has_adios2 () |
| Return true if DOLFINX is compiled with ADIOS2.
|
|
void | init_logging (int argc, char *argv[]) |
| Optional initialisation of the logging backend.
|
|
template<typename T , int BITS = 8> |
void | radix_sort (std::span< T > array) |
|
template<typename T , int BITS = 16> |
void | argsort_radix (std::span< const T > array, std::span< std::int32_t > 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.
|
|
Table | timings (std::set< TimingType > type) |
|
void | list_timings (MPI_Comm comm, std::set< TimingType > type, Table::Reduction reduction=Table::Reduction::max) |
|
std::tuple< std::size_t, double, double, double > | timing (std::string task) |
|
◆ TimingType
Timing types:
TimingType::wall
wall-clock time
TimingType::user
user (cpu) time
TimingType::system
system (kernel) time
◆ argsort_radix()
template<typename T , int BITS = 16>
void argsort_radix |
( |
std::span< const T > | array, |
|
|
std::span< std::int32_t > | perm ) |
Returns the indices that would sort (lexicographic) a vector of bitsets.
- Template Parameters
-
T | The size of the bitset, which corresponds to the number of bits necessary to represent a set of integers. For example, N = 96 for mapping three std::int32_t. |
BITS | The number of bits to sort at a time |
- Parameters
-
[in] | array | The array to sort |
[in] | perm | FIXME |
◆ git_commit_hash()
std::string git_commit_hash |
( |
| ) |
|
Return git changeset hash (returns "unknown" if changeset is not known)
◆ has_debug()
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 -dolfinx_loglevel <level>
, where <level>
is an integer. Increasing values increase verbosity.
The full loguru
API can be used in applications to control the log system. See https://emilk.github.io/loguru/ for the loguru documentation.
- Note
- The logging backend is loguru (https://github.com/emilk/loguru).
- Parameters
-
[in] | argc | Number of command line arguments. |
[in] | argv | Command line argument vector. |
◆ list_timings()
List a summary of timings and tasks. MPI_AVG
reduction is printed.
- Parameters
-
[in] | comm | MPI Communicator |
[in] | type | Subset of { TimingType::wall, TimingType::user, TimingType::system } |
[in] | reduction | MPI Reduction to apply (min, max or average) |
◆ radix_sort()
template<typename T , int BITS = 8>
void radix_sort |
( |
std::span< T > | array | ) |
|
Sort a vector of integers with radix sorting algorithm. The bucket size is determined by the number of bits to sort at a time (2^BITS).
- Template Parameters
-
T | Integral type |
BITS | The number of bits to sort at a time. |
- Parameters
-
[in,out] | array | The array to sort. |
◆ 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] | x | The flattened 2D array to compute the permutation array for. |
[in] | shape1 | The number of columns of x . |
- Returns
- The permutation array such that
x[perm[i]] <= x[perm[i +1]]. @pre
x.size()must be a multiple of
shape1. @note This function is suitable for small values of
shape1. Each column of
x` 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
-
- Returns
- The (count, total wall time, total user time, total system time) for the task
◆ timings()
Return a summary of timings and tasks in a Table
- Parameters
-
[in] | type | subset of { TimingType::wall, TimingType::user, TimingType::system } |
- Returns
- Table with timings