Preprocessor directives module

Preprocessor directives defined by Rodin.

Defines

#define RODIN_WITH_PY
Indicates if Rodin is built with Python support.
#define RODIN_WITH_PLOT
Indicates if Rodin::Plot is built.
#define RODIN_USE_MPI
Indicates if Rodin is built with MPI support.
#define RODIN_USE_OPENMP
Indicates if Rodin is built with OpenMP support.
#define RODIN_USE_UMFPACK
Indicates if Rodin is built with SuiteSparse support.
#define RODIN_USE_SPQR
Indicates if Rodin is built with SuiteSparse support.
#define RODIN_USE_CHOLMOD
Indicates if Rodin is built with SuiteSparse support.
#define RODIN_SILENCE_WARNINGS
Indicates if Rodin warnings are silenced.
#define RODIN_SILENCE_EXCEPTIONS
Indicates if Rodin exceptions are silenced.
#define RODIN_RESOURCES_DIR
Indicates the Rodin resources directory.
#define RODIN_THIRD_PARTY_DIR
Indicates the Rodin third-party source directory.
#define RODIN_THREAD_SAFE
Indicates if Rodin is built with thread safety enabled.
#define RODIN_MULTITHREADED
Indicates if Rodin supports multithreading.
#define RODIN_USE_APPLE_ACCELERATE
Indicates if Rodin is built with Apple Accelerate support.
#define RODIN_USE_SCOTCH
Indicates if Rodin is built with Scotch support.
#define RODIN_MAXIMAL_SPACE_DIMENSION
Indicates the maximal space dimension.
#define RODIN_DEFAULT_POLYTOPE_ATTRIBUTE
Indicates the default polytope attribute.
#define RODIN_GEOMETRY_REQUIRE_INCIDENCE(mesh, d, dp)
Requires connectivity $ d \rightarrow d' $ to be computed.
#define RODIN_GEOMETRY_MESH_REQUIRE_INCIDENCE(d, dp)
Requires connectivity $ d \rightarrow d' $ (for use in member functions).
#define RODIN_GEOMETRY_MESH_REQUIRE_SUBMESH()
Requires mesh to be a SubMesh.
#define RODIN_VARIATIONAL_QF_GENERIC_POLYTOPE_QUADRATURE_DEFAULT_ORDER
Default order for GenericPolytopeQuadrature.
#define RODIN_QF_GRUNDMANNMOLLER_MAX_S
Maximum value permitted for the $ s \geq 0 $ parameter in Grundmann-Moller quadrature.
#define RODIN_QF_GRUNDMANNMOLLER_MAX_ORDER
Maximum degree permitted for Grundmann-Moller quadrature.
#define RODIN_VARIATIONAL_H1ELEMENT_MAX_VECTOR_DIMENSION
Indicates the maximum vector dimension a H1Element can support.
#define RODIN_VARIATIONAL_H1ELEMENT_TOLERANCE
Tolerance for numerical computations in H1Element.

Define documentation

#define RODIN_WITH_PY

Indicates if Rodin is built with Python support.

Utilization

#ifndef RODIN_WITH_PY
// Code depending on Python support
#endif

#define RODIN_WITH_PLOT

Indicates if Rodin::Plot is built.

#ifndef RODIN_WITH_PLOT
// Code depending on Rodin::Plot support
#endif

#define RODIN_USE_MPI

Indicates if Rodin is built with MPI support.

Utilization

#ifndef RODIN_USE_MPI
// Code depending on MPI support
#endif

#define RODIN_USE_OPENMP

Indicates if Rodin is built with OpenMP support.

Utilization

#ifndef RODIN_USE_OPENMP
// Code depending on OpenMP support
#endif

#define RODIN_USE_UMFPACK

Indicates if Rodin is built with SuiteSparse support.

Utilization

#ifndef RODIN_USE_UMFPACK
// Code depending on UMFPACK
#endif

#define RODIN_USE_SPQR

Indicates if Rodin is built with SuiteSparse support.

Utilization

#ifndef RODIN_USE_SPQR
// Code depending on SPQR
#endif

