A 1D hp FEM space with continuous, picewise polynomial basis functions. More...

#include <space.hh>

Inheritance diagram for hp1D::Space:
concepts::SpaceOnCells< Real > concepts::AdaptiveSpace< Real, concepts::AdaptiveAdjustP< 1 > > concepts::Space< Real >

Public Types

typedef concepts::Scan< BaseElement< Real > > Scan
 
typedef Scan< ElementWithCell< Real > > Scanner
 
typedef ElementWithCell< Real > type
 

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. More...
 
uint dim ()
 Returns the dimension of the space. More...
 
uint dim () const
 
virtual uint getOutputDimension () const
 Returns the default output dimension, when we consider plotting a real-valued operator on this space. More...
 
uint nelm ()
 Returns the number of elements in the space. More...
 
uint nelm () const
 
void rebuild ()
 Rebuilds the space after an adjustment with adjust. More...
 
void recomputeShapefunctions ()
 Recompute shape functions, e.g. More...
 
Scanscan ()
 Returns a scanner to iterate over the elements of the space. More...
 
Scanscan () const
 
 Space (concepts::Mesh1 &msh, uint l, uint p, concepts::BoundaryConditions *bc=0)
 Constructor. More...
 
virtual ~Space ()
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 

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. More...
 
concepts::BoundaryConditionsbc_
 Boundary conditions. More...
 
concepts::DynArray< concepts::AdaptiveControl<> > ctrl0_
 Hash table of the control information for the vertices. More...
 
concepts::DynArray< concepts::AdaptiveControlP< 1 > > ctrl1_
 Hash table of the control information for the 1D elements. More...
 
uint dim_
 Dimension of the FE space. More...
 
concepts::Joiner< BaseElement< Real > *, 1 > * elm_
 Linked list of the elements. More...
 
concepts::Mesh1msh_
 Mesh. More...
 
uint nelm_
 Number of elements currently active in the mesh. More...
 
bool rebuild_
 If true: the elements have to be rebuilt. More...
 

Detailed Description

A 1D hp FEM space with continuous, picewise polynomial basis functions.

Author
Philipp Frauenfelder, 2002

Definition at line 27 of file space.hh.

Member Typedef Documentation

◆ Scan

Definition at line 31 of file space.hh.

◆ Scanner

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

Definition at line 84 of file space.hh.

◆ type

typedef ElementWithCell<Real > concepts::SpaceOnCells< Real >::type
inherited

Definition at line 83 of file space.hh.

Constructor & Destructor Documentation

◆ Space()

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.

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

◆ ~Space()

virtual hp1D::Space::~Space ( )
virtual

Member Function Documentation

◆ adjust() [1/2]

virtual void hp1D::Space::adjust ( const concepts::Element< Real > &  elm,
const concepts::AdaptiveAdjustP< 1 > &  a 
)
virtual

◆ adjust() [2/2]

virtual void concepts::AdaptiveSpace< Real , concepts::AdaptiveAdjustP< 1 > >::adjust ( const Element< Real > &  elm,
const concepts::AdaptiveAdjustP< 1 > &  a 
)
pure virtualinherited

Adjusts the space in the next rebuild step for this element.

◆ buildElements_()

void hp1D::Space::buildElements_ ( concepts::EdgeNd cell,
concepts::TColumn< Real > *  T0 = 0 
)
private

◆ dim() [1/2]

uint hp1D::Space::dim ( )
inlinevirtual

Returns the dimension of the space.

Implements concepts::SpaceOnCells< Real >.

Definition at line 117 of file space.hh.

◆ dim() [2/2]

uint hp1D::Space::dim ( ) const
inline

Definition at line 102 of file space.hh.

◆ enforceBC_()

void hp1D::Space::enforceBC_ ( concepts::EdgeNd cell)
private

◆ getOutputDimension()

virtual uint concepts::Space< Real >::getOutputDimension ( ) const
inlinevirtualinherited

Returns the default output dimension, when we consider plotting a real-valued operator on this space.

Definition at line 50 of file space.hh.

◆ info()

virtual std::ostream& hp1D::Space::info ( std::ostream &  os) const
protectedvirtual

Reimplemented from concepts::SpaceOnCells< Real >.

◆ meshAndPoly_()

void hp1D::Space::meshAndPoly_ ( concepts::EdgeNd cell,
int  l,
int &  L,
int &  P 
)
private

◆ nelm() [1/2]

uint hp1D::Space::nelm ( )
inlinevirtual

Returns the number of elements in the space.

Implements concepts::SpaceOnCells< Real >.

Definition at line 122 of file space.hh.

◆ nelm() [2/2]

uint hp1D::Space::nelm ( ) const
inline

Definition at line 107 of file space.hh.

◆ rebuild()

void hp1D::Space::rebuild ( )

Rebuilds the space after an adjustment with adjust.

◆ recomputeShapefunctions()

void hp1D::Space::recomputeShapefunctions ( )

Recompute shape functions, e.g.

for other abscissas redefined through IntegrableElm::rule().set(...)

◆ scan() [1/2]

Space::Scan * hp1D::Space::scan ( )
inlinevirtual

Returns a scanner to iterate over the elements of the space.

Implements concepts::SpaceOnCells< Real >.

Definition at line 127 of file space.hh.

◆ scan() [2/2]

Space::Scan * hp1D::Space::scan ( ) const
inline

Definition at line 112 of file space.hh.

Member Data Documentation

◆ adj_

concepts::DynArray<concepts::AdaptiveAdjustP<1> > hp1D::Space::adj_
private

Hash table of the adjustment information of the elements.

Definition at line 94 of file space.hh.

◆ bc_

concepts::BoundaryConditions* hp1D::Space::bc_
private

Boundary conditions.

Definition at line 71 of file space.hh.

◆ ctrl0_

concepts::DynArray<concepts::AdaptiveControl<> > hp1D::Space::ctrl0_
private

Hash table of the control information for the vertices.

Definition at line 89 of file space.hh.

◆ ctrl1_

concepts::DynArray<concepts::AdaptiveControlP<1> > hp1D::Space::ctrl1_
private

Hash table of the control information for the 1D elements.

Definition at line 91 of file space.hh.

◆ dim_

uint hp1D::Space::dim_
private

Dimension of the FE space.

Definition at line 80 of file space.hh.

◆ elm_

concepts::Joiner<BaseElement<Real>*, 1>* hp1D::Space::elm_
private

Linked list of the elements.

Definition at line 86 of file space.hh.

◆ msh_

concepts::Mesh1& hp1D::Space::msh_
private

Mesh.

Definition at line 69 of file space.hh.

◆ nelm_

uint hp1D::Space::nelm_
private

Number of elements currently active in the mesh.

Definition at line 83 of file space.hh.

◆ rebuild_

bool hp1D::Space::rebuild_
private

If true: the elements have to be rebuilt.

Some elements have been marked for refinement or for coarsening and the elements are outdated.

Definition at line 77 of file space.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich