|
| Mesh ()=default |
|
virtual | ~Mesh ()=default |
|
| Mesh (const std::vector< WorldCoordinates > &positions) |
| Construct the unstructured mesh with a set of point positions from a position vector. More...
|
|
| Mesh (const MatrixType &positions) |
| Construct the unstructured mesh with an Eigen matrix containing the position vector (NxD with N nodes of D world dimension). More...
|
|
template<typename EigenDerived > |
| Mesh (const EigenDerived *positions) |
| Construct the unstructured mesh with an Eigen matrix containing the position vector (NxD with N nodes of D world dimension) More...
|
|
| Mesh (const Mesh &other) |
|
| Mesh (Mesh &&other) noexcept |
|
auto | operator= (Mesh other) noexcept -> Mesh & |
|
auto | dimension () const -> UNSIGNED_INTEGER_TYPE final |
|
auto | number_of_domains () const -> UNSIGNED_INTEGER_TYPE final |
|
auto | number_of_nodes () const -> UNSIGNED_INTEGER_TYPE final |
|
auto | domains () const -> std::vector< std::pair< std::string, const BaseDomain * >> |
|
auto | domain (const UNSIGNED_INTEGER_TYPE &i) const -> const BaseDomain * |
|
auto | domain (const std::string &name) const -> const BaseDomain * |
|
template<typename Element , typename NodeIndex , typename... Args> |
std::enable_if_t< std::is_integral_v< NodeIndex >, Domain< Element, NodeIndex > * > | add_domain (const std::string &name, Args ...args) |
|
template<typename Element , typename NodeIndex , typename... Args> |
std::enable_if_t< std::is_integral_v< NodeIndex >, Domain< Element, NodeIndex > * > | add_domain (Args ...args) |
|
template<typename Element , typename... Args> |
auto | add_domain (const std::string &name, Args ...args) -> Domain< Element > * |
|
template<typename Element , typename... Args> |
auto | add_domain (const char *name, Args ...args) -> Domain< Element > * |
|
template<typename Element , typename... Args> |
auto | add_domain (Args ...args) -> Domain< Element > * |
|
auto | remove_domain (const std::string &name) -> bool |
|
auto | remove (const BaseDomain *domain) -> bool |
|
auto | position (UNSIGNED_INTEGER_TYPE index) const |
|
template<typename IntegerType , std::size_t N> |
auto | positions (const IntegerType(&indices)[N]) const |
|
template<typename IntegerType , std::size_t N> |
auto | positions (const std::array< IntegerType, N > &indices) const |
|
template<typename IntegerType > |
auto | positions (const std::vector< IntegerType > &indices) const |
|
template<typename EigenDerived > |
auto | positions (const Eigen::EigenBase< EigenDerived > &indices) const |
|
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename EigenDerived >
Construct the unstructured mesh with an Eigen matrix containing the position vector (NxD with N nodes of D world dimension)
- Note
- Reference to the position vector is stored, no copy made.
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename Element , typename NodeIndex , typename... Args>
std::enable_if_t<std::is_integral_v<NodeIndex>, Domain<Element, NodeIndex> *> caribou::topology::Mesh< WorldDimension, MatrixType >::add_domain |
( |
Args ... |
args | ) |
|
|
inline |
Adds a domain with the Element type supplied as a template parameter.
- Template Parameters
-
Element | The type of Element |
NodeIndex | The integer type for stored node indices |
- Returns
- A pointer to the newly created domain, or null if the creation failed
- Note
- The domain is managed by this mesh instance, and will be freed upon the deletion of the mesh.
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename Element , typename... Args>
Adds a domain with the Element type supplied as a template parameter.
- Template Parameters
-
Element | The type of Element |
- Returns
- A pointer to the newly created domain, or null if the creation failed
- Note
- The domain is managed by this mesh instance, and will be freed upon the deletion of the mesh.
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename Element , typename... Args>
auto caribou::topology::Mesh< WorldDimension, MatrixType >::add_domain |
( |
const char * |
name, |
|
|
Args ... |
args |
|
) |
| -> Domain<Element> * |
|
inline |
Adds a domain with the Element type supplied as a template parameter.
- Template Parameters
-
Element | The type of Element |
- Parameters
-
- Returns
- A pointer to the newly created domain, or null if the creation failed
- Note
- The domain is managed by this mesh instance, and will be freed upon the deletion of the mesh.
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename Element , typename NodeIndex , typename... Args>
std::enable_if_t<std::is_integral_v<NodeIndex>, Domain<Element, NodeIndex> *> caribou::topology::Mesh< WorldDimension, MatrixType >::add_domain |
( |
const std::string & |
name, |
|
|
Args ... |
args |
|
) |
| |
|
inline |
Adds a domain with the Element type supplied as a template parameter.
- Template Parameters
-
Element | The type of Element |
- Parameters
-
- Returns
- A pointer to the newly created domain, or null if the creation failed
- Note
- The domain is managed by this mesh instance, and will be freed upon the deletion of the mesh.
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename Element , typename... Args>
auto caribou::topology::Mesh< WorldDimension, MatrixType >::add_domain |
( |
const std::string & |
name, |
|
|
Args ... |
args |
|
) |
| -> Domain<Element> * |
|
inline |
Adds a domain with the Element type supplied as a template parameter.
- Template Parameters
-
Element | The type of Element |
- Parameters
-
- Returns
- A pointer to the newly created domain, or null if the creation failed
- Note
- The domain is managed by this mesh instance, and will be freed upon the deletion of the mesh.
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename EigenDerived >
auto caribou::topology::Mesh< WorldDimension, MatrixType >::positions |
( |
const Eigen::EigenBase< EigenDerived > & |
indices | ) |
const |
|
inline |
Get an array of positions from the given indices.
- Template Parameters
-
EigenDerived | The type of Eigen matrix/array containing the indices. |
- Parameters
-
indices | [IN] he indices from which the positions array will be filled |
- Returns
- The position coordinates of every nodes queried as an Eigen dense matrix.
Example:
using Nodes = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, Dimension, Eigen::RowMajor>;
Eigen::VectorXi indices(2);
indices << 55, 62;
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename IntegerType , std::size_t N>
Get an array of positions from the given indices.
- Template Parameters
-
IntegerType | Integer type of the indices passed |
- Parameters
-
indices | [IN] The indices from which the positions array will be filled |
- Returns
- The position coordinates of every nodes queried as an Eigen dense matrix.
Example:
using Nodes = Eigen::Matrix<FLOATING_POINT_TYPE, 2, Dimension, Eigen::RowMajor>;
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename IntegerType , std::size_t N>
auto caribou::topology::Mesh< WorldDimension, MatrixType >::positions |
( |
const std::array< IntegerType, N > & |
indices | ) |
const |
|
inline |
Get an array of positions from the given indices.
- Template Parameters
-
IntegerType | Integer type of the indices passed |
- Parameters
-
indices | [IN] The indices from which the positions array will be filled |
- Returns
- The position coordinates of every nodes queried as an Eigen dense matrix.
Example:
using Nodes = Eigen::Matrix<FLOATING_POINT_TYPE, 2, Dimension, Eigen::RowMajor>;
std::array<int, 2> indices = {55, 62};
template<UNSIGNED_INTEGER_TYPE WorldDimension, typename MatrixType = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, WorldDimension, (WorldDimension>1?Eigen::RowMajor:Eigen::ColMajor)>>
template<typename IntegerType >
auto caribou::topology::Mesh< WorldDimension, MatrixType >::positions |
( |
const std::vector< IntegerType > & |
indices | ) |
const |
|
inline |
Get an array of positions from the given indices.
- Template Parameters
-
IntegerType | Integer type of the indices passed |
- Parameters
-
indices | [IN] he indices from which the positions array will be filled |
- Returns
- The position coordinates of every nodes queried as an Eigen dense matrix.
Example:
using Nodes = Eigen::Matrix<FLOATING_POINT_TYPE, Eigen::Dynamic, Dimension, Eigen::RowMajor>;
std::vector<int> indices = {55, 62};