Provided by:

librheolef-dev_6.6-1build2_amd64 **NAME**

**band** - compute the band arround a level set

**DESCRIPTION**

Given a function **fh** defined in a domain **Lambda**, compute the band of elements intersecting
the level set defined by {x in Lambda, fh(x) = 0}. This class is used for solving
problems defined on a surface described by a level set function (See level_set(4)).

**ACCESSORS**

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 correspondance is on the same process, so local
indexes can be used for this correspondance: this is the **sid_ie2bnd_ie** member functions.

**BAND** **TOPOLOGY** **AND** **DOMAINS**

For the direct resolution of systems posed on the band, the mesh returned by the **band()**
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** satifies **fh(xj)=0**.
Others vertices of the band, separated by the zero and isolated ones, are organizd by
connected components: the **n_connex_component** member function returns its number.
Corresponding vertex domains of the band are named **"cc<i>"** where **<i>** should be replaced by
any number between 0 and **n_connex_component-1**.

**IMPLEMENTATION**

template <class T, class M = rheo_default_memory_model>
class band_basic {
public:
typedef typename geo_basic<T,M>::size_type size_type;
// allocators:
band_basic();
band_basic(const field_basic<T,M>& fh,
const level_set_option_type& opt = level_set_option_type());
/// 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; }
// data:
protected:
geo_basic<T,M> _gamma;
geo_basic<T,M> _band;
array<size_type,M> _sid_ie2bnd_ie;
size_type _ncc;
};
typedef band_basic<Float> band;

**SEE** **ALSO**

level_set(4)