#include <space.hh>
Public Types | |
typedef concepts::Scan< hp2D::Element< Real > > | Scan |
typedef ElementWithCell< Real > | type |
typedef Scan< ElementWithCell< Real > > | Scanner |
Public Member Functions | |
Space (concepts::Mesh2 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0, bool trunk=false) | |
virtual uint | getOutputDimension () const |
Returns the default output dimension, when we consider plotting a real-valued operator on this space. | |
uint | dim () const |
Returns the dimension of the space. | |
uint | nelm () const |
Returns the number of elements in the space. | |
Scan * | scan () const |
scanner over the cells of the coarsest mesh | |
concepts::Scan< const concepts::Quad > * | interScan () const |
scanner over the intermediate cells | |
uint | dim () |
uint | nelm () |
Scan * | scan () |
scanner over the cells of the coarsest mesh | |
concepts::Scan< const concepts::Quad > * | interScan () |
scanner over the intermediate cells | |
virtual void | adjust (const concepts::Element< Real > &elm, const concepts::AdaptiveAdjustP< 2 > &a) |
concepts::BoundaryConditions * | boundary () |
void | rebuild () |
void | recomputeShapefunctions () |
virtual void | adjust (const Element< Real > &elm, const concepts::AdaptiveAdjustP< 2 > &a)=0 |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. | |
A 2D hp FEM space of edge elements with piecewise polynomial basis functions with two components, where the tangential component is continuous Currently, only quadrilaterials and conforming meshes are possible.
typedef concepts::Scan<hp2D::Element<Real> > hp2Dedge::Space::Scan |
|
inherited |
|
inherited |
hp2Dedge::Space::Space | ( | concepts::Mesh2 & | msh, |
uint | l, | ||
uint | p, | ||
concepts::BoundaryConditions * | bc = 0 , |
||
bool | trunk = false |
||
) |
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 |
trunk | Create trunk space ie., use the the rules p+q <= pIntMax + 1 in the interior instead of allowing all p, q combinations. |
|
pure virtualinherited |
Adjusts the space in the next rebuild step for this element.
|
inline |
|
inlinevirtual |
Returns the dimension of the space.
Implements concepts::SpaceOnCells< Real >.
|
inlinevirtual |
Returns the default output dimension, when we consider plotting a real-valued operator on this space.
Reimplemented from concepts::Space< F >.
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from concepts::SpaceOnCells< Real >.
|
inline |
|
inline |
|
inlinevirtual |
Returns the number of elements in the space.
Implements concepts::SpaceOnCells< Real >.
void hp2Dedge::Space::rebuild | ( | ) |
Rebuilds the space. First the old list of Finite Elements in the space is removed (not the elements in the topology!). Then the control information for the vertices, edges and faces is cleared (the information on the 2D elements is retained). 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_. An essential part of the generated information are the T matrices. They describe how the local shape functions are glued together to form the global shape functions.
rebuild0_ marks the elements with the right values and rebuild1_ really does the work.
void hp2Dedge::Space::recomputeShapefunctions | ( | ) |
Recompute shape functions, e.g. for other abscissas redefined through setIntegrationRule
|
inline |
|
inlinevirtual |
scanner over the cells of the coarsest mesh
Implements concepts::SpaceOnCells< Real >.