Epetra Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Epetra_BasicDirectory Class Reference

Epetra_BasicDirectory: This class allows Epetra_Map objects to reference non-local elements. More...

#include <Epetra_BasicDirectory.h>

Inheritance diagram for Epetra_BasicDirectory:
Inheritance graph
[legend]

Public Member Functions

template<>
const int * AllMinGIDs () const
 
template<>
const long long * AllMinGIDs () const
 
- Public Member Functions inherited from Epetra_Directory
virtual ~Epetra_Directory ()
 Epetra_Directory destructor. More...
 

Private Member Functions

Epetra_BasicDirectoryoperator= (const Epetra_BasicDirectory &src)
 
void create_ProcListArrays ()
 
void addProcToList (int proc, int LID)
 
template<typename int_type >
int Generate (const Epetra_BlockMap &Map)
 Generate: Sets up Directory tables. More...
 
const Epetra_MapDirectoryMap () const
 Returns the Epetra_Map containing the directory. More...
 
template<typename int_type >
const int_type * AllMinGIDs () const
 
template<typename int_type >
int GetDirectoryEntries (const Epetra_BlockMap &Map, const int NumEntries, const int_type *GlobalEntries, int *Procs, int *LocalEntries, int *EntrySizes, bool high_rank_sharing_procs) const
 

Private Attributes

Epetra_MapDirectoryMap_
 
int * ProcList_
 
int ** ProcListLists_
 
int * ProcListLens_
 
int numProcLists_
 
bool entryOnMultipleProcs_
 
int * LocalIndexList_
 
int * SizeList_
 
bool SizeIsConst_
 
int * AllMinGIDs_int_
 
long long * AllMinGIDs_LL_
 

Constructors/Destructor

 Epetra_BasicDirectory (const Epetra_BlockMap &Map)
 Epetra_BasicDirectory constructor. More...
 
 Epetra_BasicDirectory (const Epetra_BasicDirectory &Directory)
 Epetra_BasicDirectory copy constructor. More...
 
virtual ~Epetra_BasicDirectory (void)
 Epetra_BasicDirectory destructor. More...
 

Query method

int GetDirectoryEntries (const Epetra_BlockMap &Map, const int NumEntries, const int *GlobalEntries, int *Procs, int *LocalEntries, int *EntrySizes, bool high_rank_sharing_procs=false) const
 GetDirectoryEntries : Returns proc and local id info for non-local map entries. More...
 
int GetDirectoryEntries (const Epetra_BlockMap &Map, const int NumEntries, const long long *GlobalEntries, int *Procs, int *LocalEntries, int *EntrySizes, bool high_rank_sharing_procs=false) const
 
bool GIDsAllUniquelyOwned () const
 GIDsAllUniquelyOwned: returns true if all GIDs appear on just one processor. More...
 

I/O Methods

virtual void Print (std::ostream &os) const
 Print method. More...
 

Detailed Description

Epetra_BasicDirectory: This class allows Epetra_Map objects to reference non-local elements.

For Epetra_BlockMap objects, a Epetra_Directory object must be created to allow referencing of non-local elements. The Epetra_BasicDirectory produces and contains a uniform linear Epetra_BlockMap and a ProcList_ allowing blocks of non-local elements to be accessed by dereferencing through the Epetra_BasicDirectory.

This class currently has one constructor, taking a Epetra_BlockMap object.

Definition at line 71 of file Epetra_BasicDirectory.h.

Constructor & Destructor Documentation

Epetra_BasicDirectory::Epetra_BasicDirectory ( const Epetra_BlockMap Map)

Epetra_BasicDirectory constructor.

Definition at line 53 of file Epetra_BasicDirectory.cpp.

Epetra_BasicDirectory::Epetra_BasicDirectory ( const Epetra_BasicDirectory Directory)

Epetra_BasicDirectory copy constructor.

Definition at line 139 of file Epetra_BasicDirectory.cpp.

Epetra_BasicDirectory::~Epetra_BasicDirectory ( void  )
virtual

Epetra_BasicDirectory destructor.

Definition at line 213 of file Epetra_BasicDirectory.cpp.

Member Function Documentation

int Epetra_BasicDirectory::GetDirectoryEntries ( const Epetra_BlockMap Map,
const int  NumEntries,
const int *  GlobalEntries,
int *  Procs,
int *  LocalEntries,
int *  EntrySizes,
bool  high_rank_sharing_procs = false 
) const
virtual

GetDirectoryEntries : Returns proc and local id info for non-local map entries.

Given a list of Global Entry IDs, this function returns the list of processor IDs and local IDs on the owning processor that correspond to the list of entries. If LocalEntries is 0, then local IDs are not returned. If EntrySizes is nonzero, it will contain a list of corresponding element sizes for the requested global entries.

Parameters
InNumEntries - Number of Global IDs being passed in.
InGlobalEntries - List of Global IDs being passed in.
InOutProcs - User allocated array of length at least NumEntries. On return contains list of processors owning the Global IDs in question. If any of the GIDs is shared by more than one processor, then the lowest-numbered processor is listed in this array, unless the optional argument 'high_rank_sharing_procs' is given as true.
InOutLocalEntries - User allocated array of length at least NumEntries. On return contains the local ID of the global on the owning processor. If LocalEntries is zero, no local ID information is returned.
InOutEntrySizes - User allocated array of length at least NumEntries. On return contains the size of the object associated with this global ID. If LocalEntries is zero, no size information is returned.
Inhigh_rank_sharing_procs Optional argument, defaults to true. If any GIDs appear on multiple processors (referred to as "sharing procs"), this specifies whether the lowest-rank proc or the highest-rank proc is chosen as the "owner".
Returns
Integer error code, set to 0 if successful.

Implements Epetra_Directory.

Definition at line 721 of file Epetra_BasicDirectory.cpp.

int Epetra_BasicDirectory::GetDirectoryEntries ( const Epetra_BlockMap Map,
const int  NumEntries,
const long long *  GlobalEntries,
int *  Procs,
int *  LocalEntries,
int *  EntrySizes,
bool  high_rank_sharing_procs = false 
) const
virtual

Implements Epetra_Directory.

Definition at line 741 of file Epetra_BasicDirectory.cpp.

bool Epetra_BasicDirectory::GIDsAllUniquelyOwned ( ) const
virtual

GIDsAllUniquelyOwned: returns true if all GIDs appear on just one processor.

If any GIDs are owned by multiple processors, returns false.

Implements Epetra_Directory.

Definition at line 409 of file Epetra_BasicDirectory.cpp.

void Epetra_BasicDirectory::Print ( std::ostream &  os) const
virtual

Print method.

Definition at line 758 of file Epetra_BasicDirectory.cpp.

Epetra_BasicDirectory & Epetra_BasicDirectory::operator= ( const Epetra_BasicDirectory src)
private

Definition at line 783 of file Epetra_BasicDirectory.cpp.

void Epetra_BasicDirectory::create_ProcListArrays ( )
private

Definition at line 244 of file Epetra_BasicDirectory.cpp.

void Epetra_BasicDirectory::addProcToList ( int  proc,
int  LID 
)
private

Definition at line 257 of file Epetra_BasicDirectory.cpp.

template<typename int_type >
int Epetra_BasicDirectory::Generate ( const Epetra_BlockMap Map)
private

Generate: Sets up Directory tables.

Definition at line 272 of file Epetra_BasicDirectory.cpp.

const Epetra_Map& Epetra_BasicDirectory::DirectoryMap ( ) const
inlineprivate

Returns the Epetra_Map containing the directory.

Definition at line 164 of file Epetra_BasicDirectory.h.

template<typename int_type >
const int_type* Epetra_BasicDirectory::AllMinGIDs ( ) const
private
template<typename int_type >
int Epetra_BasicDirectory::GetDirectoryEntries ( const Epetra_BlockMap Map,
const int  NumEntries,
const int_type *  GlobalEntries,
int *  Procs,
int *  LocalEntries,
int *  EntrySizes,
bool  high_rank_sharing_procs 
) const
private

Definition at line 419 of file Epetra_BasicDirectory.cpp.

template<>
const int* Epetra_BasicDirectory::AllMinGIDs ( ) const
inline

Definition at line 227 of file Epetra_BasicDirectory.h.

template<>
const long long* Epetra_BasicDirectory::AllMinGIDs ( ) const
inline

Definition at line 234 of file Epetra_BasicDirectory.h.

Member Data Documentation

Epetra_Map* Epetra_BasicDirectory::DirectoryMap_
private

Definition at line 164 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::ProcList_
private

Definition at line 174 of file Epetra_BasicDirectory.h.

int** Epetra_BasicDirectory::ProcListLists_
private

Definition at line 194 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::ProcListLens_
private

Definition at line 195 of file Epetra_BasicDirectory.h.

int Epetra_BasicDirectory::numProcLists_
private

Definition at line 196 of file Epetra_BasicDirectory.h.

bool Epetra_BasicDirectory::entryOnMultipleProcs_
private

Definition at line 199 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::LocalIndexList_
private

Definition at line 201 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::SizeList_
private

Definition at line 202 of file Epetra_BasicDirectory.h.

bool Epetra_BasicDirectory::SizeIsConst_
private

Definition at line 203 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::AllMinGIDs_int_
private

Definition at line 206 of file Epetra_BasicDirectory.h.

long long* Epetra_BasicDirectory::AllMinGIDs_LL_
private

Definition at line 209 of file Epetra_BasicDirectory.h.


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