LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
lf::mesh::utils::AllCodimMeshDataSet< T > Class Template Reference

Assigns to every entity (all codims) in a mesh a value of type T More...

#include <lf/mesh/utils/all_codim_mesh_data_set.h>

Inheritance diagram for lf::mesh::utils::AllCodimMeshDataSet< T >:
lf::mesh::utils::MeshDataSet< T >

Public Types

using size_type = Mesh::size_type
 
using dim_t = base::RefEl::dim_t
 

Public Member Functions

 AllCodimMeshDataSet (const AllCodimMeshDataSet &)=delete
 
 AllCodimMeshDataSet (AllCodimMeshDataSet &&) noexcept=default
 
AllCodimMeshDataSetoperator= (const AllCodimMeshDataSet &)=delete
 
AllCodimMeshDataSetoperator= (AllCodimMeshDataSet &&) noexcept=default
 
 ~AllCodimMeshDataSet () override=default
 
T & operator() (const Entity &e)
 Get a (modifiable) reference to the data stored with entity e.
 
const T & operator() (const Entity &e) const override
 Get the data stored with entity e.
 
bool DefinedOn (const Entity &e) const override
 Does the dataset store information with this entity?
 
 AllCodimMeshDataSet (const std::shared_ptr< const lf::mesh::Mesh > &mesh)
 set up default-initialized data arrays
 
template<class X, class = typename std::enable_if_t<std::is_convertible_v<X, T> && std::is_copy_constructible_v<X>>>
 AllCodimMeshDataSet (const std::shared_ptr< const lf::mesh::Mesh > &mesh, X init_value)
 Set up data array for entities and initialize it with a given value.
 
- Public Member Functions inherited from lf::mesh::utils::MeshDataSet< T >
virtual ~MeshDataSet ()=default
 Virtual destructor.
 

Private Attributes

dim_t dim_mesh_
 
std::shared_ptr< const lf::mesh::Meshmesh_
 
boost::container::vector< boost::container::vector< T > > data_
 

Additional Inherited Members

- Protected Member Functions inherited from lf::mesh::utils::MeshDataSet< T >
 MeshDataSet ()=default
 
 MeshDataSet (const MeshDataSet &)=default
 
 MeshDataSet (MeshDataSet &&) noexcept=default
 
MeshDataSetoperator= (const MeshDataSet &)=default
 
MeshDataSetoperator= (MeshDataSet &&) noexcept=default
 

Detailed Description

template<class T>
class lf::mesh::utils::AllCodimMeshDataSet< T >

Assigns to every entity (all codims) in a mesh a value of type T

Template Parameters
TThe type of value to store with every entity

Example

// Create a mesh
// Create a MeshDataSet that stores a boolean for every entity
auto mesh_data_set = lf::mesh::utils::AllCodimMeshDataSet<bool>(mesh_p);
// Create a MeshDataSet that stores a boolean for every entity with default
// value
auto mds_default = lf::mesh::utils::AllCodimMeshDataSet<bool>(mesh_p, true);
// set the value associated with an entity to false
auto entity = mesh_p->EntityByIndex(0, 0);
mesh_data_set(*entity) = false;
// check if the data set is defined on an entity
bool b = mesh_data_set.DefinedOn(*entity); // returns true

The MeshDataSet interface class provides more information on how to interact with a MeshDataSet.

To set values only for a specific codimension, see CodimMeshDataSet.

See also
MeshDataSet

Definition at line 38 of file all_codim_mesh_data_set.h.

Member Typedef Documentation

◆ dim_t

template<class T>
using lf::mesh::utils::AllCodimMeshDataSet< T >::dim_t = base::RefEl::dim_t

Definition at line 41 of file all_codim_mesh_data_set.h.

◆ size_type

template<class T>
using lf::mesh::utils::AllCodimMeshDataSet< T >::size_type = Mesh::size_type

Definition at line 40 of file all_codim_mesh_data_set.h.

Constructor & Destructor Documentation

◆ AllCodimMeshDataSet() [1/4]

template<class T>
lf::mesh::utils::AllCodimMeshDataSet< T >::AllCodimMeshDataSet ( const AllCodimMeshDataSet< T > & )
delete

◆ AllCodimMeshDataSet() [2/4]

template<class T>
lf::mesh::utils::AllCodimMeshDataSet< T >::AllCodimMeshDataSet ( AllCodimMeshDataSet< T > && )
defaultnoexcept

References AllCodimMeshDataSet().

