## 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; disarray<size_type,M> _sid_ie2bnd_ie; size_type _ncc; }; typedef band_basic<Float> band;