EpetraExt_PointToBlockDiagPermute: A class for managing point-to-block-diagonal permutations.
More...
#include <EpetraExt_PointToBlockDiagPermute.h>
|
| EpetraExt_PointToBlockDiagPermute (const Epetra_CrsMatrix &MAT) |
| @ Name Constructors
|
|
virtual | ~Epetra_Operator () |
|
virtual int | SetUseTranspose (bool UseTranspose)=0 |
|
virtual int | Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0 |
|
virtual int | ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const=0 |
|
virtual double | NormInf () const=0 |
|
virtual const char * | Label () const=0 |
|
virtual bool | UseTranspose () const=0 |
|
virtual bool | HasNormInf () const=0 |
|
virtual const Epetra_Comm & | Comm () const=0 |
|
virtual const Epetra_Map & | OperatorDomainMap () const=0 |
|
virtual const Epetra_Map & | OperatorRangeMap () const=0 |
|
| Epetra_DistObject (const Epetra_BlockMap &Map) |
|
| Epetra_DistObject (const Epetra_BlockMap &Map, const char *const Label) |
|
| Epetra_DistObject (const Epetra_DistObject &Source) |
|
virtual | ~Epetra_DistObject () |
|
int | Import (const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
|
int | Import (const Epetra_SrcDistObject &A, const Epetra_Export &Exporter, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
|
int | Export (const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
|
int | Export (const Epetra_SrcDistObject &A, const Epetra_Export &Exporter, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
|
const Epetra_BlockMap & | Map () const |
|
const Epetra_Comm & | Comm () const |
|
bool | DistributedGlobal () const |
|
virtual void | Print (std::ostream &os) const |
|
virtual void | Print (std::ostream &os) const |
|
virtual int | ReportError (const std::string Message, int ErrorCode) const |
|
| Epetra_Object (int TracebackModeIn=-1, bool set_label=true) |
|
| Epetra_Object (const char *const Label, int TracebackModeIn=-1) |
|
| Epetra_Object (const Epetra_Object &Object) |
|
virtual | ~Epetra_Object () |
|
virtual void | SetLabel (const char *const Label) |
|
virtual const char * | Label () const |
|
virtual | ~Epetra_SrcDistObject () |
|
virtual const Epetra_BlockMap & | Map () const=0 |
|
|
Teuchos::ParameterList | List_ |
|
const Epetra_CrsMatrix * | Matrix_ |
|
bool | PurelyLocalMode_ |
|
bool | ContiguousBlockMode_ |
|
int | ContiguousBlockSize_ |
|
int | NumBlocks_ |
|
int * | Blockstart_ |
|
int * | Blockids_int_ |
|
long long * | Blockids_LL_ |
|
Epetra_BlockMap * | BDMap_ |
|
Epetra_Map * | CompatibleMap_ |
|
EpetraExt_BlockDiagMatrix * | BDMat_ |
|
Epetra_Import * | Importer_ |
|
Epetra_Export * | Exporter_ |
|
Epetra_MultiVector * | ImportVector_ |
|
Epetra_MultiVector * | ExportVector_ |
|
virtual int | CheckSizes (const Epetra_SrcDistObject &Source) |
| Allows the source and target (this) objects to be compared for compatibility, return nonzero if not.
|
|
virtual int | CopyAndPermute (const Epetra_SrcDistObject &Source, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor, Epetra_CombineMode CombineMode=Zero) |
| Perform ID copies and permutations that are on processor.
|
|
virtual int | PackAndPrepare (const Epetra_SrcDistObject &Source, int NumExportIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &SizeOfPacket, int *Sizes, bool &VarSizes, Epetra_Distributor &Distor) |
| Perform any packing or preparation required for call to DoTransfer().
|
|
virtual int | UnpackAndCombine (const Epetra_SrcDistObject &Source, int NumImportIDs, int *ImportLIDs, int LenImports, char *Imports, int &SizeOfPacket, Epetra_Distributor &Distor, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor) |
| Perform any unpacking and combining after call to DoTransfer().
|
|
int | ExtractBlockDiagonal () |
| Pulls the block diagonal of the matrix and then builds the BDMat_.
|
|
int | SetupContiguousMode () |
| Setup/Cleanup for Contiguous Mode.
|
|
int | CleanupContiguousMode () |
|
void | UpdateImportVector (int NumVectors) const |
|
void | UpdateExportVector (int NumVectors) const |
|
template<typename int_type > |
Epetra_FECrsMatrix * | TCreateFECrsMatrix () |
|
template<typename int_type > |
int | TSetupContiguousMode () |
|
template<typename int_type > |
int | TExtractBlockDiagonal () |
|
template<typename int_type > |
int | TSetParameters (Teuchos::ParameterList &List) |
|
template<typename int_type > |
const int_type * | Blockids_const_ptr () const |
|
template<typename int_type > |
int_type *& | Blockids_ref () |
|
|
virtual int | SetParameters (Teuchos::ParameterList &List) |
| Sets the parameter list.
|
|
virtual int | SetUseTranspose (bool) |
| Set whether to use the transpose.
|
|
virtual int | Compute () |
| Extracts the block-diagonal, builds maps, etc.
|
|
|
virtual void | Print (std::ostream &os) const |
| Print information about this object to the given output stream.
|
|
|
int | Import (const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
| Imports an Epetra_DistObject using the Epetra_Import object.
|
|
int | Import (const Epetra_SrcDistObject &A, const Epetra_Export &Exporter, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
| Imports an Epetra_DistObject using the Epetra_Export object.
|
|
int | Export (const Epetra_SrcDistObject &A, const Epetra_Import &Importer, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
| Exports an Epetra_DistObject using the Epetra_Import object.
|
|
int | Export (const Epetra_SrcDistObject &A, const Epetra_Export &Exporter, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor=0) |
| Exports an Epetra_DistObject using the Epetra_Export object.
|
|
|
static void | SetTracebackMode (int TracebackModeValue) |
|
static int | GetTracebackMode () |
|
static std::ostream & | GetTracebackStream () |
|
static int | TracebackMode |
|
virtual int | CheckSizes (const Epetra_SrcDistObject &Source)=0 |
|
virtual int | CopyAndPermute (const Epetra_SrcDistObject &Source, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor, Epetra_CombineMode CombineMode=Zero)=0 |
|
virtual int | PackAndPrepare (const Epetra_SrcDistObject &Source, int NumExportIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &SizeOfPacket, int *Sizes, bool &VarSizes, Epetra_Distributor &Distor)=0 |
|
virtual int | UnpackAndCombine (const Epetra_SrcDistObject &Source, int NumImportIDs, int *ImportLIDs, int LenImports, char *Imports, int &SizeOfPacket, Epetra_Distributor &Distor, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor)=0 |
|
virtual int | DoTransfer (const Epetra_SrcDistObject &A, Epetra_CombineMode CombineMode, int NumSameIDs, int NumPermuteIDs, int NumRemoteIDs, int NumExportIDs, int *PermuteToLIDs, int *PermuteFromLIDs, int *RemoteLIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &LenImports, char *&Imports, Epetra_Distributor &Distor, bool DoReverse, const Epetra_OffsetIndex *Indexor) |
|
std::string | toString (const int &x) const |
|
std::string | toString (const long long &x) const |
|
std::string | toString (const double &x) const |
|
Epetra_BlockMap | Map_ |
|
const Epetra_Comm * | Comm_ |
|
char * | Exports_ |
|
char * | Imports_ |
|
int | LenExports_ |
|
int | LenImports_ |
|
int * | Sizes_ |
|
EpetraExt_PointToBlockDiagPermute: A class for managing point-to-block-diagonal permutations.
Manages point-to-block-diagonal permutations (and vice versa) as well as service routines for extracting block diagonals from matrices.
Definition at line 72 of file EpetraExt_PointToBlockDiagPermute.h.
◆ EpetraExt_PointToBlockDiagPermute()
EpetraExt_PointToBlockDiagPermute::EpetraExt_PointToBlockDiagPermute |
( |
const Epetra_CrsMatrix & |
MAT | ) |
|
◆ ~EpetraExt_PointToBlockDiagPermute()
EpetraExt_PointToBlockDiagPermute::~EpetraExt_PointToBlockDiagPermute |
( |
| ) |
|
|
virtual |
◆ SetParameters()
int EpetraExt_PointToBlockDiagPermute::SetParameters |
( |
Teuchos::ParameterList & |
List | ) |
|
|
virtual |
◆ SetUseTranspose()
virtual int EpetraExt_PointToBlockDiagPermute::SetUseTranspose |
( |
bool |
| ) |
|
|
inlinevirtual |
Set whether to use the transpose.
- Returns
- 0 if this class can change its transpose state, else nonzero.
This class does NOT know how to apply its transpose, so this method always returns an error code.
Implements Epetra_Operator.
Definition at line 100 of file EpetraExt_PointToBlockDiagPermute.h.
◆ Compute()
int EpetraExt_PointToBlockDiagPermute::Compute |
( |
| ) |
|
|
virtual |
◆ Apply()
◆ ApplyInverse()
◆ NormInf()
virtual double EpetraExt_PointToBlockDiagPermute::NormInf |
( |
| ) |
const |
|
inlinevirtual |
◆ Label()
virtual const char * EpetraExt_PointToBlockDiagPermute::Label |
( |
| ) |
const |
|
inlinevirtual |
◆ UseTranspose()
virtual bool EpetraExt_PointToBlockDiagPermute::UseTranspose |
( |
| ) |
const |
|
inlinevirtual |
◆ HasNormInf()
virtual bool EpetraExt_PointToBlockDiagPermute::HasNormInf |
( |
| ) |
const |
|
inlinevirtual |
◆ Comm()
virtual const Epetra_Comm & EpetraExt_PointToBlockDiagPermute::Comm |
( |
| ) |
const |
|
inlinevirtual |
◆ OperatorDomainMap()
virtual const Epetra_Map & EpetraExt_PointToBlockDiagPermute::OperatorDomainMap |
( |
| ) |
const |
|
inlinevirtual |
◆ OperatorRangeMap()
virtual const Epetra_Map & EpetraExt_PointToBlockDiagPermute::OperatorRangeMap |
( |
| ) |
const |
|
inlinevirtual |
◆ BlockMatrix()
◆ CreateFECrsMatrix()
◆ Print()
void EpetraExt_PointToBlockDiagPermute::Print |
( |
std::ostream & |
os | ) |
const |
|
virtual |
◆ Import() [1/2]
Imports an Epetra_DistObject using the Epetra_Import object.
- Parameters
-
In | Source - Distributed object that will be imported into the "\e this" object. |
In | Importer - A Epetra_Import object specifying the communication required. |
In | CombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor. |
- Returns
- Integer error code, set to 0 if successful.
Definition at line 651 of file EpetraExt_PointToBlockDiagPermute.cpp.
◆ Import() [2/2]
Imports an Epetra_DistObject using the Epetra_Export object.
- Parameters
-
In | Source - Distributed object that will be imported into the "\e this" object. |
In | Exporter - A Epetra_Export object specifying the communication required. |
In | CombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor. |
- Returns
- Integer error code, set to 0 if successful.
Definition at line 656 of file EpetraExt_PointToBlockDiagPermute.cpp.
◆ Export() [1/2]
Exports an Epetra_DistObject using the Epetra_Import object.
- Parameters
-
In | Source - Distributed object that will be exported to the "\e this" object. |
In | Importer - A Epetra_Import object specifying the communication required. |
In | CombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor. |
- Returns
- Integer error code, set to 0 if successful.
Definition at line 661 of file EpetraExt_PointToBlockDiagPermute.cpp.
◆ Export() [2/2]
Exports an Epetra_DistObject using the Epetra_Export object.
- Parameters
-
In | Source - Distributed object that will be exported to the "\e this" multivector. |
In | Exporter - A Epetra_Export object specifying the communication required. |
In | CombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor. |
- Returns
- Integer error code, set to 0 if successful.
Definition at line 666 of file EpetraExt_PointToBlockDiagPermute.cpp.
◆ CheckSizes()
◆ CopyAndPermute()
◆ PackAndPrepare()
int EpetraExt_PointToBlockDiagPermute::PackAndPrepare |
( |
const Epetra_SrcDistObject & |
Source, |
|
|
int |
NumExportIDs, |
|
|
int * |
ExportLIDs, |
|
|
int & |
LenExports, |
|
|
char *& |
Exports, |
|
|
int & |
SizeOfPacket, |
|
|
int * |
Sizes, |
|
|
bool & |
VarSizes, |
|
|
Epetra_Distributor & |
Distor |
|
) |
| |
|
protectedvirtual |
◆ UnpackAndCombine()
◆ ExtractBlockDiagonal()
int EpetraExt_PointToBlockDiagPermute::ExtractBlockDiagonal |
( |
| ) |
|
|
private |
◆ SetupContiguousMode()
int EpetraExt_PointToBlockDiagPermute::SetupContiguousMode |
( |
| ) |
|
|
private |
◆ CleanupContiguousMode()
int EpetraExt_PointToBlockDiagPermute::CleanupContiguousMode |
( |
| ) |
|
|
private |
◆ UpdateImportVector()
void EpetraExt_PointToBlockDiagPermute::UpdateImportVector |
( |
int |
NumVectors | ) |
const |
|
private |
◆ UpdateExportVector()
void EpetraExt_PointToBlockDiagPermute::UpdateExportVector |
( |
int |
NumVectors | ) |
const |
|
private |
◆ TCreateFECrsMatrix()
template<typename int_type >
◆ TSetupContiguousMode()
template<typename int_type >
int EpetraExt_PointToBlockDiagPermute::TSetupContiguousMode |
|
private |
◆ TExtractBlockDiagonal()
template<typename int_type >
int EpetraExt_PointToBlockDiagPermute::TExtractBlockDiagonal |
|
private |
◆ TSetParameters()
template<typename int_type >
int EpetraExt_PointToBlockDiagPermute::TSetParameters |
( |
Teuchos::ParameterList & |
List | ) |
|
|
private |
◆ Blockids_const_ptr() [1/3]
template<typename int_type >
const int_type * EpetraExt_PointToBlockDiagPermute::Blockids_const_ptr |
( |
| ) |
const |
|
private |
◆ Blockids_ref() [1/3]
template<typename int_type >
int_type *& EpetraExt_PointToBlockDiagPermute::Blockids_ref |
( |
| ) |
|
|
private |
◆ Blockids_const_ptr() [2/3]
template<>
const int * EpetraExt_PointToBlockDiagPermute::Blockids_const_ptr |
( |
| ) |
const |
|
inlineprivate |
◆ Blockids_ref() [2/3]
template<>
int *& EpetraExt_PointToBlockDiagPermute::Blockids_ref |
( |
| ) |
|
|
inlineprivate |
◆ Blockids_const_ptr() [3/3]
template<>
const long long * EpetraExt_PointToBlockDiagPermute::Blockids_const_ptr |
( |
| ) |
const |
|
inlineprivate |
◆ Blockids_ref() [3/3]
template<>
long long *& EpetraExt_PointToBlockDiagPermute::Blockids_ref |
( |
| ) |
|
|
inlineprivate |
◆ List_
Teuchos::ParameterList EpetraExt_PointToBlockDiagPermute::List_ |
|
private |
◆ Matrix_
◆ PurelyLocalMode_
bool EpetraExt_PointToBlockDiagPermute::PurelyLocalMode_ |
|
private |
◆ ContiguousBlockMode_
bool EpetraExt_PointToBlockDiagPermute::ContiguousBlockMode_ |
|
private |
◆ ContiguousBlockSize_
int EpetraExt_PointToBlockDiagPermute::ContiguousBlockSize_ |
|
private |
◆ NumBlocks_
int EpetraExt_PointToBlockDiagPermute::NumBlocks_ |
|
private |
◆ Blockstart_
int* EpetraExt_PointToBlockDiagPermute::Blockstart_ |
|
private |
◆ Blockids_int_
int* EpetraExt_PointToBlockDiagPermute::Blockids_int_ |
|
private |
◆ Blockids_LL_
long long* EpetraExt_PointToBlockDiagPermute::Blockids_LL_ |
|
private |
◆ BDMap_
◆ CompatibleMap_
Epetra_Map* EpetraExt_PointToBlockDiagPermute::CompatibleMap_ |
|
private |
◆ BDMat_
◆ Importer_
◆ Exporter_
◆ ImportVector_
◆ ExportVector_
The documentation for this class was generated from the following files: