EpetraExt  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
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]
 EpetraExt_PointToBlockDiagPermute (const Epetra_CrsMatrix &MAT)
 @ Name Constructors More...
 

Destructor

virtual ~EpetraExt_PointToBlockDiagPermute ()
 Destructor. More...
 

Attribute set methods

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

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

Attribute access functions

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_CommComm () const
 Return a pointer to the Epetra_Comm communicator associated with this operator. More...
 
virtual const Epetra_MapOperatorDomainMap () const
 Return the Epetra_Map object associated with the domain of this operator. More...
 
virtual const Epetra_MapOperatorRangeMap () 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_FECrsMatrixCreateFECrsMatrix ()
 Create an Epetra_FECrsMatrix from the BlockDiagMatrix. More...
 

Miscellaneous

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

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

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

Additional Inherited Members

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 78 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  )
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 106 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
inlinevirtual

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

Implements Epetra_Operator.

Definition at line 142 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const char* EpetraExt_PointToBlockDiagPermute::Label ( ) const
inlinevirtual

Return a string describing the operator.

Implements Epetra_Operator.

Definition at line 149 of file EpetraExt_PointToBlockDiagPermute.h.

virtual bool EpetraExt_PointToBlockDiagPermute::UseTranspose ( ) const
inlinevirtual

Return the current UseTranspose setting.

Implements Epetra_Operator.

Definition at line 152 of file EpetraExt_PointToBlockDiagPermute.h.

virtual bool EpetraExt_PointToBlockDiagPermute::HasNormInf ( ) const
inlinevirtual

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

Implements Epetra_Operator.

Definition at line 155 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const Epetra_Comm& EpetraExt_PointToBlockDiagPermute::Comm ( ) const
inlinevirtual

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

Implements Epetra_Operator.

Definition at line 158 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const Epetra_Map& EpetraExt_PointToBlockDiagPermute::OperatorDomainMap ( ) const
inlinevirtual

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

Implements Epetra_Operator.

Definition at line 161 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const Epetra_Map& EpetraExt_PointToBlockDiagPermute::OperatorRangeMap ( ) const
inlinevirtual

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

Implements Epetra_Operator.

Definition at line 164 of file EpetraExt_PointToBlockDiagPermute.h.

virtual const EpetraExt_BlockDiagMatrix& EpetraExt_PointToBlockDiagPermute::BlockMatrix ( )
inlinevirtual

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

Definition at line 167 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.

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.

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.

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.

Definition at line 666 of file EpetraExt_PointToBlockDiagPermute.cpp.

int EpetraExt_PointToBlockDiagPermute::CheckSizes ( const Epetra_SrcDistObject Source)
protectedvirtual

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,
Epetra_CombineMode  CombineMode = Zero 
)
protectedvirtual

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 
)
protectedvirtual

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

Implements Epetra_DistObject.

Definition at line 690 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 
)
protectedvirtual

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

Implements Epetra_DistObject.

Definition at line 704 of file EpetraExt_PointToBlockDiagPermute.cpp.


The documentation for this class was generated from the following files: