---
name: "band"
section: "2rheolef"
platform: "linux"
package: "librheolef-dev"
version: "7.2-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/band"
---

# band(2rheolef)

banded level set method (rheolef-7.2)

## NAME

band - banded level set method (rheolef-7.2)

## DESCRIPTION

Let `fh` be a finite element function defined on a geometric domain `Lambda`. Then, the set of elements intersecting the zero level set is defined by `{x in Lambda, fh(x) = 0}` and is called a *band*. This class represents such a band: it is used for solving problems defined on a surface, when the surface itself is implicitly defined by a **level\_set(3)** function.

## ACESSORS

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 correspondence is on the same local memory, so local indexes can be used for this correspondence: it is provided by the `sid_ie2bnd_ie` member function.

## TOPOLOGY AND DOMAINS

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

## IMPLEMENTATION

This documentation has been generated from file main/lib/band.h

The `band` class is simply an alias to the **band\_basic class**

```
typedef band_basic<Float> band;
```

**The band\_basic class provides an interface, via the smart\_pointer(7) class family, to a mesh container:**

```
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& opt = level_set_option());
// 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; }
```

```
};
```

## AUTHOR

**Pierre  Saramito  \<Pierre.Saramito@imag.fr\>**

## COPYRIGHT

**Copyright   (C)  2000-2018  Pierre  Saramito  \<Pierre.Saramito@imag.fr\>** **GPLv3+: GNU GPL version 3 or later  \<http://gnu.org/licenses/gpl.html\>.** **This  is  free  software:  you  are free to change and redistribute it.** **There is NO WARRANTY, to the extent permitted by law.**
