bionic (2) band.2rheolef.gz

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)