openCARP
Doxygen code documentation for the open cardiac electrophysiology simulator openCARP
Public Member Functions | Public Attributes | List of all members
SF::meshdata< T, S > Class Template Reference

The mesh storage class. It contains both element and vertex data. More...

#include <SF_container.h>

Inheritance diagram for SF::meshdata< T, S >:
Collaboration diagram for SF::meshdata< T, S >:

Public Member Functions

 meshdata ()
 construct empty mesh More...
 
vector< T > & register_numbering (SF_nbr nbr_type)
 Register a new numbering to the mesh and return the associated index vector. More...
 
vector< T > & get_numbering (SF_nbr nbr_type)
 Get the vector defining a certain numbering. More...
 
const vector< T > & get_numbering (SF_nbr nbr_type) const
 Get the vector defining a certain numbering. More...
 
void localize (SF_nbr nbr_type)
 Localize the connectivity data w.r.t. a given numbering. More...
 
void globalize (SF_nbr nbr_type)
 Localize the connectivity data w.r.t. a given numbering. More...
 
void generate_par_layout ()
 Set up the parallel layout. More...
 
void clear_data ()
 Clear the mesh data from memory. More...
 

Public Attributes

size_t g_numelem
 global number of elements More...
 
size_t l_numelem
 local number of elements More...
 
size_t g_numpts
 global number of points More...
 
size_t l_numpts
 local number of points More...
 
MPI_Comm comm
 the parallel mesh is defined on a MPI world More...
 
std::string name
 the mesh name More...
 
vector< T > con
 
vector< T > dsp
 connectivity starting index of each element More...
 
vector< T > tag
 element tag More...
 
vector< elem_ttype
 element type More...
 
vector< S > fib
 fiber direction More...
 
vector< S > she
 sheet direction More...
 
hashmap::unordered_set< int > extr_tag
 the element tags based on which the mesh has been extracted More...
 
std::map< SF_nbr, vector< T > > nbr
 container for different numberings More...
 
vector< S > xyz
 node cooridnates More...
 
overlapping_layout< T > pl
 nodal parallel layout More...
 
non_overlapping_layout< T > epl
 element parallel layout More...
 

Detailed Description

template<class T, class S>
class SF::meshdata< T, S >

The mesh storage class. It contains both element and vertex data.

Definition at line 383 of file SF_container.h.

Constructor & Destructor Documentation

◆ meshdata()

template<class T, class S>
SF::meshdata< T, S >::meshdata ( )
inline

construct empty mesh

Definition at line 421 of file SF_container.h.

Member Function Documentation

◆ clear_data()

template<class T, class S>
void SF::meshdata< T, S >::clear_data ( )
inline

Clear the mesh data from memory.

Definition at line 540 of file SF_container.h.

Here is the caller graph for this function:

◆ generate_par_layout()

template<class T, class S>
void SF::meshdata< T, S >::generate_par_layout ( )
inline

Set up the parallel layout.

Postcondition
The overlapping_layout member class has been set up

Definition at line 526 of file SF_container.h.

Here is the caller graph for this function:

◆ get_numbering() [1/2]

template<class T, class S>
vector<T>& SF::meshdata< T, S >::get_numbering ( SF_nbr  nbr_type)
inline

Get the vector defining a certain numbering.

Note: If the requested numbering does not exist, this function will abort with an assertion. This is because a requested but not existent numbering hints a severe error in the logic of the calling code. If you want to check if a numbering exists, use: mesh::nbr.count(SF_nbr type)

Parameters
nbr_typeThe requested numbering type.
Returns
A reference of the requested numbering.

Definition at line 452 of file SF_container.h.

Here is the caller graph for this function:

◆ get_numbering() [2/2]

template<class T, class S>
const vector<T>& SF::meshdata< T, S >::get_numbering ( SF_nbr  nbr_type) const
inline

Get the vector defining a certain numbering.

Note: If the requested numbering does not exist, this function will abort with an assertion. This is because a requested but not existent numbering hints a severe error in the logic of the calling code. If you want to check if a numbering exists, use: mesh::nbr.count(SF_nbr type)

