EpetraExt_PointToBlockDiagPermute: A class for managing point-to-block-diagonal permutations.
More...
#include <EpetraExt_PointToBlockDiagPermute.h>
Inherits Epetra_Operator, and Epetra_DistObject.
|
virtual int | Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
| Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y. More...
|
|
virtual int | ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
| Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y. More...
|
|
virtual double | NormInf () const |
| Returns the infinity norm of the global matrix - NOT IMPLEMENTED. More...
|
|
|
virtual const char * | Label () const |
| Return a string describing the operator. More...
|
|
virtual bool | UseTranspose () const |
| Return the current UseTranspose setting. More...
|
|
virtual bool | HasNormInf () const |
| Return true if the this object can provide an approximate Inf-norm, false otherwise. More...
|
|
virtual const Epetra_Comm & | Comm () const |
| Return a pointer to the Epetra_Comm communicator associated with this operator. More...
|
|
virtual const Epetra_Map & | OperatorDomainMap () const |
| Return the Epetra_Map object associated with the domain of this operator. More...
|
|
virtual const Epetra_Map & | OperatorRangeMap () const |
| Return the Epetra_Map object associated with the range of this operator. More...
|
|
virtual const EpetraExt_BlockDiagMatrix & | BlockMatrix () |
| Return the block matrix. Only call this after calling Compute. More...
|
|
virtual Epetra_FECrsMatrix * | CreateFECrsMatrix () |
| Create an Epetra_FECrsMatrix from the BlockDiagMatrix. More...
|
|
|
virtual void | Print (std::ostream &os) const |
| Print information about this object to the given output stream. More...
|
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
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. More...
|
|
|
virtual int | CheckSizes (const Epetra_SrcDistObject &Source) |
| Allows the source and target (this) objects to be compared for compatibility, return nonzero if not. More...
|
|
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. More...
|
|
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(). More...
|
|
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(). More...
|
|
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()
◆ SetUseTranspose()
virtual int EpetraExt_PointToBlockDiagPermute::SetUseTranspose |
( |
bool |
useTranspose | ) |
|
|
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.
Definition at line 100 of file EpetraExt_PointToBlockDiagPermute.h.
◆ Compute()
int EpetraExt_PointToBlockDiagPermute::Compute |
( |
| ) |
|
|
virtual |
◆ Apply()
int EpetraExt_PointToBlockDiagPermute::Apply |
( |
const Epetra_MultiVector & |
X, |
|
|
Epetra_MultiVector & |
Y |
|
) |
| const |
|
virtual |
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
- Parameters
-
In | X - A Epetra_MultiVector of dimension NumVectors to multiply with matrix. |
Out | Y -A Epetra_MultiVector of dimension NumVectors containing result. |
- Returns
- Integer error code, set to 0 if successful.
Definition at line 162 of file EpetraExt_PointToBlockDiagPermute.cpp.
◆ ApplyInverse()
int EpetraExt_PointToBlockDiagPermute::ApplyInverse |
( |
const Epetra_MultiVector & |
X, |
|
|
Epetra_MultiVector & |
Y |
|
) |
| const |
|
virtual |
Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
- Parameters
-
In | X - A Epetra_MultiVector of dimension NumVectors to solve for. |
Out | Y -A Epetra_MultiVector of dimension NumVectors containing result. |
- Returns
- Integer error code, set to 0 if successful.
- Warning
- In order to work with AztecOO, any implementation of this method must support the case where X and Y are the same object.
Definition at line 169 of file EpetraExt_PointToBlockDiagPermute.cpp.
◆ 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()
Epetra_FECrsMatrix * EpetraExt_PointToBlockDiagPermute::CreateFECrsMatrix |
( |
| ) |
|
|
virtual |
◆ Print()
void EpetraExt_PointToBlockDiagPermute::Print |
( |
std::ostream & |
os | ) |
const |
|
virtual |
◆ Import() [1/2]
int EpetraExt_PointToBlockDiagPermute::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.
- 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]
int EpetraExt_PointToBlockDiagPermute::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.
- 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]
int EpetraExt_PointToBlockDiagPermute::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.
- 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]
int EpetraExt_PointToBlockDiagPermute::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.
- 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()
int EpetraExt_PointToBlockDiagPermute::CheckSizes |
( |
const Epetra_SrcDistObject & |
Source | ) |
|
|
protectedvirtual |
◆ CopyAndPermute()
int EpetraExt_PointToBlockDiagPermute::CopyAndPermute |
( |
const Epetra_SrcDistObject & |
Source, |
|
|
int |
NumSameIDs, |
|
|
int |
NumPermuteIDs, |
|
|
int * |
PermuteToLIDs, |
|
|
int * |
PermuteFromLIDs, |
|
|
const Epetra_OffsetIndex * |
Indexor, |
|
|
Epetra_CombineMode |
CombineMode = Zero |
|
) |
| |
|
protectedvirtual |
◆ 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()
int EpetraExt_PointToBlockDiagPermute::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 |
|
) |
| |
|
protectedvirtual |
◆ 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 >
Epetra_FECrsMatrix * EpetraExt_PointToBlockDiagPermute::TCreateFECrsMatrix |
( |
| ) |
|
|
private |
◆ 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 >
◆ 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_
◆ Matrix_
const Epetra_CrsMatrix* EpetraExt_PointToBlockDiagPermute::Matrix_ |
|
private |
◆ 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_
Epetra_BlockMap* EpetraExt_PointToBlockDiagPermute::BDMap_ |
|
private |
◆ CompatibleMap_
Epetra_Map* EpetraExt_PointToBlockDiagPermute::CompatibleMap_ |
|
private |
◆ BDMat_
◆ Importer_
Epetra_Import* EpetraExt_PointToBlockDiagPermute::Importer_ |
|
private |
◆ Exporter_
Epetra_Export* EpetraExt_PointToBlockDiagPermute::Exporter_ |
|
private |
◆ ImportVector_
Epetra_MultiVector* EpetraExt_PointToBlockDiagPermute::ImportVector_ |
|
mutableprivate |
◆ ExportVector_
Epetra_MultiVector* EpetraExt_PointToBlockDiagPermute::ExportVector_ |
|
mutableprivate |
The documentation for this class was generated from the following files: