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:

[legend]
List of all members.

Constructors/Destructor

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

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.
bool GIDsAllUniquelyOwned () const
 GIDsAllUniquelyOwned: returns true if all GIDs appear on just one processor.

I/O Methods

virtual void Print (ostream &os) const
 Print method.

Private Member Functions

Epetra_BasicDirectoryoperator= (const Epetra_BasicDirectory &src)
void create_ProcListArrays ()
void addProcToList (int proc, int LID)
int Generate (const Epetra_BlockMap &Map)
 Generate: Sets up Directory tables.
const Epetra_MapDirectoryMap () const
 Returns the Epetra_Map containing the directory.

Private Attributes

Epetra_MapDirectoryMap_
int * ProcList_
int ** ProcListLists_
int * ProcListLens_
int numProcLists_
bool entryOnMultipleProcs_
int * LocalIndexList_
int * SizeList_
bool SizeIsConst_
int * AllMinGIDs_

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 throught the Epetra_BasicDirectory.

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

Definition at line 50 of file Epetra_BasicDirectory.h.


Constructor & Destructor Documentation

Epetra_BasicDirectory::Epetra_BasicDirectory const Epetra_BlockMap Map  ) 
 

Epetra_BasicDirectory constructor.

Definition at line 39 of file Epetra_BasicDirectory.cpp.

Epetra_BasicDirectory::Epetra_BasicDirectory const Epetra_BasicDirectory Directory  ) 
 

Epetra_BasicDirectory copy constructor.

Definition at line 82 of file Epetra_BasicDirectory.cpp.

Epetra_BasicDirectory::~Epetra_BasicDirectory void   )  [virtual]
 

Epetra_BasicDirectory destructor.

Definition at line 142 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:
In NumEntries - Number of Global IDs being passed in.
In GlobalEntries - List of Global IDs being passed in.
InOut Procs - 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.
InOut LocalEntries - 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.
InOut EntrySizes - 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.
In high_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 335 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 326 of file Epetra_BasicDirectory.cpp.

void Epetra_BasicDirectory::Print ostream &  os  )  const [virtual]
 

Print method.

Definition at line 627 of file Epetra_BasicDirectory.cpp.

Epetra_BasicDirectory & Epetra_BasicDirectory::operator= const Epetra_BasicDirectory src  )  [private]
 

Definition at line 652 of file Epetra_BasicDirectory.cpp.

void Epetra_BasicDirectory::create_ProcListArrays  )  [private]
 

Definition at line 167 of file Epetra_BasicDirectory.cpp.

void Epetra_BasicDirectory::addProcToList int  proc,
int  LID
[private]
 

Definition at line 180 of file Epetra_BasicDirectory.cpp.

int Epetra_BasicDirectory::Generate const Epetra_BlockMap Map  )  [private]
 

Generate: Sets up Directory tables.

Definition at line 194 of file Epetra_BasicDirectory.cpp.

const Epetra_Map& Epetra_BasicDirectory::DirectoryMap  )  const [inline, private]
 

Returns the Epetra_Map containing the directory.

Definition at line 130 of file Epetra_BasicDirectory.h.


Member Data Documentation

Epetra_Map* Epetra_BasicDirectory::DirectoryMap_ [private]
 

Definition at line 132 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::ProcList_ [private]
 

Definition at line 140 of file Epetra_BasicDirectory.h.

int** Epetra_BasicDirectory::ProcListLists_ [private]
 

Definition at line 160 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::ProcListLens_ [private]
 

Definition at line 161 of file Epetra_BasicDirectory.h.

int Epetra_BasicDirectory::numProcLists_ [private]
 

Definition at line 162 of file Epetra_BasicDirectory.h.

bool Epetra_BasicDirectory::entryOnMultipleProcs_ [private]
 

Definition at line 165 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::LocalIndexList_ [private]
 

Definition at line 167 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::SizeList_ [private]
 

Definition at line 168 of file Epetra_BasicDirectory.h.

bool Epetra_BasicDirectory::SizeIsConst_ [private]
 

Definition at line 169 of file Epetra_BasicDirectory.h.

int* Epetra_BasicDirectory::AllMinGIDs_ [private]
 

Definition at line 171 of file Epetra_BasicDirectory.h.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:38:04 2008 for Epetra Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1