◆ ~AllCodimMeshDataSet()

template<class T>
lf::mesh::utils::AllCodimMeshDataSet< T >::~AllCodimMeshDataSet ( )
overridedefault

References AllCodimMeshDataSet().

◆ AllCodimMeshDataSet() [3/4]

template<class T>
lf::mesh::utils::AllCodimMeshDataSet< T >::AllCodimMeshDataSet ( const std::shared_ptr< const lf::mesh::Mesh > & mesh)
inlineexplicit

set up default-initialized data arrays

Parameters
meshshared pointer to underlying mesh

allocates arrays containing a value of type T for every entity of the mesh

Definition at line 76 of file all_codim_mesh_data_set.h.

References data_, dim_mesh_, mesh_, and lf::mesh::utils::MeshDataSet< T >::MeshDataSet().

◆ AllCodimMeshDataSet() [4/4]

template<class T>
template<class X, class = typename std::enable_if_t<std::is_convertible_v<X, T> && std::is_copy_constructible_v<X>>>
lf::mesh::utils::AllCodimMeshDataSet< T >::AllCodimMeshDataSet ( const std::shared_ptr< const lf::mesh::Mesh > & mesh,
X init_value )
inline

Set up data array for entities and initialize it with a given value.

Parameters
meshshared pointer to underlying mesh
init_valuevalue to be copied in every cell of the array

Allocates an array for data of type T index by all entities of the mesh.

Definition at line 98 of file all_codim_mesh_data_set.h.

References data_, dim_mesh_, mesh_, and lf::mesh::utils::MeshDataSet< T >::MeshDataSet().

Member Function Documentation

◆ DefinedOn()

template<class T>
bool lf::mesh::utils::AllCodimMeshDataSet< T >::DefinedOn ( const Entity & e) const
inlinenodiscardoverridevirtual

Does the dataset store information with this entity?

Parameters
eThe entity that should be tested.
Returns
true if this dataset associates information with this entity. Otherwise false.

Implements lf::mesh::utils::MeshDataSet< T >.

Definition at line 65 of file all_codim_mesh_data_set.h.

References mesh_.

Referenced by operator()(), and operator()().

◆ operator()() [1/2]

template<class T>
T & lf::mesh::utils::AllCodimMeshDataSet< T >::operator() ( const Entity & e)
inlinenodiscard

Get a (modifiable) reference to the data stored with entity e.

Parameters
eThe entity whose data should be retrieved/modified
Returns
A reference to the stored data.
Note
The behavior of this method is undefined if DefinedOn(e) == false!

Definition at line 56 of file all_codim_mesh_data_set.h.

References data_, DefinedOn(), and mesh_.

◆ operator()() [2/2]

template<class T>
const T & lf::mesh::utils::AllCodimMeshDataSet< T >::operator() ( const Entity & e) const
inlinenodiscardoverridevirtual

Get the data stored with entity e.

Parameters
eThe entity whose data should be retrieved.
Returns
The data stored for this entity.
Note
The behavior of this method is undefined if DefinedOn(e) == false!

Implements lf::mesh::utils::MeshDataSet< T >.

Definition at line 61 of file all_codim_mesh_data_set.h.

References lf::mesh::Entity::Codim(), data_, DefinedOn(), and mesh_.

◆ operator=() [1/2]

template<class T>
AllCodimMeshDataSet & lf::mesh::utils::AllCodimMeshDataSet< T >::operator= ( AllCodimMeshDataSet< T > && )
defaultnoexcept

References AllCodimMeshDataSet().

◆ operator=() [2/2]

template<class T>
AllCodimMeshDataSet & lf::mesh::utils::AllCodimMeshDataSet< T >::operator= ( const AllCodimMeshDataSet< T > & )
delete

References AllCodimMeshDataSet().

Member Data Documentation

◆ data_

template<class T>
boost::container::vector<boost::container::vector<T> > lf::mesh::utils::AllCodimMeshDataSet< T >::data_
private

◆ dim_mesh_

template<class T>
dim_t lf::mesh::utils::AllCodimMeshDataSet< T >::dim_mesh_
private

Definition at line 111 of file all_codim_mesh_data_set.h.

Referenced by AllCodimMeshDataSet(), and AllCodimMeshDataSet().

◆ mesh_

template<class T>
std::shared_ptr<const lf::mesh::Mesh> lf::mesh::utils::AllCodimMeshDataSet< T >::mesh_
private

The documentation for this class was generated from the following file: