LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Attributes | List of all members
lf::mesh::utils::CodimMeshDataSet< T > Class Template Reference

A MeshDataSet that attaches data of type T to every entity of a mesh that has a specified codimension. More...

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

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

Public Types

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

Public Member Functions

 CodimMeshDataSet (std::shared_ptr< const Mesh > mesh, dim_t codim)
 construct data vector indexed by entities of a particular co-dimension
 
 CodimMeshDataSet (std::shared_ptr< const Mesh > mesh, dim_t codim, T init)
 construct and initialize data vector indexed by entities of a particula co-dimension
 
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?
 
- Public Member Functions inherited from lf::mesh::utils::MeshDataSet< T >
virtual ~MeshDataSet ()=default
 Virtual destructor.
 

Private Attributes

std::shared_ptr< const Meshmesh_
 
boost::container::vector< T > data_
 
dim_t codim_
 

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::CodimMeshDataSet< T >

A MeshDataSet that attaches data of type T to every entity of a mesh that has a specified codimension.

Template Parameters
TThe type of data that should be stored with the entities.
See also
MeshDataSet

Definition at line 18 of file codim_mesh_data_set.h.

Member Typedef Documentation

◆ dim_t

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

Definition at line 21 of file codim_mesh_data_set.h.

◆ size_type

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

Definition at line 20 of file codim_mesh_data_set.h.

Constructor & Destructor Documentation

◆ CodimMeshDataSet() [1/2]

template<class T >
lf::mesh::utils::CodimMeshDataSet< T >::CodimMeshDataSet ( std::shared_ptr< const Mesh > mesh,
dim_t codim )
inline

construct data vector indexed by entities of a particular co-dimension

Parameters
meshpointer to underlying mesh
codimco-dimension of indexing entities for the given mesh
Note
This constructor does not initialize the data that is attached to the entities. They are initialized arbitrarily!

Definition at line 32 of file codim_mesh_data_set.h.

◆ CodimMeshDataSet() [2/2]

template<class T >
lf::mesh::utils::CodimMeshDataSet< T >::CodimMeshDataSet ( std::shared_ptr< const Mesh > mesh,
dim_t codim,
T init )
inline

construct and initialize data vector indexed by entities of a particula co-dimension

Parameters
meshpointer to underlying mesh
codimco-dimension of indexing entities for the given mesh
initvalue to be copied into all data elements

Definition at line 45 of file codim_mesh_data_set.h.

Member Function Documentation

◆ DefinedOn()

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

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 68 of file codim_mesh_data_set.h.

References lf::mesh::Entity::Codim(), lf::mesh::utils::CodimMeshDataSet< T >::codim_, and lf::mesh::utils::CodimMeshDataSet< T >::mesh_.

Referenced by lf::mesh::utils::CodimMeshDataSet< T >::operator()(), and lf::mesh::utils::CodimMeshDataSet< T >::operator()().

◆ operator()() [1/2]

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

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 59 of file codim_mesh_data_set.h.

References lf::mesh::utils::CodimMeshDataSet< T >::data_, lf::mesh::utils::CodimMeshDataSet< T >::DefinedOn(), and lf::mesh::utils::CodimMeshDataSet< T >::mesh_.

◆ operator()() [2/2]

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

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 64 of file codim_mesh_data_set.h.

References lf::mesh::utils::CodimMeshDataSet< T >::data_, lf::mesh::utils::CodimMeshDataSet< T >::DefinedOn(), and lf::mesh::utils::CodimMeshDataSet< T >::mesh_.

Member Data Documentation

◆ codim_

template<class T >
dim_t lf::mesh::utils::CodimMeshDataSet< T >::codim_
private

co-dimension

Definition at line 78 of file codim_mesh_data_set.h.

Referenced by lf::mesh::utils::CodimMeshDataSet< T >::DefinedOn().

◆ data_

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

◆ mesh_

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

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