A 1D hp FEM space with continuous, picewise polynomial basis functions. More...
#include <space.hh>


Public Types | |
| typedef concepts::Scan < Element< Real > > | Scan |
| typedef Scan< ElementWithCell < Real > > | Scanner |
Public Member Functions | |
| virtual void | adjust (const concepts::Element< Real > &elm, const concepts::AdaptiveAdjustP< 1 > &a) |
| virtual void | adjust (const Element< Real > &elm, const concepts::AdaptiveAdjustP< 1 > &a)=0 |
| Adjusts the space in the next rebuild step for this element. | |
| uint | dim () const |
| Returns the dimension of the space. | |
| uint | dim () |
| uint | nelm () const |
| Returns the number of elements in the space. | |
| uint | nelm () |
| void | rebuild () |
Rebuilds the space after an adjustment with adjust. | |
| void | recomputeShapefunctions () |
| Recompute shape functions, e.g. | |
| Scan * | scan () |
| Scan * | scan () const |
| Returns a scanner to iterate over the elements of the space. | |
| Space (concepts::Mesh1 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0) | |
| Constructor. | |
| virtual | ~Space () |
Protected Member Functions | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Private Member Functions | |
| void | buildElements_ (concepts::EdgeNd &cell, concepts::TColumn< Real > *T0=0) |
| void | enforceBC_ (concepts::EdgeNd &cell) |
| void | meshAndPoly_ (concepts::EdgeNd &cell, int l, int &L, int &P) |
Private Attributes | |
| concepts::DynArray < concepts::AdaptiveAdjustP< 1 > > | adj_ |
| Hash table of the adjustment information of the elements. | |
| concepts::BoundaryConditions * | bc_ |
| Boundary conditions. | |
| concepts::DynArray < concepts::AdaptiveControl<> > | ctrl0_ |
| Hash table of the control information for the vertices. | |
| concepts::DynArray < concepts::AdaptiveControlP< 1 > > | ctrl1_ |
| Hash table of the control information for the 1D elements. | |
| uint | dim_ |
| Dimension of the FE space. | |
| concepts::Joiner< Element < Real > *, 1 > * | elm_ |
| Linked list of the elements. | |
| concepts::Mesh1 & | msh_ |
| Mesh. | |
| uint | nelm_ |
| Number of elements currently active in the mesh. | |
| bool | rebuild_ |
| If true: the elements have to be rebuilt. | |
A 1D hp FEM space with continuous, picewise polynomial basis functions.
| typedef concepts::Scan<Element<Real> > hp1D::Space::Scan |
typedef Scan<ElementWithCell<Real > > concepts::SpaceOnCells< Real >::Scanner [inherited] |
Reimplemented from concepts::Space< Real >.
Reimplemented in linDG3D::FvdgSpace.
| hp1D::Space::Space | ( | concepts::Mesh1 & | msh, |
| uint | l, | ||
| uint | p, | ||
| concepts::BoundaryConditions * | bc = 0 |
||
| ) |
Constructor.
Scans the mesh and sets the cells in the mesh active and the level of refinement and the polynomial degree 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 domain of interest partitioned into a mesh. |
| l | Level of refinement |
| p | Degree of the polynomials to be used. |
| bc | Boundary conditions |
| virtual hp1D::Space::~Space | ( | ) | [virtual] |
| virtual void hp1D::Space::adjust | ( | const concepts::Element< Real > & | elm, |
| const concepts::AdaptiveAdjustP< 1 > & | a | ||
| ) | [virtual] |
| virtual void concepts::AdaptiveSpace< Real , concepts::AdaptiveAdjustP< 1 > >::adjust | ( | const Element< Real > & | elm, |
| const concepts::AdaptiveAdjustP< 1 > & | a | ||
| ) | [pure virtual, inherited] |
Adjusts the space in the next rebuild step for this element.
| void hp1D::Space::buildElements_ | ( | concepts::EdgeNd & | cell, |
| concepts::TColumn< Real > * | T0 = 0 |
||
| ) | [private] |
| uint hp1D::Space::dim | ( | ) | [inline] |
| uint hp1D::Space::dim | ( | ) | const [inline, virtual] |
Returns the dimension of the space.
Implements concepts::Space< Real >.
| void hp1D::Space::enforceBC_ | ( | concepts::EdgeNd & | cell | ) | [private] |
| virtual std::ostream& hp1D::Space::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from concepts::SpaceOnCells< Real >.
| void hp1D::Space::meshAndPoly_ | ( | concepts::EdgeNd & | cell, |
| int | l, | ||
| int & | L, | ||
| int & | P | ||
| ) | [private] |
| uint hp1D::Space::nelm | ( | ) | const [inline, virtual] |
Returns the number of elements in the space.
Implements concepts::Space< Real >.
| uint hp1D::Space::nelm | ( | ) | [inline] |
| void hp1D::Space::rebuild | ( | ) |
Rebuilds the space after an adjustment with adjust.
| void hp1D::Space::recomputeShapefunctions | ( | ) |
Recompute shape functions, e.g.
for other abscissas redefined through IntegrableElm::rule().set(...)
| Space::Scan * hp1D::Space::scan | ( | ) | [inline] |
| Space::Scan * hp1D::Space::scan | ( | ) | const [inline, virtual] |
Returns a scanner to iterate over the elements of the space.
Implements concepts::SpaceOnCells< Real >.
concepts::DynArray<concepts::AdaptiveAdjustP<1> > hp1D::Space::adj_ [private] |
concepts::BoundaryConditions* hp1D::Space::bc_ [private] |
concepts::DynArray<concepts::AdaptiveControl<> > hp1D::Space::ctrl0_ [private] |
concepts::DynArray<concepts::AdaptiveControlP<1> > hp1D::Space::ctrl1_ [private] |
uint hp1D::Space::dim_ [private] |
concepts::Joiner<Element<Real>*, 1>* hp1D::Space::elm_ [private] |
concepts::Mesh1& hp1D::Space::msh_ [private] |
uint hp1D::Space::nelm_ [private] |
bool hp1D::Space::rebuild_ [private] |