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

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
concepts::DomainDecomp< F > Class Template Reference

Domain decomposition space. More...

#include <domainDecomp.hh>

Inheritance diagram for concepts::DomainDecomp< F >:
Inheritance graph
[legend]
Collaboration diagram for concepts::DomainDecomp< F >:
Collaboration graph
[legend]

List of all members.

Public Types

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

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

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

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.
Sequence< CellConditionscc_
 Cell conditions for the spaces.
concepts::Joiner< Element *, 1 > * elm_
 Array of the elements of all domains.
uint idx_
uint nelm_
 Number of elements in all spaces.
Sequence< F * > spaces_
 Spaces belonging to domains.
Array< uint > spcBuild_
 Array of build number of the spaces at last call of rebuild()
uint spcNo_
 Number for the global indices of the domains, for distinguishing between global indices on same topological entity.

Detailed Description

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

Domain decomposition space.

Parameters:
Ftype of space pre builder class

Definition at line 70 of file domainDecomp.hh.


Member Typedef Documentation

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 76 of file domainDecomp.hh.

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

Definition at line 77 of file domainDecomp.hh.

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

Constructor & Destructor Documentation

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 161 of file domainDecomp.hh.

Here is the call graph for this function:

template<class F >
concepts::DomainDecomp< F >::~DomainDecomp ( ) [virtual]

Definition at line 247 of file domainDecomp.hh.


Member Function Documentation

template<class F >
bool concepts::DomainDecomp< F >::available ( ) const

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 361 of file domainDecomp.hh.

template<class F >
uint concepts::DomainDecomp< F >::dim ( ) const [inline, virtual]

Returns the dimension of the space.

Implements concepts::Space< F >.

Definition at line 371 of file domainDecomp.hh.

const uint concepts::DDSpace< F >::domains ( ) const [inline, inherited]

Returns number of domains/spaces.

Definition at line 35 of file domainDecomp.hh.

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 433 of file domainDecomp.hh.

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 424 of file domainDecomp.hh.

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 416 of file domainDecomp.hh.

template<class F >
std::ostream & concepts::DomainDecomp< F >::info ( std::ostream &  os) const [protected, virtual]

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

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

Definition at line 261 of file domainDecomp.hh.

template<class F >
uint & concepts::DomainDecomp< F >::lastIdx ( ) [virtual]

Returns last global index of the space.

Implements concepts::Subspace.

Definition at line 394 of file domainDecomp.hh.

template<class F >
uint concepts::DomainDecomp< F >::nelm ( ) const [inline, virtual]

Returns the number of elements in the space.

Implements concepts::Space< F >.

Definition at line 380 of file domainDecomp.hh.

template<class F >
uint concepts::DomainDecomp< F >::offset ( ) const [virtual]

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

Implements concepts::Subspace.

Definition at line 399 of file domainDecomp.hh.

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

Rebuilds the spaces.

Definition at line 283 of file domainDecomp.hh.

Here is the call graph for this function:

template<class F >
DomainDecomp< F >::Scan * concepts::DomainDecomp< F >::scan ( ) const [inline, virtual]

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

Implements concepts::Space< F >.

Definition at line 387 of file domainDecomp.hh.

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

Definition at line 410 of file domainDecomp.hh.

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 404 of file domainDecomp.hh.


Member Data Documentation

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

Mapping from attribute to domain number.

Definition at line 141 of file domainDecomp.hh.

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

Cell conditions for the spaces.

Definition at line 138 of file domainDecomp.hh.

uint concepts::DDSpace< F >::domains_ [protected, inherited]

Number of domains/spaces.

Definition at line 52 of file domainDecomp.hh.

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 148 of file domainDecomp.hh.

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

Definition at line 152 of file domainDecomp.hh.

Sequence<Set<IndexRange> > concepts::DDSpace< F >::indicesB_ [protected, inherited]

Definition at line 54 of file domainDecomp.hh.

Sequence<Set<IndexRange> > concepts::DDSpace< F >::indicesI_ [protected, inherited]

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

Definition at line 54 of file domainDecomp.hh.

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

Number of elements in all spaces.

Definition at line 150 of file domainDecomp.hh.

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

Spaces belonging to domains.

Definition at line 134 of file domainDecomp.hh.

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 136 of file domainDecomp.hh.

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 132 of file domainDecomp.hh.


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

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