Provided by: librheolef-dev_6.7-6_amd64 bug

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

SEE ALSO

       level_set(4)