hp2D::BuildH1InnerTColumnsLinTrunk< F > Class Template Referenceabstract

Responsible to build the T columns belonging to inner degrees of freedom in a H1 conforming (trunk) space with shape functions in tensor product structure. More...

#include <buildH1TColumns.hh>

Inheritance diagram for hp2D::BuildH1InnerTColumnsLinTrunk< F >:
hp2D::BuildH1InnerTColumns< concepts::Real > hp2D::BuildTColumnsBase< concepts::Real > concepts::BuildTColumnsBase< concepts::Real, SpacePreBuilder >

Public Types

typedef concepts::SpaceHelper< F, SpacePreBuilderSpaceHelper
 

Public Member Functions

 BuildH1InnerTColumnsLinTrunk ()
 Default constructor. More...
 
 BuildH1InnerTColumnsLinTrunk (SpaceHelper &spc)
 Constructor. More...
 
virtual BuildH1InnerTColumns< concepts::Real > * clone (SpaceHelper *spc=0) const
 
virtual BuildH1InnerTColumnsLinTrunk< F > * clone (SpaceHelper *spc=0) const
 
virtual BuildTColumnsBase< concepts::Real, SpacePreBuilder > * clone (SpaceHelper< concepts::Real, SpacePreBuilder > *spc=0) const=0
 Virtual copy constructor with a twist. More...
 
virtual void operator() (const concepts::Connector2 &cntr, concepts::TColumn< concepts::Real > *&T1) const
 Builds the degrees of freedom. More...
 
SpacePreBuilderprebuild () const
 Returns the space pre builder. More...
 
SpaceHelper< concepts::Real, SpacePreBuilder > & spc () const
 Returns pointer to space helper class. More...
 
virtual bool trunk (uint p, uint q, const ushort P[2]) const
 Trunk space indicator function. More...
 
virtual ~BuildH1InnerTColumnsLinTrunk ()
 

Protected Member Functions

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

Protected Attributes

SpaceHelper< concepts::Real, SpacePreBuilder > * spc_
 Space to build the degrees of freedom from. More...
 

Detailed Description

template<class F = concepts::Real>
class hp2D::BuildH1InnerTColumnsLinTrunk< F >

Responsible to build the T columns belonging to inner degrees of freedom in a H1 conforming (trunk) space with shape functions in tensor product structure.

Using this class, only a trunk of the degrees of freedom in the interior are built: if (p + q) <= ((P[0] > P[1]) ? P[0] : P[1]) the degree of freedom with polynomial degrees p, q in each direction is built (P[i] are the maximal polynomial degrees in each direction.)

This class is registered as the default strategy in hpAdaptiveSpaceH1 to build the inner degrees of freedom. Giving the space a different class through the use of hpAdaptiveSpaceH1::buildInnerDofs, you can change that behaviour.

Author
Philipp Frauenfelder, 2004

Definition at line 220 of file buildH1TColumns.hh.

Member Typedef Documentation

◆ SpaceHelper

template<class F = concepts::Real>
typedef concepts::SpaceHelper<F, SpacePreBuilder> hp2D::BuildH1InnerTColumnsLinTrunk< F >::SpaceHelper

Definition at line 222 of file buildH1TColumns.hh.

Constructor & Destructor Documentation

◆ BuildH1InnerTColumnsLinTrunk() [1/2]

template<class F = concepts::Real>
hp2D::BuildH1InnerTColumnsLinTrunk< F >::BuildH1InnerTColumnsLinTrunk ( )
inline

Default constructor.

Definition at line 224 of file buildH1TColumns.hh.

◆ BuildH1InnerTColumnsLinTrunk() [2/2]

template<class F = concepts::Real>
hp2D::BuildH1InnerTColumnsLinTrunk< F >::BuildH1InnerTColumnsLinTrunk ( SpaceHelper spc)
inline

Constructor.

Parameters
spcSpace Helper with Space Pre Builder (mesh and distribution of degrees of freedom), boundary condition and the running index

Definition at line 231 of file buildH1TColumns.hh.

◆ ~BuildH1InnerTColumnsLinTrunk()

template<class F = concepts::Real>
virtual hp2D::BuildH1InnerTColumnsLinTrunk< F >::~BuildH1InnerTColumnsLinTrunk ( )
inlinevirtual

Definition at line 233 of file buildH1TColumns.hh.

Member Function Documentation

◆ clone() [1/3]

◆ clone() [2/3]

template<class F = concepts::Real>
virtual BuildH1InnerTColumnsLinTrunk<F>* hp2D::BuildH1InnerTColumnsLinTrunk< F >::clone ( SpaceHelper spc = 0) const
virtual

◆ clone() [3/3]

virtual BuildTColumnsBase<concepts::Real ,SpacePreBuilder >* concepts::BuildTColumnsBase< concepts::Real , SpacePreBuilder >::clone ( SpaceHelper< F, G > *  spc = 0) const
pure virtualinherited

Virtual copy constructor with a twist.

If a copy of a space helper is created, the strategies to build the degrees of freedom of the copy should also reference the copy and not the initial space helper. This is done by giving the argument spc to clone.

Parameters
spcSpace helper class to work on for the return value. If set to 0, spc_ is used.

◆ info()

template<class F = concepts::Real>
virtual std::ostream& hp2D::BuildH1InnerTColumnsLinTrunk< F >::info ( std::ostream &  os) const
protectedvirtual

◆ operator()()

virtual void hp2D::BuildH1InnerTColumns< concepts::Real >::operator() ( const concepts::Connector2 cntr,
concepts::TColumn< F > *&  T1 
) const
virtualinherited

Builds the degrees of freedom.

Parameters
cntrQuad which dofs should be considered
T1New T columns created for the degrees of freedom

Implements hp2D::BuildTColumnsBase< concepts::Real >.

◆ prebuild()

Returns the space pre builder.

Definition at line 258 of file spacePreBuilder.hh.

◆ spc()

Returns pointer to space helper class.

Definition at line 256 of file spacePreBuilder.hh.

◆ trunk()

template<class F = concepts::Real>
virtual bool hp2D::BuildH1InnerTColumnsLinTrunk< F >::trunk ( uint  p,
uint  q,
const ushort  P[2] 
) const
virtual

Trunk space indicator function.

For each degree of freedom, this function is called to find out if it should be built or not. If the return value is true, the degree of freedom is built, otherwise it is not.

The default behaviour of this function is to return true. Overwrite it if you want to have a trunk space (e.g. as in BuildInnerDofsLinTrunk).

Parameters
pPolynomial degree in first direction of current degree of freedom
qPolynomial degree in second direction of current degree of freedom
PMaximal polynomial degree in the interior

Reimplemented from hp2D::BuildH1InnerTColumns< concepts::Real >.

Member Data Documentation

◆ spc_

Space to build the degrees of freedom from.

Definition at line 273 of file spacePreBuilder.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