Parameters
nbr_typeThe requested numbering type.
Returns
A const reference of the requested numbering.

Definition at line 470 of file SF_container.h.

◆ globalize()

template<class T, class S>
void SF::meshdata< T, S >::globalize ( SF_nbr  nbr_type)
inline

Localize the connectivity data w.r.t. a given numbering.

The call expects the connectivity indices to be globalized.

Parameters
nbr_typeThe numbering.

Definition at line 513 of file SF_container.h.

◆ localize()

template<class T, class S>
void SF::meshdata< T, S >::localize ( SF_nbr  nbr_type)
inline

Localize the connectivity data w.r.t. a given numbering.

The call expects the connectivity indices to be globalized.

Parameters
nbr_typeThe numbering.

Definition at line 484 of file SF_container.h.

Here is the caller graph for this function:

◆ register_numbering()

template<class T, class S>
vector<T>& SF::meshdata< T, S >::register_numbering ( SF_nbr  nbr_type)
inline

Register a new numbering to the mesh and return the associated index vector.

Parameters
nbr_typeThe type of numbering
Returns
The index vector holding the indices of the numbering.

Definition at line 432 of file SF_container.h.

Here is the caller graph for this function:

Member Data Documentation

◆ comm

template<class T, class S>
MPI_Comm SF::meshdata< T, S >::comm

the parallel mesh is defined on a MPI world

Definition at line 392 of file SF_container.h.

◆ con

template<class T, class S>
vector<T> SF::meshdata< T, S >::con

< connectivity connecting nodes to form elements. after mesh setup in local indexing. use meshdata::globalize / meshdata::localize to change indexing

Definition at line 400 of file SF_container.h.

◆ dsp

template<class T, class S>
vector<T> SF::meshdata< T, S >::dsp

connectivity starting index of each element

Definition at line 404 of file SF_container.h.

◆ epl

template<class T, class S>
non_overlapping_layout<T> SF::meshdata< T, S >::epl

element parallel layout

Definition at line 418 of file SF_container.h.

◆ extr_tag

template<class T, class S>
hashmap::unordered_set<int> SF::meshdata< T, S >::extr_tag

the element tags based on which the mesh has been extracted

Definition at line 412 of file SF_container.h.

◆ fib

template<class T, class S>
vector<S> SF::meshdata< T, S >::fib

fiber direction

Definition at line 408 of file SF_container.h.

◆ g_numelem

template<class T, class S>
size_t SF::meshdata< T, S >::g_numelem

global number of elements

Definition at line 386 of file SF_container.h.

◆ g_numpts

template<class T, class S>
size_t SF::meshdata< T, S >::g_numpts

global number of points

Definition at line 388 of file SF_container.h.

◆ l_numelem

template<class T, class S>
size_t SF::meshdata< T, S >::l_numelem

local number of elements

Definition at line 387 of file SF_container.h.

◆ l_numpts

template<class T, class S>
size_t SF::meshdata< T, S >::l_numpts

local number of points

Definition at line 389 of file SF_container.h.

◆ name

template<class T, class S>
std::string SF::meshdata< T, S >::name

the mesh name

Definition at line 395 of file SF_container.h.

◆ nbr

template<class T, class S>
std::map< SF_nbr, vector<T> > SF::meshdata< T, S >::nbr

container for different numberings

Definition at line 414 of file SF_container.h.

◆ pl

template<class T, class S>
overlapping_layout<T> SF::meshdata< T, S >::pl

nodal parallel layout

Definition at line 417 of file SF_container.h.

◆ she

template<class T, class S>
vector<S> SF::meshdata< T, S >::she

sheet direction

Definition at line 409 of file SF_container.h.

◆ tag

template<class T, class S>
vector<T> SF::meshdata< T, S >::tag

element tag

Definition at line 405 of file SF_container.h.

◆ type

template<class T, class S>
vector<elem_t> SF::meshdata< T, S >::type

element type

Definition at line 406 of file SF_container.h.

◆ xyz

template<class T, class S>
vector<S> SF::meshdata< T, S >::xyz

node cooridnates

Definition at line 415 of file SF_container.h.


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