ThunderEgg  1.0.0
ThunderEgg::Schur::InterfaceDomain< D > Class Template Reference

Represents the Schur compliment domain of the problem. More...

#include <InterfaceDomain.h>

Public Member Functions

 InterfaceDomain (const Domain< D > &domain)
 Create a InterfaceDomain from a given Domain. More...
 
int getNumLocalInterfaces () const
 Get the number of local Interfaces on this rank. More...
 
int getNumGlobalInterfaces () const
 Get the number of Interfaces on all ranks. More...
 
const std::vector< std::shared_ptr< const Interface< D > > > getInterfaces () const
 Get the vector Interfaces objects for this rank. More...
 
const std::vector< std::shared_ptr< const PatchIfaceInfo< D > > > & getPatchIfaceInfos () const
 Get the vector PatchIfaceInfo objects for this rank. More...
 
const Domain< D > & getDomain () const
 Get the Domain object that cooresponds to this InterfaceDomain. More...
 
Vector< D - 1 > getNewVector () const
 Get a new vector for the schur compliment system. More...
 

Detailed Description

template<int D>
class ThunderEgg::Schur::InterfaceDomain< D >

Represents the Schur compliment domain of the problem.

This class mainly manages a set of interfaces that makes up the Schur compliment system. It is responsible for setting up the indexing of the interfaces, which is used in the rest of the ThunderEgg library.

This class will set a global index for each interface, and will provide three sets of local indexes.

The patch_iface set of indexes are the local indexes for a vector of interfaces that line up with each piinfo object.

The row set of indexes are for a row distributed parallel matrix (where a rank contains the entire row of the matrix)

The column set of indexes are for a column distributed parallel matrix.

Template Parameters
Dthe number of Cartesian dimensions

Constructor & Destructor Documentation

◆ InterfaceDomain()

template<int D>
ThunderEgg::Schur::InterfaceDomain< D >::InterfaceDomain ( const Domain< D > &  domain)
inlineexplicit

Create a InterfaceDomain from a given Domain.

Parameters
domainthe Domain

Member Function Documentation

◆ getDomain()

template<int D>
const Domain<D>& ThunderEgg::Schur::InterfaceDomain< D >::getDomain ( ) const
inline

Get the Domain object that cooresponds to this InterfaceDomain.

Returns
std::shared_ptr<Domain<D>> the Domain object

◆ getInterfaces()

template<int D>
const std::vector<std::shared_ptr<const Interface<D> > > ThunderEgg::Schur::InterfaceDomain< D >::getInterfaces ( ) const
inline

Get the vector Interfaces objects for this rank.

The location of each Interface in the vector will coorespond to the Interafce's local index

Returns
const std::vector<std::shared_ptr<const Interface<D>>> the vector of Interface objects

◆ getNewVector()

template<int D>
Vector<D - 1> ThunderEgg::Schur::InterfaceDomain< D >::getNewVector ( ) const
inline

Get a new vector for the schur compliment system.

Returns
Vector<D - 1> the vector

◆ getNumGlobalInterfaces()

template<int D>
int ThunderEgg::Schur::InterfaceDomain< D >::getNumGlobalInterfaces ( ) const
inline

Get the number of Interfaces on all ranks.

Returns
int the number of Interfaces on all ranks

◆ getNumLocalInterfaces()

template<int D>
int ThunderEgg::Schur::InterfaceDomain< D >::getNumLocalInterfaces ( ) const
inline

Get the number of local Interfaces on this rank.

Returns
int the number of local Interfaces

◆ getPatchIfaceInfos()

template<int D>
const std::vector<std::shared_ptr<const PatchIfaceInfo<D> > >& ThunderEgg::Schur::InterfaceDomain< D >::getPatchIfaceInfos ( ) const
inline

Get the vector PatchIfaceInfo objects for this rank.

The location of each PatchIfaceInfo in the vector will coorespond to the patch's local index

Returns
const std::vector<std::shared_ptr<const PatchIfaceInfo<D>>>& the vector of PatchIfaceInfo objects

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