bem::AdaptConst3d002< F > Class Template Referenceabstract
A 3D adaptive BEM space with piecewise constant basis functions. More...
#include <space.hh>
Public Types | |
typedef Scan< ElementWithCell< concepts::Real > > | Scanner |
typedef ElementWithCell< concepts::Real > | type |
Public Member Functions | |
AdaptConst3d002 (concepts::Mesh2 &msh, uint lvl, ushort deltal, ushort deltaL) | |
Constructor. More... | |
void | adjust (const concepts::Element< F > &elm, const AdaptiveAdjust &a) |
Sets the adjustments for an element. More... | |
void | adjust (const Constant3d001< F > &elm, const AdaptiveAdjust &a) |
virtual void | adjust (const Element< concepts::Real > &elm, const AdaptiveAdjust &a)=0 |
Adjusts the space in the next rebuild step for this element. More... | |
uint | dim () |
Returns the dimension of the space. More... | |
uint | dim () const |
Returns the number of degrees of freedom. More... | |
virtual uint | getOutputDimension () const |
Returns the default output dimension, when we consider plotting a real-valued operator on this space. More... | |
std::ostream & | info (std::ostream &os, uint mode=0) const |
Gives some information about the space. More... | |
short | l (Constant3d001< F > &elm) |
Returns the level of a element. More... | |
uint | maxlevel () |
Returns the maximal level of all elements. More... | |
uint | minlevel () |
Returns the minimal level of all elements. More... | |
uint | nelm () |
Returns the number of elements in the space. More... | |
uint | nelm () const |
Returns the number of elements of the space. More... | |
void | rebuild () |
Rebuilds the space. More... | |
concepts::Scan< concepts::ElementWithCell< F > > * | scan () |
Returns a scanner to iterate over the elements of the space. More... | |
concepts::Scan< concepts::ElementWithCell< F > > * | scan () const |
Returns a scanner for the active elements of the space. More... | |
~AdaptConst3d002 () | |
Protected Member Functions | |
std::ostream & | info (std::ostream &os) const |
Private Member Functions | |
void | rebuild0_ (concepts::Connector2 &cntr, int l, int &L) |
Marks the cells correctly for the new space. More... | |
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. More... | |
concepts::DynArray< concepts::AdaptiveControl<> > | ctrl_ |
Dynamic array of the control information for the elements. More... | |
ushort | deltal_ |
level difference between two neighbouring elements less or equal to . More... | |
ushort | deltaL_ |
level difference between two elements less or equal to . More... | |
uint | dim_ |
Number of degrees of freedom in the space. More... | |
concepts::DynArray< EdgeMap > | edgmap_ |
Dynamic array of the edge panel mapping. More... | |
concepts::Joiner< concepts::ElementWithCell< F > *, 1 > * | elm_ |
Linked list of the elements. More... | |
uint | maxlvl_ |
Maximal level of all elements. More... | |
uint | minlvl_ |
Minimal level of all elements. More... | |
concepts::Mesh2 & | msh_ |
The mesh. More... | |
uint | nelm_ |
Number of elements currently active in the mesh. More... | |
bool | rebuild_ |
If true: the mesh has to be rebuilt (refined or coarsened) More... | |
std::stack< EdgeMap * > | stk_ |
stack for the edge panels mappings with a too large level difference More... | |
Detailed Description
template<class F = concepts::Real>
class bem::AdaptConst3d002< F >
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 .
- Parameters
-
F Field of the space (Real or Cmplx)
Member Typedef Documentation
◆ Scanner
|
inherited |
◆ type
|
inherited |
Constructor & Destructor Documentation
◆ AdaptConst3d002()
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.
- Parameters
-
msh The surface of interest partitioned into a mesh. lvl Level of refinement deltal Maximal local level difference deltaL Maximal global level difference
◆ ~AdaptConst3d002()
bem::AdaptConst3d002< F >::~AdaptConst3d002 | ( | ) |
Member Function Documentation
◆ adjust() [1/3]
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.
- Parameters
-
elm Element to be adjusted l Difference in the level
- Exceptions
-
MissingFeature
◆ adjust() [2/3]
void bem::AdaptConst3d002< F >::adjust | ( | const Constant3d001< F > & | elm, |
const AdaptiveAdjust & | a | ||
) |
◆ adjust() [3/3]
|
pure virtualinherited |
Adjusts the space in the next rebuild step for this element.
◆ dim() [1/2]
|
inlinevirtual |
Returns the dimension of the space.
Implements concepts::SpaceOnCells< concepts::Real >.
◆ dim() [2/2]
|
inline |
◆ getOutputDimension()
|
inlinevirtualinherited |
◆ info() [1/2]
|
inlineprotectedvirtual |
Reimplemented from concepts::SpaceOnCells< concepts::Real >.
◆ info() [2/2]
std::ostream& bem::AdaptConst3d002< F >::info | ( | std::ostream & | os, |
uint | mode = 0 |
||
) | const |
Gives some information about the space.
- Exceptions
-
SpaceNotBuilt
- Parameters
-
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
◆ l()
|
inline |
◆ maxlevel()
|
inline |
◆ minlevel()
|
inline |
◆ nelm() [1/2]
|
inlinevirtual |
Returns the number of elements in the space.
Implements concepts::SpaceOnCells< concepts::Real >.
◆ nelm() [2/2]
|
inline |
◆ rebuild()
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.
- Exceptions
-
MissingFeature
◆ rebuild0_()
|
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.
- Parameters
-
cntr The current connector (part of the topology) l The current level L The desired level
◆ rebuild1_()
|
private |
◆ rebuild2_()
|
private |
◆ rebuild3_()
|
private |
◆ scan() [1/2]
|
inlinevirtual |
Returns a scanner to iterate over the elements of the space.
Implements concepts::SpaceOnCells< concepts::Real >.
◆ scan() [2/2]
|
inline |
Member Data Documentation
◆ adj_
|
private |
◆ ctrl_
|
private |
◆ deltal_
|
private |
◆ deltaL_
|
private |
◆ dim_
|
private |
◆ edgmap_
|
private |
◆ elm_
|
private |
◆ maxlvl_
|
private |
◆ minlvl_
|
private |
◆ msh_
|
private |
◆ nelm_
|
private |
◆ rebuild_
|
private |
◆ stk_
|
private |
The documentation for this class was generated from the following file:
- bem/space.hh