Epetra  Development
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
Functions
Epetra_Import_Util Namespace Reference

Epetra_Import_Util: The Epetra ImportUtil Wrapper Namespace. More...

Functions

int PackAndPrepareWithOwningPIDs (const Epetra_CrsMatrix &SourceMatrix, int NumExportIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &SizeOfPacket, int *Sizes, bool &VarSizes, std::vector< int > &SourcePids)
 PackAndPrepareWithOwningPIDs. More...
 
int UnpackWithOwningPIDsCount (const Epetra_CrsMatrix &SourceMatrix, int NumSameIDs, int NumRemoteIDs, const int *RemoteLIDs, int NumPermuteIDs, const int *PermuteToLIDs, const int *PermuteFromLIDs, int LenImports, char *Imports)
 UnpackWithOwningPIDsCount. More...
 
int UnpackAndCombineIntoCrsArrays (const Epetra_CrsMatrix &SourceMatrix, int NumSameIDs, int NumRemoteIDs, const int *RemoteLIDs, int NumPermuteIDs, const int *PermuteToLIDs, const int *PermuteFromLIDs, int LenImports, char *Imports, int TargetNumRows, int TargetNumNonzeros, int MyTargetPID, int *CSR_rowptr, int *CSR_colind, double *CSR_values, const std::vector< int > &SourcePids, std::vector< int > &TargetPids)
 UnpackAndCombineIntoCrsArrays. More...
 
int UnpackAndCombineIntoCrsArrays (const Epetra_CrsMatrix &SourceMatrix, int NumSameIDs, int NumRemoteIDs, const int *RemoteLIDs, int NumPermuteIDs, const int *PermuteToLIDs, const int *PermuteFromLIDs, int LenImports, char *Imports, int TargetNumRows, int TargetNumNonzeros, int MyTargetPID, int *CSR_rowptr, long long *CSR_colind, double *CSR_values, const std::vector< int > &SourcePids, std::vector< int > &TargetPids)
 UnpackAndCombineIntoCrsArrays. More...
 
int LowCommunicationMakeColMapAndReindex (int N, const int *rowptr, int *colind, const Epetra_Map &domainMap, const int *owningPIDs, bool SortGhostsAssociatedWithEachProcessor, std::vector< int > &RemotePIDs, Epetra_BlockMap &NewColMap)
 LowCommunicationMakeColMapAndReindex. More...
 
int LowCommunicationMakeColMapAndReindex (int N, const int *rowptr, int *colind_LID, long long *colind_GID, const Epetra_Map &domainMap, const int *owningPIDs, bool SortGhostsAssociatedWithEachProcessor, std::vector< int > &RemotePIDs, Epetra_BlockMap &NewColMap)
 LowCommunicationMakeColMapAndReindex. More...
 

Detailed Description

Epetra_Import_Util: The Epetra ImportUtil Wrapper Namespace.

The Epetra_Import_Util namepsace is a collection of useful functions for data import. The goal of this is to rmevoe code duplication between Epetra and EpetraExt.

Function Documentation

int Epetra_Import_Util::LowCommunicationMakeColMapAndReindex ( int  N,
const int *  rowptr,
int *  colind,
const Epetra_Map domainMap,
const int *  owningPIDs,
bool  SortGhostsAssociatedWithEachProcessor,
std::vector< int > &  RemotePIDs,
Epetra_BlockMap NewColMap 
)

LowCommunicationMakeColMapAndReindex.

If you know the owning PIDs already, you can make the colmap a lot less expensively.

Note: The owningPids vector (on input) should contain of owning PIDs for each column in the ColMap, as from Epetra_Util::GetPids, with the "-1 for local" can be used, or not, here.

Note: This method will return a std::vector of the RemotePIDs, used for construction of the importer.

Warning
This method is intended for expert developer use only, and should never be called by user code.
int Epetra_Import_Util::LowCommunicationMakeColMapAndReindex ( int  N,
const int *  rowptr,
int *  colind_LID,
long long *  colind_GID,
const Epetra_Map domainMap,
const int *  owningPIDs,
bool  SortGhostsAssociatedWithEachProcessor,
std::vector< int > &  RemotePIDs,
Epetra_BlockMap NewColMap 
)

LowCommunicationMakeColMapAndReindex.

If you know the owning PIDs already, you can make the colmap a lot less expensively.

Note: The owningPids vector (on input) should contain of owning PIDs for each column in the ColMap, as from Epetra_Util::GetPids, with the "-1 for local" can be used, or not, here.

Note: This method will return a std::vector of the RemotePIDs, used for construction of the importer.

Warning
This method is intended for expert developer use only, and should never be called by user code.
int Epetra_Import_Util::PackAndPrepareWithOwningPIDs ( const Epetra_CrsMatrix SourceMatrix,
int  NumExportIDs,
int *  ExportLIDs,
int &  LenExports,
char *&  Exports,
int &  SizeOfPacket,
int *  Sizes,
bool &  VarSizes,
std::vector< int > &  SourcePids 
)

PackAndPrepareWithOwningPIDs.

Note: The SourcePids vector should contain a list of owning PIDs for each column in the ColMap, as from Epetra_Util::GetPids, without the "-1 for local" option being used.

Warning
This method is intended for expert developer use only, and should never be called by user code.
int Epetra_Import_Util::UnpackAndCombineIntoCrsArrays ( const Epetra_CrsMatrix SourceMatrix,
int  NumSameIDs,
int  NumRemoteIDs,
const int *  RemoteLIDs,
int  NumPermuteIDs,
const int *  PermuteToLIDs,
const int *  PermuteFromLIDs,
int  LenImports,
char *  Imports,
int  TargetNumRows,
int  TargetNumNonzeros,
int  MyTargetPID,
int *  CSR_rowptr,
int *  CSR_colind,
double *  CSR_values,
const std::vector< int > &  SourcePids,
std::vector< int > &  TargetPids 
)

UnpackAndCombineIntoCrsArrays.

You should call UnpackWithOwningPIDsCount first and allocate all arrays accordingly.

Note: The SourcePids vector (on input) should contain of owning PIDs for each column in the ColMap, as from Epetra_Util::GetPids, with the "-1 for local" option being used.

Note: The TargetPids vector (on output) will contain of owning PIDs for each column in the ColMap, as from Epetra_Util::GetPids, with the "-1 for local" option being used.

Warning
This method is intended for expert developer use only, and should never be called by user code.
int Epetra_Import_Util::UnpackAndCombineIntoCrsArrays ( const Epetra_CrsMatrix SourceMatrix,
int  NumSameIDs,
int  NumRemoteIDs,
const int *  RemoteLIDs,
int  NumPermuteIDs,
const int *  PermuteToLIDs,
const int *  PermuteFromLIDs,
int  LenImports,
char *  Imports,
int  TargetNumRows,
int  TargetNumNonzeros,
int  MyTargetPID,
int *  CSR_rowptr,
long long *  CSR_colind,
double *  CSR_values,
const std::vector< int > &  SourcePids,
std::vector< int > &  TargetPids 
)

UnpackAndCombineIntoCrsArrays.

You should call UnpackWithOwningPIDsCount first and allocate all arrays accordingly.

Note: The SourcePids vector (on input) should contain of owning PIDs for each column in the ColMap, as from Epetra_Util::GetPids, with the "-1 for local" option being used.

Note: The TargetPids vector (on output) will contain of owning PIDs for each column in the ColMap, as from Epetra_Util::GetPids, with the "-1 for local" option being used.

Warning
This method is intended for expert developer use only, and should never be called by user code.
int Epetra_Import_Util::UnpackWithOwningPIDsCount ( const Epetra_CrsMatrix SourceMatrix,
int  NumSameIDs,
int  NumRemoteIDs,
const int *  RemoteLIDs,
int  NumPermuteIDs,
const int *  PermuteToLIDs,
const int *  PermuteFromLIDs,
int  LenImports,
char *  Imports 
)

UnpackWithOwningPIDsCount.

Counts the number of non-zeros in the resulting matrix. Call this before UnpackAndCombineIntoCrsArrays.

Warning
This method is intended for expert developer use only, and should never be called by user code.