band - banded level set method (rheolef-7.2)
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.
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.
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.
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; }
};
Pierre Saramito <
[email protected]>
Copyright (C) 2000-2018 Pierre Saramito <
[email protected]> 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.