Domain decomposition space. More...

#include <domainDecomp.hh>

Inheritance diagram for concepts::DomainDecomp< F >:
concepts::DDSpace< F::t_type > concepts::Subspace concepts::Space< F >

Public Types

typedef concepts::Element< typename F::t_type > Element
 Element type. More...
 
typedef concepts::Scan< ElementScan
 
typedef Scan< Element< F > > Scanner
 
typedef Element< F > type
 

Public Member Functions

bool available () const
 Returns true, if space is available, false, if it has to be rebuilt. More...
 
virtual uint dim () const
 Returns the dimension of the space. More...
 
template<class G >
 DomainDecomp (G &prebuild, Sequence< Set< uint > > domains, BoundaryConditions *bc=0, CellConditions *cc=0, uint spcNo=0, uint *offset=0)
 Constructor. More...
 
const uint domains () const
 Returns number of domains/spaces. More...
 
virtual uint getOutputDimension () const
 Returns the default output dimension, when we consider plotting a real-valued operator on this space. More...
 
virtual const Set< IndexRangeindicesB (uint i) const
 Returns index set for dof at the boundary the i th domain. More...
 
virtual const Set< IndexRangeindicesI (uint i) const
 Returns index set for dof inside the i th domain. More...
 
virtual uint & lastIdx ()
 Returns last global index of the space. More...
 
virtual uint nelm () const
 Returns the number of elements in the space. More...
 
virtual uint offset () const
 Returns the offset, returns 0 if space is not a subspace or first one. More...
 
void rebuild ()
 Rebuilds the spaces. More...
 
virtual Scanscan () const
 Returns a scanner to iterate over the elements of the space. More...
 
F & space (uint i)
 
virtual const F & space (uint i) const
 Returns space belonging to i th domain. More...
 
virtual ~DomainDecomp ()
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns all index sets for dof at boundary of each domain. More...
 

Protected Attributes

uint domains_
 Number of domains/spaces. More...
 
Sequence< Set< IndexRange > > indicesB_
 
Sequence< Set< IndexRange > > indicesI_
 Index sets of dof inside and at the boundary for each domain/space. More...
 

Private Member Functions

template<class G , class H >
void getIndices_ (const G &prebuild, const H &cntr, Set< IndexRange > &indices)
 

Private Attributes

HashMap< uint > attrToDomain_
 Mapping from attribute to domain number. More...
 
Sequence< CellConditionscc_
 Cell conditions for the spaces. More...
 
concepts::Joiner< Element *, 1 > * elm_
 Array of the elements of all domains. More...
 
uint idx_
 
uint nelm_
 Number of elements in all spaces. More...
 
Sequence< F * > spaces_
 Spaces belonging to domains. More...
 
Array< uint > spcBuild_
 Array of build number of the spaces at last call of rebuild() More...
 
uint spcNo_
 Number for the global indices of the domains, for distinguishing between global indices on same topological entity. More...
 

Detailed Description

template<class F>
class concepts::DomainDecomp< F >

Domain decomposition space.

Parameters
Ftype of space pre builder class

Definition at line 72 of file domainDecomp.hh.

Member Typedef Documentation

◆ Element

template<class F >
typedef concepts::Element<typename F::t_type> concepts::DomainDecomp< F >::Element

Element type.

Parameters
F::t_typetype of T matrix entries

Definition at line 78 of file domainDecomp.hh.

◆ Scan

template<class F >
typedef concepts::Scan<Element> concepts::DomainDecomp< F >::Scan

Definition at line 79 of file domainDecomp.hh.

◆ Scanner

template<class F >
typedef Scan<Element<F> > concepts::Space< F >::Scanner
inherited

Definition at line 47 of file space.hh.

◆ type

template<class F >
typedef Element<F> concepts::Space< F >::type
inherited

Definition at line 46 of file space.hh.

Constructor & Destructor Documentation

◆ DomainDecomp()

template<class F >
template<class G >
concepts::DomainDecomp< F >::DomainDecomp ( G &  prebuild,
Sequence< Set< uint > >  domains,
BoundaryConditions bc = 0,
CellConditions cc = 0,
uint  spcNo = 0,
uint *  offset = 0 
)

Constructor.

Parameters
prebuildSpace pre builder
domainsAttributes of cells for each domain
bcBoundary conditions
ccCell conditions
spcNoNumber for the global indices for distinguishing between global indices on same topological entity (same for all domains)
offsetOffset of global indices

Definition at line 163 of file domainDecomp.hh.

◆ ~DomainDecomp()

template<class F >
concepts::DomainDecomp< F >::~DomainDecomp
virtual

Definition at line 249 of file domainDecomp.hh.

Member Function Documentation

◆ available()

template<class F >
bool concepts::DomainDecomp< F >::available

Returns true, if space is available, false, if it has to be rebuilt.

The space is available if the spaces of all domains are available, and the build number of the spaces have not changed, i.e. the spaces are forced to rebuild from somewhere else.

Definition at line 363 of file domainDecomp.hh.

◆ dim()

template<class F >
uint concepts::DomainDecomp< F >::dim ( ) const
inlinevirtual

Returns the dimension of the space.

Implements concepts::Space< F >.

