Class documentation of Concepts

Loading...
Searching...
No Matches
hp2D::hpAdaptiveSpaceDG< F > Class Template Reference

#include <hpAdaptiveSpaceDG.hh>

Inheritance diagram for hp2D::hpAdaptiveSpaceDG< F >:
concepts::SpaceOnCoarseCells< 2u, Real > concepts::SpaceOnCells< F > concepts::Space< F > concepts::OutputOperator

Public Types

typedef concepts::Scan< hp2D::Element< Real > > Scan
 
typedef ElementWithCell< F > type
 
typedef Scan< ElementWithCell< F > > Scanner
 

Public Member Functions

 hpAdaptiveSpaceDG (concepts::Mesh2 &msh, uint l, uint p, concepts::Sequence< concepts::Set< uint > > domains, concepts::BoundaryConditions *bc=0, bool linearTrunk=false)
 
 hpAdaptiveSpaceDG (concepts::Mesh2 &msh, uint l, uint p, const char *domains, concepts::BoundaryConditions *bc=0, bool linearTrunk=false)
 
 hpAdaptiveSpaceDG (concepts::Mesh2 &msh, uint l, uint p, std::string domains, concepts::BoundaryConditions *bc=0, bool linearTrunk=false)
 
 hpAdaptiveSpaceDG (hpFull &prebuild, uint spcNo, concepts::Sequence< concepts::Set< uint > > domains, concepts::BoundaryConditions *bc=0, bool linearTrunk=false)
 
 hpAdaptiveSpaceDG (hpFull &prebuild, uint spcNo, std::string domains, concepts::BoundaryConditions *bc=0, bool linearTrunk=false)
 
 hpAdaptiveSpaceDG (hpFull &prebuild, uint spcNo, const char *domains, concepts::BoundaryConditions *bc=0, bool linearTrunk=false)
 
virtual uint dim () const
 Returns the dimension of the space.
 
virtual uint nelm () const
 Returns the number of elements in the space.
 
virtual Scanscan () const
 Returns a scanner to iterate over the elements of the space.
 
void rebuild ()
 Rebuilds the mesh and the elements due to adjustment orders.
 
void recomputeShapefunctions ()
 
const concepts::Sequence< F * > spaces () const
 
virtual const std::set< typename concepts::CellType< 2u >::cell * > allCells () const
 
virtual uint getOutputDimension () const
 Returns the default output dimension, when we consider plotting a real-valued operator on this space.
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
 

Protected Attributes

concepts::Sequence< F * > spc_
 The separate spaces for each sub-domain.
 

Detailed Description

template<class F>
class hp2D::hpAdaptiveSpaceDG< F >

hp-adaptive FEM space in 2D composed of separate spaces hpAdapativeSpace and may be discontinuous.

Author
Kersten Schmidt, 2009 Vsevolod Shashkov, 2018

Definition at line 27 of file hpAdaptiveSpaceDG.hh.

Member Typedef Documentation

◆ Scan

template<class F >
typedef concepts::Scan<hp2D::Element<Real> > hp2D::hpAdaptiveSpaceDG< F >::Scan

Definition at line 29 of file hpAdaptiveSpaceDG.hh.

◆ Scanner

template<class F >
typedef Scan<ElementWithCell<F> > concepts::SpaceOnCells< F >::Scanner
inherited

Definition at line 84 of file space.hh.

◆ type

template<class F >
typedef ElementWithCell<F> concepts::SpaceOnCells< F >::type
inherited

Definition at line 83 of file space.hh.

Constructor & Destructor Documentation

◆ hpAdaptiveSpaceDG() [1/6]

template<class F >
hp2D::hpAdaptiveSpaceDG< F >::hpAdaptiveSpaceDG ( concepts::Mesh2 msh,
uint  l,
uint  p,
concepts::Sequence< concepts::Set< uint > >  domains,
concepts::BoundaryConditions bc = 0,
bool  linearTrunk = false 
)

Constructor