#define RODIN_USE_CHOLMOD

Indicates if Rodin is built with SuiteSparse support.

Utilization

#ifndef RODIN_USE_CHOLMOD
// Code depending on CHOLMOD
#endif

#define RODIN_SILENCE_WARNINGS

Indicates if Rodin warnings are silenced.

#define RODIN_SILENCE_EXCEPTIONS

Indicates if Rodin exceptions are silenced.

If defined, this directive will prevent Rodin from outputting the error messages. It does not prevent the exception from being thrown.

#define RODIN_RESOURCES_DIR

Indicates the Rodin resources directory.

Utilization

std::cout << RODIN_RESOURCES_DIR << std::endl;

#define RODIN_THIRD_PARTY_DIR

Indicates the Rodin third-party source directory.

Utilization

std::cout << RODIN_THIRD_PARTY_DIR << std::endl;

#define RODIN_THREAD_SAFE

Indicates if Rodin is built with thread safety enabled.

Utilization

#ifdef RODIN_THREAD_SAFE
  // Code that requires thread safety features.
#endif

#define RODIN_MULTITHREADED

Indicates if Rodin supports multithreading.

Utilization

#ifdef RODIN_MULTITHREADED
  // Code that leverages multithreading capabilities.
#endif

#define RODIN_USE_APPLE_ACCELERATE

Indicates if Rodin is built with Apple Accelerate support.

Utilization

#ifdef RODIN_USE_APPLE_ACCELERATE
  // Code that uses the Apple Accelerate framework for optimized computations.
#endif

#define RODIN_USE_SCOTCH

Indicates if Rodin is built with Scotch support.

Utilization

#ifdef RODIN_USE_SCOTCH
  // Code that uses the Scotch library for partioning.
#endif

#define RODIN_MAXIMAL_SPACE_DIMENSION

Indicates the maximal space dimension.

#define RODIN_DEFAULT_POLYTOPE_ATTRIBUTE

Indicates the default polytope attribute.

#define RODIN_GEOMETRY_REQUIRE_INCIDENCE(mesh, d, dp)

Requires connectivity $ d \rightarrow d' $ to be computed.

Parameters
mesh Mesh instance to check
d Source dimension
dp Target dimension

Throws an exception if the specified connectivity relation has not been computed for the mesh. Connectivity must be explicitly computed using mesh.getConnectivity().compute(d, dp) before operations that depend on it.

#define RODIN_GEOMETRY_MESH_REQUIRE_INCIDENCE(d, dp)

Requires connectivity $ d \rightarrow d' $ (for use in member functions).

Parameters
d Source dimension
dp Target dimension

Throws an exception if the specified connectivity relation has not been computed. This macro is for use inside mesh member functions.

#define RODIN_GEOMETRY_MESH_REQUIRE_SUBMESH()

Requires mesh to be a SubMesh.

Throws an exception if the mesh is not a SubMesh instance, preventing invalid downcasting operations.

#define RODIN_VARIATIONAL_QF_GENERIC_POLYTOPE_QUADRATURE_DEFAULT_ORDER

Default order for GenericPolytopeQuadrature.

This macro defines the default polynomial degree of exactness when constructing a GenericPolytopeQuadrature without specifying an order.

#define RODIN_QF_GRUNDMANNMOLLER_MAX_S

Maximum value permitted for the $ s \geq 0 $ parameter in Grundmann-Moller quadrature.

#define RODIN_QF_GRUNDMANNMOLLER_MAX_ORDER

Maximum degree permitted for Grundmann-Moller quadrature.

The degree is given by $ d = 2s + 1 $ where $ s \geq 0 $ .

#define RODIN_VARIATIONAL_H1ELEMENT_MAX_VECTOR_DIMENSION

Indicates the maximum vector dimension a H1Element can support.

#define RODIN_VARIATIONAL_H1ELEMENT_TOLERANCE

Tolerance for numerical computations in H1Element.

This tolerance is used in the collapsed coordinate transformations (Duffy transformation) to avoid division by zero near element boundaries. Used when computing basis function gradients on triangles and tetrahedra.