#include <hpAdaptiveSpaceHCurl.hh>


Public Types | |
| typedef concepts::Scan < hp2D::Element< Real > > | Scan |
| typedef Scan< ElementWithCell < Real > > | Scanner |
| typedef Real | t_type |
Public Member Functions | |
| virtual void | adjust (const concepts::Element< Real > &elm, const concepts::AdaptiveAdjustP< 2 > &a) |
| virtual void | adjust (const Element< Real > &elm, const concepts::AdaptiveAdjustP< 2 > &a)=0 |
| Adjusts the space in the next rebuild step for this element. | |
| std::pair< bool, uint > | available () const |
| Returns 0 if the space has to be rebuilt with rebuild(), otherwise the number of the build. | |
| virtual uint | dim () const |
| Returns the dimension of the space. | |
| uint | dim () |
| concepts::SubspaceHelper< Real, SpacePreBuilder > & | helper () |
| hpAdaptiveSpaceHCurl (const hpAdaptiveSpaceHCurl &spc) | |
| Constructor for using same mesh and distribution of degrees of freedom object as another space. | |
| hpAdaptiveSpaceHCurl (concepts::Mesh2 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0) | |
| Constructor. | |
| virtual uint & | lastIdx () |
| Returns last global index of the space. | |
| virtual const uint & | lastIdx () const |
| virtual uint | nelm () const |
| Returns the number of elements in the space. | |
| uint | nelm () |
| virtual uint | offset () const |
| Returns the offset. | |
| hpFull & | prebuild () |
| hpFull & | prebuild () const |
| void | rebuild (bool sameIndices=false) |
| Rebuilds the mesh and the elements due to adjustment orders. | |
| void | recomputeShapefunctions () |
| Recompute shape functions, e.g. | |
| virtual Scan * | scan () const |
| Returns a scanner to iterate over the elements of the space. | |
| Scan * | scan () |
| virtual | ~hpAdaptiveSpaceHCurl () |
Strategies to Build the Degrees of Freedom | |
| void | buildEdgeDofs (const BuildTColumnsBase< Real > *b) |
| Change the strategy how the degrees of freedom for the edge are built. | |
| void | buildInnerDofs (const BuildTColumnsBase< Real > *b) |
| Change the strategy how the degrees of freedom for the interior are built. | |
Protected Member Functions | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Strategies to Build the Degrees of Freedom | |
| void | setBuildVertexDofs_ (const BuildTColumnsBase< Real > *b) |
| Change the strategy how the degrees of freedom for the vertices are built. | |
| void | setBuildEdgeDofs_ (const BuildTColumnsBase< Real > *b) |
| Change the strategy how the degrees of freedom for the edge are built. | |
| void | setBuildInnerDofs_ (const BuildTColumnsBase< Real > *b) |
| Change the strategy how the degrees of freedom for the interior are built. | |
Protected Attributes | |
| uint | idxEdge_ |
| uint | idxInner_ |
| uint | idxVtx_ |
| Number of indices on entities, just for statistics. | |
| uint | nelm_ |
| Number of elements currently active in the mesh. | |
| uint | offset_ |
| Initially given offset, holden for control, if in there are changes in the previous subspace. | |
| hpFull *const | prebuild_ |
| Mesh and degrees of freedoms. | |
| concepts::SubspaceHelper< Real, SpacePreBuilder > | spc_ |
| Helper class for building elements with space pre builder, boundary conditions and index. | |
| bool | zeroDim_ |
| Control, if dimension at last build is zero. | |
Private Member Functions | |
| virtual concepts::TColumn< Real > * | applySmatrices_ (const concepts::Element< Real > &elm, uint i, const concepts::TColumn< Real > *T0, const concepts::TColumn< Real > *T1) |
Apply i -th S matrix to T-Columns T0 and T1 of the element elm, where i is the number of child of elm. | |
| virtual Element< Real > * | newElement_ (concepts::Cell2 &cell, ushort *pMax, concepts::TColumn< Real > *T0, concepts::TColumn< Real > *T1) const |
Creates and returns an element for cell. | |
| void | recomputeSmatrices_ (const hp2Dedge::Quad< Real > &elm) |
| Checks if the S matrices need to be recomputed and does so if necessary. | |
Private Attributes | |
| std::auto_ptr < concepts::SMatrix1D > | S1left_n_ |
| std::auto_ptr < concepts::SMatrix1D > | S1left_t_ |
| S matrices in 1D. | |
| std::auto_ptr < concepts::SMatrix1D > | S1right_n_ |
| std::auto_ptr < concepts::SMatrix1D > | S1right_t_ |
| std::auto_ptr < concepts::SMatrixBase< Real > > | Smatrices2H_ [2] |
| S matrices for horizontal subdivision. | |
| std::auto_ptr < concepts::SMatrixBase< Real > > | Smatrices2H_X_ [2] |
| S matrices for tangential and normal component for different subdivisions. | |
| std::auto_ptr < concepts::SMatrixBase< Real > > | Smatrices2H_Y_ [2] |
| std::auto_ptr < concepts::SMatrixBase< Real > > | Smatrices2V_ [2] |
| S matrices for vertical subdivision. | |
| std::auto_ptr < concepts::SMatrixBase< Real > > | Smatrices2V_X_ [2] |
| std::auto_ptr < concepts::SMatrixBase< Real > > | Smatrices2V_Y_ [2] |
| std::auto_ptr < concepts::SMatrixBase< Real > > | Smatrices4_ [4] |
| S matrices for subdivision into 4 quads. | |
Definition at line 64 of file hpAdaptiveSpaceHCurl.hh.
| typedef concepts::Scan<hp2D::Element<Real> > hp2D::hpAdaptiveSpaceHCurl::Scan |
Reimplemented from hp2D::hpAdaptiveSpace< Real >.
Definition at line 66 of file hpAdaptiveSpaceHCurl.hh.
typedef Scan<ElementWithCell<Real > > concepts::SpaceOnCells< Real >::Scanner [inherited] |
Reimplemented from concepts::Space< Real >.
Reimplemented in linDG3D::FvdgSpace.
typedef Real hp2D::hpAdaptiveSpace< Real >::t_type [inherited] |
Definition at line 37 of file hpAdaptiveSpace.hh.
| hp2D::hpAdaptiveSpaceHCurl::hpAdaptiveSpaceHCurl | ( | concepts::Mesh2 & | msh, |
| uint | l, | ||
| uint | p, | ||
| concepts::BoundaryConditions * | bc = 0, |
||
| concepts::CellConditions * | cc = 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 |
| cc | Cell conditions |
| hp2D::hpAdaptiveSpaceHCurl::hpAdaptiveSpaceHCurl | ( | const hpAdaptiveSpaceHCurl & | spc | ) |
Constructor for using same mesh and distribution of degrees of freedom object as another space.
The global indices are sorted by the topological entities, on which the degrees of freedoms lie. Spaces could have no common entities, e.g. first space has Dirichlet boundary and this has only dof on the boundary. If they have common entities, like in mixed problems, the global indices per topological entity can be uniquely given by spcNo.
| prebuild | space pre builder |
| bc | Boundary conditions |
| cc | Cell conditions |
| spcNo | Number for distinguish between global indices on same topological entity. |
| lastIdx | Last index of previous space. Copy constructor. Copies mesh, boundary conditions and ctrl2_ (information about refinements and polynomial degrees of the elements). |
| virtual hp2D::hpAdaptiveSpaceHCurl::~hpAdaptiveSpaceHCurl | ( | ) | [virtual] |
| virtual void hp2D::hpAdaptiveSpace< Real >::adjust | ( | const concepts::Element< Real > & | elm, |
| const concepts::AdaptiveAdjustP< 2 > & | a | ||
| ) | [virtual, inherited] |
Adjusts the space in the next rebuild step for this element.
| virtual void concepts::AdaptiveSpace< Real , concepts::AdaptiveAdjustP< 2 > >::adjust | ( | const Element< Real > & | elm, |
| const concepts::AdaptiveAdjustP< 2 > & | a | ||
| ) | [pure virtual, inherited] |
Adjusts the space in the next rebuild step for this element.
| virtual concepts::TColumn<Real>* hp2D::hpAdaptiveSpaceHCurl::applySmatrices_ | ( | const concepts::Element< Real > & | elm, |
| uint | i, | ||
| const concepts::TColumn< Real > * | T0, | ||
| const concepts::TColumn< Real > * | T1 | ||
| ) | [private, virtual] |
Apply i -th S matrix to T-Columns T0 and T1 of the element elm, where i is the number of child of elm.
Returns resulting T-Columns.
Implements hp2D::hpAdaptiveSpace< Real >.
| std::pair<bool, uint> hp2D::hpAdaptiveSpace< Real >::available | ( | ) | const [inherited] |
Returns 0 if the space has to be rebuilt with rebuild(), otherwise the number of the build.
This number helps in the decision of availability.
| void hp2D::hpAdaptiveSpaceHCurl::buildEdgeDofs | ( | const BuildTColumnsBase< Real > * | b | ) | [inline] |
Change the strategy how the degrees of freedom for the edge are built.
The default strategy is BuildHCurlEdgeTColumns. You can change this strategy any time you chose.
buildEdgeDofs_ is reset with a clone of b.
| b | New strategy |
Definition at line 118 of file hpAdaptiveSpaceHCurl.hh.

| void hp2D::hpAdaptiveSpaceHCurl::buildInnerDofs | ( | const BuildTColumnsBase< Real > * | b | ) | [inline] |
Change the strategy how the degrees of freedom for the interior are built.
The default strategy is BuildHCurlInnerTColumns. You can change this strategy any time you chose.
buildInnerDofs_ is reset with a clone of b.
| b | New strategy |
Definition at line 129 of file hpAdaptiveSpaceHCurl.hh.

| virtual uint hp2D::hpAdaptiveSpace< Real >::dim | ( | ) | const [inline, virtual, inherited] |
Returns the dimension of the space.
Implements concepts::Space< Real >.
| uint hp2D::hpAdaptiveSpace< Real >::dim | ( | ) | [inline, inherited] |
| concepts::SubspaceHelper<Real , SpacePreBuilder>& hp2D::hpAdaptiveSpace< Real >::helper | ( | ) | [inline, inherited] |
Definition at line 87 of file hpAdaptiveSpace.hh.
| virtual std::ostream& hp2D::hpAdaptiveSpaceHCurl::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from hp2D::hpAdaptiveSpace< Real >.
| virtual uint& hp2D::hpAdaptiveSpace< Real >::lastIdx | ( | ) | [inline, virtual, inherited] |
Returns last global index of the space.
Implements concepts::Subspace.
Definition at line 88 of file hpAdaptiveSpace.hh.

| virtual const uint& hp2D::hpAdaptiveSpace< Real >::lastIdx | ( | ) | const [inline, virtual, inherited] |
| virtual uint hp2D::hpAdaptiveSpace< Real >::nelm | ( | ) | const [inline, virtual, inherited] |
Returns the number of elements in the space.
Implements concepts::Space< Real >.
| uint hp2D::hpAdaptiveSpace< Real >::nelm | ( | ) | [inline, inherited] |
| virtual Element<Real>* hp2D::hpAdaptiveSpaceHCurl::newElement_ | ( | concepts::Cell2 & | cell, |
| ushort * | pMax, | ||
| concepts::TColumn< Real > * | T0, | ||
| concepts::TColumn< Real > * | T1 | ||
| ) | const [private, virtual] |
Creates and returns an element for cell.
Has to be implemented in the derived classes.
Implements hp2D::hpAdaptiveSpace< Real >.
| virtual uint hp2D::hpAdaptiveSpace< Real >::offset | ( | ) | const [inline, virtual, inherited] |
Returns the offset.
Implements concepts::Subspace.
Definition at line 90 of file hpAdaptiveSpace.hh.
| hpFull& hp2D::hpAdaptiveSpace< Real >::prebuild | ( | ) | [inline, inherited] |
Definition at line 84 of file hpAdaptiveSpace.hh.
| hpFull& hp2D::hpAdaptiveSpace< Real >::prebuild | ( | ) | const [inline, inherited] |
Definition at line 85 of file hpAdaptiveSpace.hh.
| void hp2D::hpAdaptiveSpace< Real >::rebuild | ( | bool | sameIndices = false | ) | [inherited] |
Rebuilds the mesh and the elements due to adjustment orders.
| sameIndices | If true, the already existing indices (stored in the space pre builder) won't be cleared. That is useful for domain decomposition for example. |
| void hp2D::hpAdaptiveSpaceHCurl::recomputeShapefunctions | ( | ) | [virtual] |
Recompute shape functions, e.g.
for other abscissas redefined through setIntegrationRule
Implements hp2D::hpAdaptiveSpace< Real >.
| void hp2D::hpAdaptiveSpaceHCurl::recomputeSmatrices_ | ( | const hp2Dedge::Quad< Real > & | elm | ) | [private] |
Checks if the S matrices need to be recomputed and does so if necessary.
| cell | Cell which the S matrices are needed for (the polynomial degrees and shape functions are important) |
| virtual Scan* hp2D::hpAdaptiveSpace< Real >::scan | ( | ) | const [inline, virtual, inherited] |
Returns a scanner to iterate over the elements of the space.
Implements concepts::SpaceOnCells< Real >.
| Scan* hp2D::hpAdaptiveSpace< Real >::scan | ( | ) | [inline, inherited] |
| void hp2D::hpAdaptiveSpace< Real >::setBuildEdgeDofs_ | ( | const BuildTColumnsBase< Real > * | b | ) | [protected, inherited] |
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::hpAdaptiveSpace< Real >::setBuildInnerDofs_ | ( | const BuildTColumnsBase< Real > * | b | ) | [protected, inherited] |
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::hpAdaptiveSpace< Real >::setBuildVertexDofs_ | ( | const BuildTColumnsBase< Real > * | b | ) | [protected, inherited] |
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 |
uint hp2D::hpAdaptiveSpace< Real >::idxEdge_ [protected, inherited] |
Definition at line 145 of file hpAdaptiveSpace.hh.
uint hp2D::hpAdaptiveSpace< Real >::idxInner_ [protected, inherited] |
Definition at line 145 of file hpAdaptiveSpace.hh.
uint hp2D::hpAdaptiveSpace< Real >::idxVtx_ [protected, inherited] |
Number of indices on entities, just for statistics.
Definition at line 145 of file hpAdaptiveSpace.hh.
uint hp2D::hpAdaptiveSpace< Real >::nelm_ [protected, inherited] |
Number of elements currently active in the mesh.
Definition at line 132 of file hpAdaptiveSpace.hh.
uint hp2D::hpAdaptiveSpace< Real >::offset_ [protected, inherited] |
Initially given offset, holden for control, if in there are changes in the previous subspace.
Definition at line 137 of file hpAdaptiveSpace.hh.
hpFull* const hp2D::hpAdaptiveSpace< Real >::prebuild_ [protected, inherited] |
Mesh and degrees of freedoms.
Definition at line 124 of file hpAdaptiveSpace.hh.
std::auto_ptr<concepts::SMatrix1D> hp2D::hpAdaptiveSpaceHCurl::S1left_n_ [private] |
Definition at line 164 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrix1D> hp2D::hpAdaptiveSpaceHCurl::S1left_t_ [private] |
S matrices in 1D.
Definition at line 164 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrix1D> hp2D::hpAdaptiveSpaceHCurl::S1right_n_ [private] |
Definition at line 164 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrix1D> hp2D::hpAdaptiveSpaceHCurl::S1right_t_ [private] |
Definition at line 164 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrixBase<Real> > hp2D::hpAdaptiveSpaceHCurl::Smatrices2H_[2] [private] |
S matrices for horizontal subdivision.
Definition at line 177 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrixBase<Real> > hp2D::hpAdaptiveSpaceHCurl::Smatrices2H_X_[2] [private] |
S matrices for tangential and normal component for different subdivisions.
Definition at line 169 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrixBase<Real> > hp2D::hpAdaptiveSpaceHCurl::Smatrices2H_Y_[2] [private] |
Definition at line 170 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrixBase<Real> > hp2D::hpAdaptiveSpaceHCurl::Smatrices2V_[2] [private] |
S matrices for vertical subdivision.
Definition at line 181 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrixBase<Real> > hp2D::hpAdaptiveSpaceHCurl::Smatrices2V_X_[2] [private] |
Definition at line 171 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrixBase<Real> > hp2D::hpAdaptiveSpaceHCurl::Smatrices2V_Y_[2] [private] |
Definition at line 172 of file hpAdaptiveSpaceHCurl.hh.
std::auto_ptr<concepts::SMatrixBase<Real> > hp2D::hpAdaptiveSpaceHCurl::Smatrices4_[4] [private] |
S matrices for subdivision into 4 quads.
Definition at line 185 of file hpAdaptiveSpaceHCurl.hh.
concepts::SubspaceHelper<Real , SpacePreBuilder> hp2D::hpAdaptiveSpace< Real >::spc_ [protected, inherited] |
Helper class for building elements with space pre builder, boundary conditions and index.
Definition at line 129 of file hpAdaptiveSpace.hh.
bool hp2D::hpAdaptiveSpace< Real >::zeroDim_ [protected, inherited] |
Control, if dimension at last build is zero.
That is needed to distinguish from not built state, if the index counter is reset.
Definition at line 142 of file hpAdaptiveSpace.hh.