Rheolef  7.1
an efficient C++ finite element environment
band

banded level set method

Description

Let fh be a finite element function defined on a geometric domain Lambda. Then, the set of elements intersecting the zero level set is defined by {x in Lambda, fh(x) = 0} and is called a band. This class represents such a band: it is used for solving problems defined on a surface, when the surface itself is implicitly defined by a level_set function.

Acessors

Each side in the surface mesh, as returned by the level_set member function, is included into an element of the band mesh, as returned by the band member function. Moreover, in the distributed memory environment, this correspondence is on the same local memory, so local indexes can be used for this correspondence: it is provided by the sid_ie2bnd_ie member function.

Topology and domains

For the direct resolution of systems posed on the band, the mesh returned by the band() member function provides some domains of vertices. The "zero" vertex domain lists all vertices xi such that fh(xi)=0. The "isolated" vertex domain lists all vertices xi such that fh(xi)!=0 and xi is contained by only one element K and all vertices xj!=xi of K satisfies fh(xj)=0. Others vertices of the band, separated by the zero and isolated ones, are organized by connected components: the n_connex_component member function returns its number. Corresponding vertex domains of the band are named "cci" where i should be replaced by any number between 0 and n_connex_component-1, e.g. cc0, cc1, etc.

Implementation

This documentation has been generated from file main/lib/band.h

The band class is simply an alias to the band_basic class

typedef band_basic<Float> band;

The band_basic class provides an interface, via the smart_pointer class family, to a mesh container:

template <class T, class M = rheo_default_memory_model>
class band_basic {
public:
// allocators:
band_basic(const field_basic<T,M>& fh,
const level_set_option& opt = level_set_option());
// accessors:
const geo_basic<T,M>& band() const { return _band; }
const geo_basic<T,M>& level_set() const { return _gamma; }
size_type sid_ie2bnd_ie (size_type sid_ie) const { return _sid_ie2bnd_ie [sid_ie]; }
size_type n_connected_component() const { return _ncc; }
};
rheolef::band_basic::level_set
const geo_basic< T, M > & level_set() const
Definition: band.h:109
rheolef::band_basic::_ncc
size_type _ncc
Definition: band.h:119
rheolef::band_basic::band_basic
band_basic()
Definition: band.h:133
rheolef::band_basic::size_type
geo_basic< T, M >::size_type size_type
Definition: band.h:98
rheolef::band_basic::band
const geo_basic< T, M > & band() const
Definition: band.h:108
rheolef::band_basic::_band
geo_basic< T, M > _band
Definition: band.h:117
rheolef::band_basic::_gamma
geo_basic< T, M > _gamma
Definition: band.h:116
rheolef::band_basic::sid_ie2bnd_ie
size_type sid_ie2bnd_ie(size_type sid_ie) const
Definition: band.h:110
rheolef::band_basic::_sid_ie2bnd_ie
disarray< size_type, M > _sid_ie2bnd_ie
Definition: band.h:118
rheolef::band
band_basic< Float > band
Definition: band.h:125
size_type
field::size_type size_type
Definition: branch.cc:425
rheolef::band_basic::n_connected_component
size_type n_connected_component() const
Definition: band.h:111