Definition at line 373 of file domainDecomp.hh.

◆ domains()

const uint concepts::DDSpace< F >::domains
inlineinherited

Returns number of domains/spaces.

Definition at line 37 of file domainDecomp.hh.

◆ getIndices_()

template<class F >
template<class G , class H >
void concepts::DomainDecomp< F >::getIndices_ ( const G &  prebuild,
const H &  cntr,
Set< IndexRange > &  indices 
)
private

Definition at line 435 of file domainDecomp.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.

Definition at line 50 of file space.hh.

◆ indicesB()

template<class F >
const Set< IndexRange > concepts::DomainDecomp< F >::indicesB ( uint  i) const
virtual

Returns index set for dof at the boundary the i th domain.

Implements concepts::DDSpace< F::t_type >.

Definition at line 426 of file domainDecomp.hh.

◆ indicesI()

template<class F >
const Set< IndexRange > concepts::DomainDecomp< F >::indicesI ( uint  i) const
virtual

Returns index set for dof inside the i th domain.

Implements concepts::DDSpace< F::t_type >.

Definition at line 418 of file domainDecomp.hh.

◆ info()

template<class F >
std::ostream & concepts::DomainDecomp< F >::info ( std::ostream &  os) const
protectedvirtual

Returns all index sets for dof at boundary of each domain.

Reimplemented from concepts::DDSpace< F::t_type >.

Definition at line 263 of file domainDecomp.hh.

◆ lastIdx()

template<class F >
uint & concepts::DomainDecomp< F >::lastIdx
virtual

Returns last global index of the space.

Implements concepts::Subspace.

Definition at line 396 of file domainDecomp.hh.

◆ nelm()

template<class F >
uint concepts::DomainDecomp< F >::nelm ( ) const
inlinevirtual

Returns the number of elements in the space.

Implements concepts::Space< F >.

Definition at line 382 of file domainDecomp.hh.

◆ offset()

template<class F >
uint concepts::DomainDecomp< F >::offset
virtual

Returns the offset, returns 0 if space is not a subspace or first one.

Implements concepts::Subspace.

Definition at line 401 of file domainDecomp.hh.

◆ rebuild()

template<class F >
void concepts::DomainDecomp< F >::rebuild

Rebuilds the spaces.

Definition at line 285 of file domainDecomp.hh.

◆ scan()

template<class F >
DomainDecomp< F >::Scan * concepts::DomainDecomp< F >::scan ( ) const
inlinevirtual

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

Implements concepts::Space< F >.

Definition at line 389 of file domainDecomp.hh.

◆ space() [1/2]

template<class F >
F & concepts::DomainDecomp< F >::space ( uint  i)

Definition at line 412 of file domainDecomp.hh.

◆ space() [2/2]

template<class F >
const F & concepts::DomainDecomp< F >::space ( uint  i) const
virtual

Returns space belonging to i th domain.

Implements concepts::DDSpace< F::t_type >.

Definition at line 406 of file domainDecomp.hh.

Member Data Documentation

◆ attrToDomain_

template<class F >
HashMap<uint> concepts::DomainDecomp< F >::attrToDomain_
private

Mapping from attribute to domain number.

Definition at line 143 of file domainDecomp.hh.

◆ cc_

template<class F >
Sequence<CellConditions> concepts::DomainDecomp< F >::cc_
private

Cell conditions for the spaces.

Definition at line 140 of file domainDecomp.hh.

◆ domains_

uint concepts::DDSpace< F >::domains_
protectedinherited

Number of domains/spaces.

Definition at line 54 of file domainDecomp.hh.

◆ elm_

template<class F >
concepts::Joiner<Element*, 1>* concepts::DomainDecomp< F >::elm_
private

Array of the elements of all domains.

Array is used instead of linked list, because after building elements of all the domains, the whole number of elements is known.

Definition at line 150 of file domainDecomp.hh.

◆ idx_

template<class F >
uint concepts::DomainDecomp< F >::idx_
private

Definition at line 154 of file domainDecomp.hh.

◆ indicesB_

Sequence<Set<IndexRange> > concepts::DDSpace< F >::indicesB_
protectedinherited

Definition at line 56 of file domainDecomp.hh.

◆ indicesI_

Sequence<Set<IndexRange> > concepts::DDSpace< F >::indicesI_
protectedinherited

Index sets of dof inside and at the boundary for each domain/space.

Definition at line 56 of file domainDecomp.hh.

◆ nelm_

template<class F >
uint concepts::DomainDecomp< F >::nelm_
private

Number of elements in all spaces.

Definition at line 152 of file domainDecomp.hh.

◆ spaces_

template<class F >
Sequence<F*> concepts::DomainDecomp< F >::spaces_
private

Spaces belonging to domains.

Definition at line 136 of file domainDecomp.hh.

◆ spcBuild_

template<class F >
Array<uint> concepts::DomainDecomp< F >::spcBuild_
private

Array of build number of the spaces at last call of rebuild()

Definition at line 138 of file domainDecomp.hh.

◆ spcNo_

template<class F >
uint concepts::DomainDecomp< F >::spcNo_
private

Number for the global indices of the domains, for distinguishing between global indices on same topological entity.

Definition at line 134 of file domainDecomp.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