Parameters
mshThe overall domain of interest partitioned into a mesh.
lLevel of refinement.
pDegree of the polynomials to be used.
domainsCell attributes of the sub-domains being continuous (for each sub-domain a space of type F will be built), and discontinuous over the common edges between the sub-domains. The constructor takes the sequence of sets where each set correspond to the attributes of the corresponding sub-domain. E.g., taking domains(0) = {1,2,3} and domains(1) = {4} there are two sub-domains, where the first sub-domain consists of cells with attributes 1, 2 or 3, and the second of cells with attributes 4. The attribute '0' is forbidden. Remark: All the attributes have to be given explicitly, and the constructor throws an exception when domains is empty, or domains(i) is empty for any index i.
bcBoundary conditions
linearTrunkBoolean indicating the use of linear trunk space or not, by default, trunk space is built.

◆ hpAdaptiveSpaceDG() [2/6]

template<class F >
hp2D::hpAdaptiveSpaceDG< F >::hpAdaptiveSpaceDG ( concepts::Mesh2 msh,
uint  l,
uint  p,
const char *  domains,
concepts::BoundaryConditions bc = 0,
bool  linearTrunk = false 
)

Constructor

Parameters
mshThe overall domain of interest partitioned into a mesh.
lLevel of refinement.
pDegree of the polynomials to be used.
domainsCell attributes of the sub-domains being continuous (for each sub-domain a space of type F will be built), and discontinuous over the common edges between the sub-domains, e.g. taking "1 2 3;4" there are two sub-domains, where the first sub-domain consists of cells with attributes 1, 2 or 3, and the second of cells with attributes 4. Remark: All the attributes have to be given explicitly, e.g. "1 2; " is not allowed, however "1 2;" is considered as one sub-domain.
bcBoundary conditions
linearTrunkBoolean indicating the use of linear trunk space or not, by default, trunk space is built.

◆ hpAdaptiveSpaceDG() [3/6]

template<class F >
hp2D::hpAdaptiveSpaceDG< F >::hpAdaptiveSpaceDG ( concepts::Mesh2 msh,
uint  l,
uint  p,
std::string  domains,
concepts::BoundaryConditions bc = 0,
bool  linearTrunk = false 
)

Constructor

Parameters
mshThe overall domain of interest partitioned into a mesh.
lLevel of refinement.
pDegree of the polynomials to be used.
domainsCell attributes of the sub-domains being continuous (for each sub-domain a space of type F will be built), and discontinuous over the common edges between the sub-domains, e.g. taking "1 2 3;4" there are two sub-domains, where the first sub-domain consists of cells with attributes 1, 2 or 3, and the second of cells with attributes 4. Remark: All the attributes have to be given explicitly, e.g. "1 2; " is not allowed, however "1 2;" is considered as one sub-domain.
bcBoundary conditions
linearTrunkBoolean indicating the use of linear trunk space or not, by default, trunk space is built.

◆ hpAdaptiveSpaceDG() [4/6]

template<class F >
hp2D::hpAdaptiveSpaceDG< F >::hpAdaptiveSpaceDG ( hpFull prebuild,
uint  spcNo,
concepts::Sequence< concepts::Set< uint > >  domains,
concepts::BoundaryConditions bc = 0,
bool  linearTrunk = false 
)

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
spcNoNumber for distinguish between global indices on same topological entity.
domainsCell attributes of the sub-domains being continuous (for each sub-domain a space of type F will be built), and discontinuous over the common edges between the sub-domains. The constructor takes the sequence of sets where each set correspond to the attributes of the corresponding sub-domain. E.g., taking domains(0) = {1,2,3} and domains(1) = {4} there are two sub-domains, where the first sub-domain consists of cells with attributes 1, 2 or 3, and the second of cells with attributes 4. The attribute '0' is forbidden. Remark: All the attributes have to be given explicitly, and the constructor throws an exception when domains is empty, or domains(i) is empty for any index i.
bcBoundary conditions
linearTrunkBoolean indicating the use of linear trunk space or not, by default, trunk space is built.

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.

◆ hpAdaptiveSpaceDG() [5/6]

