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

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)).

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.

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**.

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;

level_set(4)