EpetraExt Development
EpetraExt_PointToBlockDiagPermute Class Reference

EpetraExt_PointToBlockDiagPermute: A class for managing point-to-block-diagonal permutations. More...

#include <EpetraExt_PointToBlockDiagPermute.h>

Inheritance diagram for EpetraExt_PointToBlockDiagPermute:
Inheritance graph
[legend]

List of all members.

 EpetraExt_PointToBlockDiagPermute (const Epetra_CrsMatrix &MAT)
 @ Name Constructors

Destructor

virtual ~EpetraExt_PointToBlockDiagPermute ()
 Destructor.

Attribute set methods

virtual int SetParameters (Teuchos::ParameterList &List)
 Sets the parameter list.
virtual int SetUseTranspose (bool useTranspose)
 Set whether to use the transpose.
virtual int Compute ()
 Extracts the block-diagonal, builds maps, etc.

Mathematical functions

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.
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.
virtual double NormInf () const
 Returns the infinity norm of the global matrix - NOT IMPLEMENTED.

Attribute access functions

virtual const char * Label () const
 Return a string describing the operator.
virtual bool UseTranspose () const
 Return the current UseTranspose setting.
virtual bool HasNormInf () const
 Return true if the this object can provide an approximate Inf-norm, false otherwise.
virtual const Epetra_CommComm () const
 Return a pointer to the Epetra_Comm communicator associated with this operator.
virtual const Epetra_MapOperatorDomainMap () const
 Return the Epetra_Map object associated with the domain of this operator.
virtual const Epetra_MapOperatorRangeMap () const
 Return the Epetra_Map object associated with the range of this operator.
virtual const
EpetraExt_BlockDiagMatrix
BlockMatrix ()
 Return the block matrix. Only call this after calling Compute.
virtual Epetra_FECrsMatrixCreateFECrsMatrix ()
 Create an Epetra_FECrsMatrix from the BlockDiagMatrix.

Miscellaneous

virtual void Print (std::ostream &os) const
 Print information about this object to the given output stream.

Import/Export Methods

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.

Internal utilities

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)
 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().

Detailed Description

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.


Constructor & Destructor Documentation

EpetraExt_PointToBlockDiagPermute::EpetraExt_PointToBlockDiagPermute ( const Epetra_CrsMatrix MAT)

@ Name Constructors

Constructor

Definition at line 58 of file EpetraExt_PointToBlockDiagPermute.cpp.

EpetraExt_PointToBlockDiagPermute::~EpetraExt_PointToBlockDiagPermute ( ) [virtual]

Destructor.

Definition at line 83 of file EpetraExt_PointToBlockDiagPermute.cpp.


Member Function Documentation

int EpetraExt_PointToBlockDiagPermute::SetParameters ( Teuchos::ParameterList &  List) [virtual]

Sets the parameter list.

Definition at line 137 of file EpetraExt_PointToBlockDiagPermute.cpp.

virtual int EpetraExt_PointToBlockDiagPermute::SetUseTranspose ( bool  useTranspose) [inline, virtual]

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.

int EpetraExt_PointToBlockDiagPermute::Compute ( ) [virtual]

Extracts the block-diagonal, builds maps, etc.

Definition at line 155 of file EpetraExt_PointToBlockDiagPermute.cpp.

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:
InX - A Epetra_MultiVector of dimension NumVectors to multiply with matrix.
OutY -A Epetra_MultiVector of dimension NumVectors containing result.
Returns:
Integer error code, set to 0 if successful.

Implements Epetra_Operator.

Definition at line 162 of file EpetraExt_PointToBlockDiagPermute.cpp.

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:
InX - A Epetra_MultiVector of dimension NumVectors to solve for.
OutY -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.

Implements Epetra_Operator.

Definition at line 169 of file EpetraExt_PointToBlockDiagPermute.cpp.

virtual double EpetraExt_PointToBlockDiagPermute::NormInf ( ) const [inline, virtual]

Returns the infinity norm of the global matrix - NOT IMPLEMENTED.

Implements Epetra_Operator.

Definition at line 136 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const char* EpetraExt_PointToBlockDiagPermute::Label ( ) const [inline, virtual]

Return a string describing the operator.

Implements Epetra_Operator.

Definition at line 143 of file EpetraExt_PointToBlockDiagPermute.h.

virtual bool EpetraExt_PointToBlockDiagPermute::UseTranspose ( ) const [inline, virtual]

Return the current UseTranspose setting.

Implements Epetra_Operator.

Definition at line 146 of file EpetraExt_PointToBlockDiagPermute.h.

