A 3D adaptive BEM space with piecewise constant basis functions. More...
#include <space.hh>


Public Types | |
| typedef Scan< ElementWithCell < F > > | Scanner |
Public Member Functions | |
| AdaptConst3d002 (concepts::Mesh2 &msh, uint lvl, ushort deltal, ushort deltaL) | |
| Constructor. | |
| virtual void | adjust (const Element< F > &elm, const AdaptiveAdjust &a)=0 |
| Adjusts the space in the next rebuild step for this element. | |
| void | adjust (const concepts::Element< F > &elm, const AdaptiveAdjust &a) |
| Sets the adjustments for an element. | |
| void | adjust (const Constant3d001< F > &elm, const AdaptiveAdjust &a) |
| uint | dim () |
| uint | dim () const |
| Returns the number of degrees of freedom. | |
| std::ostream & | info (std::ostream &os, uint mode=0) const |
| Gives some information about the space. | |
| short | l (Constant3d001< F > &elm) |
| Returns the level of a element. | |
| uint | maxlevel () |
| Returns the maximal level of all elements. | |
| uint | minlevel () |
| Returns the minimal level of all elements. | |
| uint | nelm () const |
| Returns the number of elements of the space. | |
| uint | nelm () |
| void | rebuild () |
| Rebuilds the space. | |
| concepts::Scan < concepts::ElementWithCell< F > > * | scan () |
| concepts::Scan < concepts::ElementWithCell< F > > * | scan () const |
| Returns a scanner for the active elements of the space. | |
| ~AdaptConst3d002 () | |
Protected Member Functions | |
| std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Private Member Functions | |
| void | rebuild0_ (concepts::Connector2 &cntr, int l, int &L) |
| Marks the cells correctly for the new space. | |
| void | rebuild1_ (concepts::Connector2 &cntr, uint l) |
| void | rebuild2_ () |
| void | rebuild3_ (concepts::Triangle3d &cell, uint l, ushort tag) |
Private Attributes | |
| concepts::DynArray < AdaptiveAdjust > | adj_ |
| Dynamic array of the adjustment information of the mesh. | |
| concepts::DynArray < concepts::AdaptiveControl<> > | ctrl_ |
| Dynamic array of the control information for the elements. | |
| ushort | deltal_ |
level difference between two neighbouring elements less or equal to . | |
| ushort | deltaL_ |
level difference between two elements less or equal to . | |
| uint | dim_ |
| Number of degrees of freedom in the space. | |
| concepts::DynArray< EdgeMap > | edgmap_ |
Dynamic array of the edge panel mapping. | |
| concepts::Joiner < concepts::ElementWithCell< F > *, 1 > * | elm_ |
| Linked list of the elements. | |
| uint | maxlvl_ |
| Maximal level of all elements. | |
| uint | minlvl_ |
| Minimal level of all elements. | |
| concepts::Mesh2 & | msh_ |
| The mesh. | |
| uint | nelm_ |
| Number of elements currently active in the mesh. | |
| bool | rebuild_ |
| If true: the mesh has to be rebuilt (refined or coarsened) | |
| std::stack< EdgeMap * > | stk_ |
stack for the edge panels mappings with a too large level difference | |
A 3D adaptive BEM space with piecewise constant basis functions.
Constraints: level difference between neighbouring elements is less or equal to
, Maximal level difference between two panels is less of equal to
.
| F | Field of the space (Real or Cmplx) |
typedef Scan<ElementWithCell<F> > concepts::SpaceOnCells< F >::Scanner [inherited] |
Reimplemented from concepts::Space< F >.
Reimplemented in linDG3D::FvdgSpace.
| bem::AdaptConst3d002< F >::AdaptConst3d002 | ( | concepts::Mesh2 & | msh, |
| uint | lvl, | ||
| ushort | deltal, | ||
| ushort | deltaL | ||
| ) |
Constructor.
Scans the mesh and sets the cells in the mesh active and the level of refinement in all cells to the given values. rebuild_ is set to true, ie. if the mesh is used it will firstly be rebuilt.
| msh | The surface of interest partitioned into a mesh. |
| lvl | Level of refinement |
| deltal | Maximal local level difference |
| deltaL | Maximal global level difference |
| bem::AdaptConst3d002< F >::~AdaptConst3d002 | ( | ) |
| void bem::AdaptConst3d002< F >::adjust | ( | const concepts::Element< F > & | elm, |
| const AdaptiveAdjust & | a | ||
| ) |
Sets the adjustments for an element.
The adjustment information in adj_ is updated and the flag rebuild_ is set to true.
| elm | Element to be adjusted |
| l | Difference in the level |
| MissingFeature |
| void bem::AdaptConst3d002< F >::adjust | ( | const Constant3d001< F > & | elm, |
| const AdaptiveAdjust & | a | ||
| ) |
| virtual void concepts::AdaptiveSpace< F, AdaptiveAdjust >::adjust | ( | const Element< F > & | elm, |
| const AdaptiveAdjust & | a | ||
| ) | [pure virtual, inherited] |
Adjusts the space in the next rebuild step for this element.
| uint bem::AdaptConst3d002< F >::dim | ( | ) | const [inline, virtual] |
Returns the number of degrees of freedom.
| SpaceNotBuilt |
Implements concepts::Space< F >.
| uint bem::AdaptConst3d002< F >::dim | ( | ) | [inline] |
| std::ostream& bem::AdaptConst3d002< F >::info | ( | std::ostream & | os, |
| uint | mode = 0 |
||
| ) | const |
Gives some information about the space.
| SpaceNotBuilt |
| os | Output stream |
| mode | There are different levels of information available. mode = 0 Output of dimension and number of elements mode = 1 Prints all elements |
| std::ostream& bem::AdaptConst3d002< F >::info | ( | std::ostream & | os | ) | const [inline, protected, virtual] |
Returns information in an output stream.
Reimplemented from bem::AdaptiveSpace< F >.
Definition at line 660 of file space.hh.

| short bem::AdaptConst3d002< F >::l | ( | Constant3d001< F > & | elm | ) | [inline] |
| uint bem::AdaptConst3d002< F >::maxlevel | ( | ) | [inline] |
| uint bem::AdaptConst3d002< F >::minlevel | ( | ) | [inline] |
| uint bem::AdaptConst3d002< F >::nelm | ( | ) | [inline] |
| uint bem::AdaptConst3d002< F >::nelm | ( | ) | const [inline, virtual] |
Returns the number of elements of the space.
| SpaceNotBuilt |
Implements concepts::Space< F >.
| void bem::AdaptConst3d002< F >::rebuild | ( | ) |
Rebuilds the space.
First the old list of elements in the space is removed (not the elements in the topology!). For every cell in the original mesh, rebuild0_ and rebuild1_ are called. From the mesh, they build the space and store the elements in elm_. rebuild0_ marks the elements with the right values and rebuild1_ really does the work.
| MissingFeature |
| void bem::AdaptConst3d002< F >::rebuild0_ | ( | concepts::Connector2 & | cntr, |
| int | l, | ||
| int & | L | ||
| ) | [private] |
Marks the cells correctly for the new space.
First, the desired level in the current connector is determined. Second, the maximum desired level of the children is recursively determined, if we need to refine the current connector. Third, the edge
panel mapping is constructed Fourth, the level difference between the panels adjusted Fifth, the tag of the current connector is updated.
| cntr | The current connector (part of the topology) |
| l | The current level |
| L | The desired level |
| void bem::AdaptConst3d002< F >::rebuild1_ | ( | concepts::Connector2 & | cntr, |
| uint | l | ||
| ) | [private] |
| void bem::AdaptConst3d002< F >::rebuild2_ | ( | ) | [private] |
| void bem::AdaptConst3d002< F >::rebuild3_ | ( | concepts::Triangle3d & | cell, |
| uint | l, | ||
| ushort | tag | ||
| ) | [private] |
| concepts::Scan< concepts::ElementWithCell< F > > * bem::AdaptConst3d002< F >::scan | ( | ) | [inline] |
| concepts::Scan< concepts::ElementWithCell< F > > * bem::AdaptConst3d002< F >::scan | ( | ) | const [inline, virtual] |
Returns a scanner for the active elements of the space.
| SpaceNotBuilt |
Implements concepts::SpaceOnCells< F >.
concepts::DynArray<AdaptiveAdjust> bem::AdaptConst3d002< F >::adj_ [private] |
concepts::DynArray<concepts::AdaptiveControl<> > bem::AdaptConst3d002< F >::ctrl_ [private] |
ushort bem::AdaptConst3d002< F >::deltal_ [private] |
ushort bem::AdaptConst3d002< F >::deltaL_ [private] |
uint bem::AdaptConst3d002< F >::dim_ [private] |
concepts::DynArray<EdgeMap> bem::AdaptConst3d002< F >::edgmap_ [private] |
concepts::Joiner<concepts::ElementWithCell<F>*, 1>* bem::AdaptConst3d002< F >::elm_ [private] |
uint bem::AdaptConst3d002< F >::maxlvl_ [private] |
uint bem::AdaptConst3d002< F >::minlvl_ [private] |
concepts::Mesh2& bem::AdaptConst3d002< F >::msh_ [private] |
uint bem::AdaptConst3d002< F >::nelm_ [private] |
bool bem::AdaptConst3d002< F >::rebuild_ [private] |
std::stack<EdgeMap*> bem::AdaptConst3d002< F >::stk_ [private] |