#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) | |
Space (const Space &spc) | |
virtual uint | dim () const |
Returns the dimension of the space. | |
virtual uint | nelm () const |
Returns the number of elements in the space. | |
virtual Scan * | scan () const |
Returns a scanner to iterate over the elements of the space. | |
Scan * | constScan () const |
uint | dim () |
uint | nelm () |
Scan * | scan () |
virtual void | adjust (const concepts::Element< Real > &elm, const concepts::AdaptiveAdjustP< 2 > &a) |
Space | rebuild () |
virtual uint | getOutputDimension () const |
Returns the default output dimension, when we consider plotting a real-valued operator on this space. | |
virtual void | adjust (const Element< Real > &elm, const concepts::AdaptiveAdjustP< 2 > &a)=0 |
Friends | |
class | BuildDofsBase |
Strategies to Build the Degrees of Freedom | |
void | buildVertexDofs (const BuildDofsBase &b) |
void | buildEdgeDofs (const BuildDofsBase &b) |
void | buildInnerDofs (const BuildDofsBase &b) |
uint | connectedIdx (const concepts::Attribute &a) const |
Gives the number of connected dofs for one attribute. | |
void | recomputeShapefunctions () |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. | |
A 2D hp FEM space with continuous, piecewise polynomial basis functions. Currently, only hexahedrons and conforming meshes are possible.
typedef concepts::Scan<hp2D::Element<Real> > hp2D::Space::Scan |
|
inherited |
|
inherited |
hp2D::Space::Space | ( | concepts::Mesh2 & | 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 |
hp2D::Space::Space | ( | const Space & | spc | ) |
Copy constructor. Copies mesh, boundary conditions and ctrl2_
(information about refinements and polynomial degrees of the elements).
|
pure virtualinherited |
Adjusts the space in the next rebuild step for this element.
void hp2D::Space::buildEdgeDofs | ( | const BuildDofsBase & | b | ) |
Change the strategy how the degrees of freedom for the edge are built. The default strategy is BuildEdgeDofs. You can change this strategy any time you chose.
buildEdgeDofs_ is reset with a clone of b
.
b | New strategy |
void hp2D::Space::buildInnerDofs | ( | const BuildDofsBase & | b | ) |
Change the strategy how the degrees of freedom for the interior are built. The default strategy is BuildInnerDofsLinTrunk. You can change this strategy any time you chose.
buildInnerDofs_ is reset with a clone of b
.
b | New strategy |
void hp2D::Space::buildVertexDofs | ( | const BuildDofsBase & | b | ) |
Change the strategy how the degrees of freedom for the vertices are built. The default strategy is BuildVertexDofs. You can change this strategy any time you chose.
buildVertexDofs_ is reset with a clone of b
.
b | New strategy |
|
inline |
|
inlinevirtual |
Returns the dimension of the space.
Implements concepts::SpaceOnCells< Real >.
|
inlinevirtualinherited |
Returns the default output dimension, when we consider plotting a real-valued operator on this space.
Reimplemented in hp2D::hpAdaptiveSpaceHCurl, and hp2Dedge::Space.
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from concepts::SpaceOnCells< Real >.
|
inlinevirtual |
Returns the number of elements in the space.
Implements concepts::SpaceOnCells< Real >.
Space hp2D::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 hp2D::Space::recomputeShapefunctions | ( | ) |
Recompute shape functions, e.g. for other abscissas redefined through setIntegrationRule
|
inline |
|
inlinevirtual |
Returns a scanner to iterate over the elements of the space.
Implements concepts::SpaceOnCells< Real >.
|
friend |