DOLFINx 0.7.3
DOLFINx C++ interface
|
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 | |
class | Table |
This class provides storage and pretty-printing for tables. Example usage: More... | |
Concepts | |
concept | scalar |
This concept is used to constrain the a template type to floating point real or complex types. Note that this concept is different to std::floating_point which does not include std::complex. | |
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 () |
Return git changeset hash (returns "unknown" if changeset is not known) | |
bool | has_debug () |
Return true if DOLFINx is compiled in debugging mode, i.e., with assertions on. | |
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) |
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<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<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. MPI_AVG reduction is printed. | |
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. | |
Top-level namespace.
|
strong |
Timing types:
TimingType::wall
wall-clock timeTimingType::user
user (cpu) timeTimingType::system
system (kernel) time 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.
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 |
[in] | array | The array to sort |
[in] | perm | FIXME |
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.
[in] | argc | Number of command line arguments. |
[in] | argv | Command line argument vector. |
void list_timings | ( | MPI_Comm | comm, |
std::set< TimingType > | type, | ||
Table::Reduction | reduction = Table::Reduction::max |
||
) |
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).
T | Integral type |
BITS | The number of bits to sort at a time. |
[in,out] | array | The array to sort. |
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.
[in] | x | The flattened 2D array to compute the permutation array for. |
[in] | shape1 | The number of columns of x . |
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. 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.
[in] | task | Name of a task |
Table timings | ( | std::set< TimingType > | type | ) |