Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
hp2D::hpAdaptiveSpaceH1 Class Reference

#include <hpAdaptiveSpaceH1.hh>

Inheritance diagram for hp2D::hpAdaptiveSpaceH1:
Inheritance graph
[legend]
Collaboration diagram for hp2D::hpAdaptiveSpaceH1:
Collaboration graph
[legend]

List of all members.

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 ()
 hpAdaptiveSpaceH1 (concepts::Mesh2 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0)
 Constructor.
 hpAdaptiveSpaceH1 (hpFull &prebuild, concepts::BoundaryConditions *bc=0, concepts::CellConditions *cc=0, uint spcNo=0, uint *offset=0, uint *idx=0)
 Constructor for using same mesh and distribution of degrees of freedom object as another space.
 hpAdaptiveSpaceH1 (const hpAdaptiveSpaceH1 &spc)
 Copy constructor.
virtual uint & lastIdx ()
 Returns last global index of the space.
virtual const uint & lastIdx () const
uint nelm ()
virtual uint nelm () const
 Returns the number of elements in the space.
virtual uint offset () const
 Returns the offset.
hpFullprebuild ()
hpFullprebuild () const
void rebuild (bool sameIndices=false)
 Rebuilds the mesh and the elements due to adjustment orders.
virtual void recomputeShapefunctions ()
 Recompute shape functions, e.g.
Scanscan ()
virtual Scanscan () const
 Returns a scanner to iterate over the elements of the space.
virtual ~hpAdaptiveSpaceH1 ()
Strategies to Build the Degrees of Freedom
void buildVertexDofs (const BuildTColumnsBase< Real > *b)
 Change the strategy how the degrees of freedom for the vertices are built.
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 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 std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
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.
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

void recomputeSmatrices_ (const 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_
 S matrices in 1D.
std::auto_ptr
< concepts::SMatrix1D
S1right_
std::auto_ptr
< concepts::SMatrixBase< Real > > 
Smatrices2H_ [2]
 S matrices for horizontal subdivision.
std::auto_ptr
< concepts::SMatrixBase< Real > > 
Smatrices2V_ [2]
 S matrices for vertical subdivision.
std::auto_ptr
< concepts::SMatrixBase< Real > > 
Smatrices4_ [4]
 S matrices for subdivision into 4 quads.

Detailed Description

Examples:

exactDtN.cc, inhomDirichletBCs.cc, inhomDirichletBCsLagrange.cc, inhomNeumannBCs.cc, and RobinBCs.cc.

Definition at line 61 of file hpAdaptiveSpaceH1.hh.


Member Typedef Documentation

Reimplemented from hp2D::hpAdaptiveSpace< Real >.

Reimplemented in hp2D::ThinSheetSpaceH1.

Definition at line 63 of file hpAdaptiveSpaceH1.hh.

typedef Scan<ElementWithCell<Real > > concepts::SpaceOnCells< Real >::Scanner [inherited]

Reimplemented from concepts::Space< Real >.

Reimplemented in linDG3D::FvdgSpace.

Definition at line 74 of file space.hh.

typedef Real hp2D::hpAdaptiveSpace< Real >::t_type [inherited]

Definition at line 37 of file hpAdaptiveSpace.hh.


Constructor & Destructor Documentation

hp2D::hpAdaptiveSpaceH1::hpAdaptiveSpaceH1 ( 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.

Parameters:
mshThe domain of interest partitioned into a mesh.
lLevel of refinement
pDegree of the polynomials to be used.
bcBoundary conditions
ccCell conditions

REMARK: If and only if the flag emptyElements of the cell conditions cc is set to false, empty elements will not be built for inactive cells.

hp2D::hpAdaptiveSpaceH1::hpAdaptiveSpaceH1 ( hpFull prebuild,
concepts::BoundaryConditions bc = 0,
concepts::CellConditions cc = 0,
uint  spcNo = 0,
uint *  offset = 0,
uint *  idx = 0 
)

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.

Parameters:
prebuildspace pre builder
bcBoundary conditions
ccCell conditions
spcNoNumber for distinguish between global indices on same topological entity.
offsetLast index of previous space.
idxpointer to index, when wanting a common index

REMARK: If and only if the flag emptyElements of the cell conditions cc is set to false, empty elements will not be built for inactive cells.

hp2D::hpAdaptiveSpaceH1::hpAdaptiveSpaceH1 ( const hpAdaptiveSpaceH1 spc)

Copy constructor.

Copies mesh, boundary conditions and ctrl2_ (information about refinements and polynomial degrees of the elements).

virtual hp2D::hpAdaptiveSpaceH1::~hpAdaptiveSpaceH1 ( ) [virtual]

Member Function Documentation

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::hpAdaptiveSpaceH1::applySmatrices_ ( const concepts::Element< Real > &  elm,
uint  i,
const concepts::TColumn< Real > *  T0,
const concepts::TColumn< Real > *  T1 
) [protected, 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 >.

Reimplemented in hp2D::ThinSheetSpaceH1.

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::hpAdaptiveSpaceH1::buildEdgeDofs ( const BuildTColumnsBase< Real > *  b) [inline]

Change the strategy how the degrees of freedom for the edge are built.

The default strategy is BuildH1EdgeTColumns. You can change this strategy any time you chose.

buildEdgeDofs_ is reset with a clone of b.

Parameters:
bNew strategy

Definition at line 136 of file hpAdaptiveSpaceH1.hh.

Here is the call graph for this function:

void hp2D::hpAdaptiveSpaceH1::buildInnerDofs ( const BuildTColumnsBase< Real > *  b) [inline]

Change the strategy how the degrees of freedom for the interior are built.

The default strategy is BuildH1InnerTColumns. You can change this strategy any time you chose.

buildInnerDofs_ is reset with a clone of b.

Parameters:
bNew strategy

Definition at line 147 of file hpAdaptiveSpaceH1.hh.

Here is the call graph for this function:

void hp2D::hpAdaptiveSpaceH1::buildVertexDofs ( const BuildTColumnsBase< Real > *  b) [inline]

Change the strategy how the degrees of freedom for the vertices are built.

The default strategy is BuildH1VtxTColumns. You can change this strategy any time you chose.

buildVertexDofs_ is reset with a clone of b.

Parameters:
bNew strategy

Definition at line 126 of file hpAdaptiveSpaceH1.hh.

Here is the call graph for this function:

uint hp2D::hpAdaptiveSpace< Real >::dim ( ) [inline, inherited]
virtual uint hp2D::hpAdaptiveSpace< Real >::dim ( ) const [inline, virtual, inherited]

Returns the dimension of the space.

Implements concepts::Space< Real >.

Examples:
inhomDirichletBCsLagrange.cc.
concepts::SubspaceHelper<Real , SpacePreBuilder>& hp2D::hpAdaptiveSpace< Real >::helper ( ) [inline, inherited]

Definition at line 87 of file hpAdaptiveSpace.hh.

virtual std::ostream& hp2D::hpAdaptiveSpaceH1::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Reimplemented from hp2D::hpAdaptiveSpace< Real >.

Reimplemented in hp2D::ThinSheetSpaceH1.

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.

Here is the call graph for this function:

virtual const uint& hp2D::hpAdaptiveSpace< Real >::lastIdx ( ) const [inline, virtual, inherited]

Definition at line 89 of file hpAdaptiveSpace.hh.

Here is the call graph for this function:

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::hpAdaptiveSpaceH1::newElement_ ( concepts::Cell2 cell,
ushort *  pMax,
concepts::TColumn< Real > *  T0,
concepts::TColumn< Real > *  T1 
) const [protected, virtual]

Creates and returns an element for cell.

Implements hp2D::hpAdaptiveSpace< Real >.

Reimplemented in hp2D::ThinSheetSpaceH1.

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.

Parameters:
sameIndicesIf true, the already existing indices (stored in the space pre builder) won't be cleared. That is useful for domain decomposition for example.
Examples:
inhomDirichletBCs.cc, inhomDirichletBCsLagrange.cc, inhomNeumannBCs.cc, and RobinBCs.cc.
virtual void hp2D::hpAdaptiveSpaceH1::recomputeShapefunctions ( ) [virtual]

Recompute shape functions, e.g.

for other abscissas redefined through setIntegrationRule

Implements hp2D::hpAdaptiveSpace< Real >.

Examples:
inhomDirichletBCs.cc, inhomDirichletBCsLagrange.cc, inhomNeumannBCs.cc, and RobinBCs.cc.
void hp2D::hpAdaptiveSpaceH1::recomputeSmatrices_ ( const Quad< Real > &  elm) [private]

Checks if the S matrices need to be recomputed and does so if necessary.

Parameters:
elmCell for which the S matrices are needed (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.

Parameters:
bNew 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.

Parameters:
bNew 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.

Parameters:
bNew strategy

Member Data Documentation

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.

S matrices in 1D.

Definition at line 183 of file hpAdaptiveSpaceH1.hh.

Definition at line 183 of file hpAdaptiveSpaceH1.hh.

S matrices for horizontal subdivision.

See also:
concepts::Quad2dSubdiv2H

Definition at line 188 of file hpAdaptiveSpaceH1.hh.

S matrices for vertical subdivision.

See also:
concepts::Quad2dSubdiv2V

Definition at line 193 of file hpAdaptiveSpaceH1.hh.

std::auto_ptr<concepts::SMatrixBase<Real> > hp2D::hpAdaptiveSpaceH1::Smatrices4_[4] [private]

S matrices for subdivision into 4 quads.

See also:
concepts::Quad2dSubdiv4

Definition at line 198 of file hpAdaptiveSpaceH1.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.


The documentation for this class was generated from the following file:

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)