template<class F >
hp2D::hpAdaptiveSpaceDG< F >::hpAdaptiveSpaceDG ( hpFull prebuild,
uint  spcNo,
std::string  domains,
concepts::BoundaryConditions bc = 0,
bool  linearTrunk = false 
)

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
spcNoNumber for distinguish between global indices on same topological entity.
domainsCell attributes of the sub-domains being continuous (for each sub-domain a space of type F will be built), and discontinuous over the common edges between the sub-domains, e.g. taking "1 2 3;4" there are two sub-domains, where the first sub-domain consists of cells with attributes 1, 2 or 3, and the second of cells with attributes 4. Remark: All the attributes have to be given explicitly, e.g. "1 2; " is not allowed, however "1 2;" is considered as one sub-domain.
bcBoundary conditions
linearTrunkBoolean indicating the use of linear trunk space or not, by default, trunk space is built.

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.

◆ hpAdaptiveSpaceDG() [6/6]

template<class F >
hp2D::hpAdaptiveSpaceDG< F >::hpAdaptiveSpaceDG ( hpFull prebuild,
uint  spcNo,
const char *  domains,
concepts::BoundaryConditions bc = 0,
bool  linearTrunk = false 
)

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
spcNoNumber for distinguish between global indices on same topological entity.
domainsCell attributes of the sub-domains being continuous (for each sub-domain a space of type F will be built), and discontinuous over the common edges between the sub-domains, e.g. taking "1 2 3;4" there are two sub-domains, where the first sub-domain consists of cells with attributes 1, 2 or 3, and the second of cells with attributes 4. Remark: All the attributes have to be given explicitly, e.g. "1 2; " is not allowed, however "1 2;" is considered as one sub-domain.
bcBoundary conditions
linearTrunkBoolean indicating the use of linear trunk space or not, by default, trunk space is built.

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.

Member Function Documentation

◆ allCells()

template<class F >
virtual const std::set< typename concepts::CellType< 2u >::cell * > hp2D::hpAdaptiveSpaceDG< F >::allCells ( ) const
virtual

◆ dim()

template<class F >
virtual uint hp2D::hpAdaptiveSpaceDG< F >::dim ( ) const
inlinevirtual

Returns the dimension of the space.

Implements concepts::SpaceOnCells< F >.

Definition at line 216 of file hpAdaptiveSpaceDG.hh.

◆ getOutputDimension()

template<class F >
virtual uint concepts::Space< F >::getOutputDimension ( ) const
inlinevirtualinherited

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

Reimplemented in hp2D::hpAdaptiveSpaceHCurl, and hp2Dedge::Space.

Definition at line 50 of file space.hh.

◆ info()

template<class F >
virtual std::ostream & hp2D::hpAdaptiveSpaceDG< F >::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::SpaceOnCoarseCells< 2u, Real >.

◆ nelm()

template<class F >
virtual uint hp2D::hpAdaptiveSpaceDG< F >::nelm ( ) const
inlinevirtual

Returns the number of elements in the space.

Implements concepts::SpaceOnCells< F >.

Definition at line 217 of file hpAdaptiveSpaceDG.hh.

◆ recomputeShapefunctions()

template<class F >
void hp2D::hpAdaptiveSpaceDG< F >::recomputeShapefunctions ( )

Recompute shape functions, e.g. for other abscissas redefined through setIntegrationRule

◆ scan()

template<class F >
virtual Scan * hp2D::hpAdaptiveSpaceDG< F >::scan ( ) const
inlinevirtual

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

Implements concepts::SpaceOnCells< F >.

Definition at line 218 of file hpAdaptiveSpaceDG.hh.

◆ spaces()

template<class F >
const concepts::Sequence< F * > hp2D::hpAdaptiveSpaceDG< F >::spaces ( ) const
inline

Definition at line 230 of file hpAdaptiveSpaceDG.hh.

Member Data Documentation

◆ spc_

template<class F >
concepts::Sequence<F*> hp2D::hpAdaptiveSpaceDG< F >::spc_
protected

The separate spaces for each sub-domain.

Definition at line 237 of file hpAdaptiveSpaceDG.hh.


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