virtual bool EpetraExt_PointToBlockDiagPermute::HasNormInf ( ) const [inline, virtual]

Return true if the this object can provide an approximate Inf-norm, false otherwise.

Implements Epetra_Operator.

Definition at line 149 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const Epetra_Comm& EpetraExt_PointToBlockDiagPermute::Comm ( ) const [inline, virtual]

Return a pointer to the Epetra_Comm communicator associated with this operator.

Reimplemented from Epetra_DistObject.

Definition at line 152 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const Epetra_Map& EpetraExt_PointToBlockDiagPermute::OperatorDomainMap ( ) const [inline, virtual]

Return the Epetra_Map object associated with the domain of this operator.

Implements Epetra_Operator.

Definition at line 155 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const Epetra_Map& EpetraExt_PointToBlockDiagPermute::OperatorRangeMap ( ) const [inline, virtual]

Return the Epetra_Map object associated with the range of this operator.

Implements Epetra_Operator.

Definition at line 158 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const EpetraExt_BlockDiagMatrix& EpetraExt_PointToBlockDiagPermute::BlockMatrix ( ) [inline, virtual]

Return the block matrix. Only call this after calling Compute.

Definition at line 161 of file EpetraExt_PointToBlockDiagPermute.h.

Epetra_FECrsMatrix * EpetraExt_PointToBlockDiagPermute::CreateFECrsMatrix ( ) [virtual]

Create an Epetra_FECrsMatrix from the BlockDiagMatrix.

This is generally only useful if you want to do a matrix-matrix multiply.

Definition at line 602 of file EpetraExt_PointToBlockDiagPermute.cpp.

void EpetraExt_PointToBlockDiagPermute::Print ( std::ostream &  os) const [virtual]

Print information about this object to the given output stream.

Reimplemented from Epetra_DistObject.

Definition at line 221 of file EpetraExt_PointToBlockDiagPermute.cpp.

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:
InSource - Distributed object that will be imported into the "\e this" object.
InImporter - A Epetra_Import object specifying the communication required.
InCombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns:
Integer error code, set to 0 if successful.

Reimplemented from Epetra_DistObject.

Definition at line 651 of file EpetraExt_PointToBlockDiagPermute.cpp.

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:
InSource - Distributed object that will be imported into the "\e this" object.
InExporter - A Epetra_Export object specifying the communication required.
InCombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns:
Integer error code, set to 0 if successful.

Reimplemented from Epetra_DistObject.

Definition at line 656 of file EpetraExt_PointToBlockDiagPermute.cpp.

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:
InSource - Distributed object that will be exported to the "\e this" object.
InImporter - A Epetra_Import object specifying the communication required.
InCombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns:
Integer error code, set to 0 if successful.

Reimplemented from Epetra_DistObject.

Definition at line 661 of file EpetraExt_PointToBlockDiagPermute.cpp.

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:
InSource - Distributed object that will be exported to the "\e this" multivector.
InExporter - A Epetra_Export object specifying the communication required.
InCombineMode - A Epetra_CombineMode enumerated type specifying how results should be combined on the receiving processor.
Returns:
Integer error code, set to 0 if successful.

Reimplemented from Epetra_DistObject.

Definition at line 666 of file EpetraExt_PointToBlockDiagPermute.cpp.

int EpetraExt_PointToBlockDiagPermute::CheckSizes ( const Epetra_SrcDistObject Source) [protected, virtual]

Allows the source and target (this) objects to be compared for compatibility, return nonzero if not.

Implements Epetra_DistObject.

Definition at line 672 of file EpetraExt_PointToBlockDiagPermute.cpp.

int EpetraExt_PointToBlockDiagPermute::CopyAndPermute ( const Epetra_SrcDistObject Source,
int  NumSameIDs,
int  NumPermuteIDs,
int *  PermuteToLIDs,
int *  PermuteFromLIDs,
const Epetra_OffsetIndex Indexor 
) [protected, virtual]

Perform ID copies and permutations that are on processor.

Implements Epetra_DistObject.

Definition at line 678 of file EpetraExt_PointToBlockDiagPermute.cpp.

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 
) [protected, virtual]

Perform any packing or preparation required for call to DoTransfer().

Implements Epetra_DistObject.

Definition at line 689 of file EpetraExt_PointToBlockDiagPermute.cpp.

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 
) [protected, virtual]

Perform any unpacking and combining after call to DoTransfer().

Implements Epetra_DistObject.

Definition at line 703 of file EpetraExt_PointToBlockDiagPermute.cpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines