EpetraExt Package Browser (Single Doxygen Collection)
Development
|
EpetraExt_BlockDiagMatrix: A class for storing distributed block matrices. More...
#include <EpetraExt_BlockDiagMatrix.h>
Public Member Functions | |
EpetraExt_BlockDiagMatrix (const Epetra_BlockMap &Map, bool zero_out=true) | |
Constructor - This map is the map of the vector this can be applied to. More... | |
EpetraExt_BlockDiagMatrix (const EpetraExt_BlockDiagMatrix &Source) | |
Copy constructor. More... | |
virtual | ~EpetraExt_BlockDiagMatrix () |
Destructor. More... | |
EpetraExt_BlockDiagMatrix & | operator= (const EpetraExt_BlockDiagMatrix &Source) |
= Operator. More... | |
double * | operator[] (int index) |
Block access function. More... | |
const double * | operator[] (int index) const |
Block access function. More... | |
Public Member Functions inherited from Epetra_SrcDistObject | |
virtual const Epetra_BlockMap & | Map () const =0 |
Public Member Functions inherited from Epetra_BLAS | |
Epetra_BLAS (void) | |
Epetra_BLAS (const Epetra_BLAS &BLAS) | |
virtual | ~Epetra_BLAS (void) |
float | ASUM (const int N, const float *X, const int INCX=1) const |
double | ASUM (const int N, const double *X, const int INCX=1) const |
float | DOT (const int N, const float *X, const float *Y, const int INCX=1, const int INCY=1) const |
double | DOT (const int N, const double *X, const double *Y, const int INCX=1, const int INCY=1) const |
float | NRM2 (const int N, const float *X, const int INCX=1) const |
double | NRM2 (const int N, const double *X, const int INCX=1) const |
void | SCAL (const int N, const float ALPHA, float *X, const int INCX=1) const |
void | SCAL (const int N, const double ALPHA, double *X, const int INCX=1) const |
void | COPY (const int N, const float *X, float *Y, const int INCX=1, const int INCY=1) const |
void | COPY (const int N, const double *X, double *Y, const int INCX=1, const int INCY=1) const |
int | IAMAX (const int N, const float *X, const int INCX=1) const |
int | IAMAX (const int N, const double *X, const int INCX=1) const |
void | AXPY (const int N, const float ALPHA, const float *X, float *Y, const int INCX=1, const int INCY=1) const |
void | AXPY (const int N, const double ALPHA, const double *X, double *Y, const int INCX=1, const int INCY=1) const |
void | GEMV (const char TRANS, const int M, const int N, const float ALPHA, const float *A, const int LDA, const float *X, const float BETA, float *Y, const int INCX=1, const int INCY=1) const |
void | GEMV (const char TRANS, const int M, const int N, const double ALPHA, const double *A, const int LDA, const double *X, const double BETA, double *Y, const int INCX=1, const int INCY=1) const |
void | GEMM (const char TRANSA, const char TRANSB, const int M, const int N, const int K, const float ALPHA, const float *A, const int LDA, const float *B, const int LDB, const float BETA, float *C, const int LDC) const |
void | GEMM (const char TRANSA, const char TRANSB, const int M, const int N, const int K, const double ALPHA, const double *A, const int LDA, const double *B, const int LDB, const double BETA, double *C, const int LDC) const |
void | SYMM (const char SIDE, const char UPLO, const int M, const int N, const float ALPHA, const float *A, const int LDA, const float *B, const int LDB, const float BETA, float *C, const int LDC) const |
void | SYMM (const char SIDE, const char UPLO, const int M, const int N, const double ALPHA, const double *A, const int LDA, const double *B, const int LDB, const double BETA, double *C, const int LDC) const |
void | TRMM (const char SIDE, const char UPLO, const char TRANSA, const char DIAG, const int M, const int N, const float ALPHA, const float *A, const int LDA, float *B, const int LDB) const |
void | TRMM (const char SIDE, const char UPLO, const char TRANSA, const char DIAG, const int M, const int N, const double ALPHA, const double *A, const int LDA, double *B, const int LDB) const |
void | SYRK (const char UPLO, const char TRANS, const int N, const int K, const float ALPHA, const float *A, const int LDA, const float BETA, float *C, const int LDC) const |
void | SYRK (const char UPLO, const char TRANS, const int N, const int K, const double ALPHA, const double *A, const int LDA, const double BETA, double *C, const int LDC) const |
Private Member Functions | |
void | Allocate () |
int | DoCopy (const EpetraExt_BlockDiagMatrix &Source) |
int | CheckSizes (const Epetra_SrcDistObject &Source) |
int | CopyAndPermute (const Epetra_SrcDistObject &Source, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor, Epetra_CombineMode CombineMode=Zero) |
int | PackAndPrepare (const Epetra_SrcDistObject &Source, int NumExportIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &SizeOfPacket, int *Sizes, bool &VarSizes, Epetra_Distributor &Distor) |
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) |
Private Attributes | |
Epetra_LAPACK | LAPACK |
Teuchos::ParameterList | List_ |
bool | HasComputed_ |
Has Computed? Needed for Inverse/Factorization modes. More... | |
int | ApplyMode_ |
Which Apply Mode to use. More... | |
Epetra_BlockMap * | DataMap_ |
Map for the data. More... | |
double * | Values_ |
Actual Data values. More... | |
int * | Pivots_ |
Pivots for factorization. More... | |
Attribute set methods | |
virtual int | SetUseTranspose (bool) |
SetUseTranspose - not implemented. More... | |
virtual int | SetParameters (Teuchos::ParameterList &List) |
SetParameters. More... | |
virtual int | Compute () |
Computes the inverse / factorization if such is set on the list. More... | |
Attribute access functions | |
virtual const char * | Label () const |
Returns a character std::string describing the operator. More... | |
virtual bool | UseTranspose () const |
Returns the current UseTranspose setting. More... | |
virtual bool | HasNormInf () const |
Returns true if the this object can provide an approximate Inf-norm, false otherwise. More... | |
virtual const Epetra_Comm & | Comm () const |
Returns a pointer to the Epetra_Comm communicator associated with this operator. More... | |
virtual const Epetra_Map & | OperatorDomainMap () const |
Returns the Epetra_Map object associated with the domain of this operator. More... | |
virtual const Epetra_Map & | OperatorRangeMap () const |
Returns the Epetra_Map object associated with the range of this operator. More... | |
virtual const Epetra_BlockMap & | BlockMap () const |
Returns the Epetra_BlockMap object associated with the range of this operator. More... | |
double * | Values () const |
Returns a pointer to the array containing the blocks. More... | |
int | BlockSize (int LID) const |
Returns the size of the given block. More... | |
int | DataSize (int LID) const |
Returns the size of the data in the given block. More... | |
bool | ConstantBlockSize () const |
Returns true if the element size is constant. More... | |
int | NumMyBlocks () const |
Returns the number of local blocks. More... | |
int | NumGlobalBlocks () const |
Returns the number of global blocks. More... | |
long long | NumGlobalBlocks64 () const |
int | NumMyUnknowns () const |
Returns the number of local unknowns. More... | |
int | NumGlobalUnknowns () const |
Returns the number of global unknowns. More... | |
long long | NumGlobalUnknowns64 () const |
int | NumData () const |
Returns the size of the total Data block. More... | |
int | GetApplyMode () |
Gets apply mode info. More... | |
virtual void | Print (std::ostream &os) const |
Print method. More... | |
Mathematical functions | |
virtual int | Apply (const Epetra_MultiVector &, Epetra_MultiVector &) 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 |
NormInf - Not Implemented. More... | |
void | PutScalar (double value) |
PutScalar function. More... | |
virtual const Epetra_BlockMap & | DataMap () const |
Returns the Epetra_BlockMap object with the distribution of underlying values. More... | |
Additional Inherited Members |
EpetraExt_BlockDiagMatrix: A class for storing distributed block matrices.
A dense-block block-diagonal matrix with inversion/factorization capabilities.
This class has a rigid map structure — the Domain and Range maps must be the same.
Definition at line 66 of file EpetraExt_BlockDiagMatrix.h.
EpetraExt_BlockDiagMatrix::EpetraExt_BlockDiagMatrix | ( | const Epetra_BlockMap & | Map, |
bool | zero_out = true |
||
) |
Constructor - This map is the map of the vector this can be applied to.
Definition at line 56 of file EpetraExt_BlockDiagMatrix.cpp.
EpetraExt_BlockDiagMatrix::EpetraExt_BlockDiagMatrix | ( | const EpetraExt_BlockDiagMatrix & | Source | ) |
Copy constructor.
Definition at line 80 of file EpetraExt_BlockDiagMatrix.cpp.
|
virtual |
Destructor.
Definition at line 71 of file EpetraExt_BlockDiagMatrix.cpp.
EpetraExt_BlockDiagMatrix & EpetraExt_BlockDiagMatrix::operator= | ( | const EpetraExt_BlockDiagMatrix & | Source | ) |
= Operator.
In | A - EpetraExt_BlockDiagMatrix to copy. |
Definition at line 150 of file EpetraExt_BlockDiagMatrix.cpp.
|
inline |
Block access function.
Definition at line 92 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Block access function.
Definition at line 97 of file EpetraExt_BlockDiagMatrix.h.
|
inlinevirtual |
SetUseTranspose - not implemented.
Implements Epetra_Operator.
Definition at line 105 of file EpetraExt_BlockDiagMatrix.h.
|
virtual |
SetParameters.
Definition at line 127 of file EpetraExt_BlockDiagMatrix.cpp.
|
virtual |
Computes the inverse / factorization if such is set on the list.
Definition at line 175 of file EpetraExt_BlockDiagMatrix.cpp.
|
inlinevirtual |
Returns a character std::string describing the operator.
Implements Epetra_Operator.
Definition at line 120 of file EpetraExt_BlockDiagMatrix.h.
|
inlinevirtual |
Returns the current UseTranspose setting.
Implements Epetra_Operator.
Definition at line 123 of file EpetraExt_BlockDiagMatrix.h.
|
inlinevirtual |
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Implements Epetra_Operator.
Definition at line 126 of file EpetraExt_BlockDiagMatrix.h.
|
inlinevirtual |
Returns a pointer to the Epetra_Comm communicator associated with this operator.
Implements Epetra_Operator.
Definition at line 129 of file EpetraExt_BlockDiagMatrix.h.
|
inlinevirtual |
Returns the Epetra_Map object associated with the domain of this operator.
Implements Epetra_Operator.
Definition at line 132 of file EpetraExt_BlockDiagMatrix.h.
|
inlinevirtual |
Returns the Epetra_Map object associated with the range of this operator.
Implements Epetra_Operator.
Definition at line 135 of file EpetraExt_BlockDiagMatrix.h.
|
inlinevirtual |
Returns the Epetra_BlockMap object associated with the range of this operator.
Definition at line 138 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Returns a pointer to the array containing the blocks.
Definition at line 141 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Returns the size of the given block.
Definition at line 144 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Returns the size of the data in the given block.
Definition at line 147 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Returns true if the element size is constant.
Definition at line 150 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Returns the number of local blocks.
Definition at line 153 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Returns the number of global blocks.
Definition at line 157 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Definition at line 159 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Returns the number of local unknowns.
Definition at line 162 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Returns the number of global unknowns.
Definition at line 166 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Definition at line 168 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Returns the size of the total Data block.
Definition at line 171 of file EpetraExt_BlockDiagMatrix.h.
|
inline |
Gets apply mode info.
Definition at line 174 of file EpetraExt_BlockDiagMatrix.h.
|
virtual |
Print method.
Reimplemented from Epetra_DistObject.
Definition at line 307 of file EpetraExt_BlockDiagMatrix.cpp.
|
inlinevirtual |
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
In | X - A Epetra_MultiVector of dimension NumVectors to multiply with matrix. |
Out | Y -A Epetra_MultiVector of dimension NumVectors containing result. |
Implements Epetra_Operator.
Definition at line 193 of file EpetraExt_BlockDiagMatrix.h.
|
virtual |
Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
In | X - A Epetra_MultiVector of dimension NumVectors to solve for. |
Out | Y -A Epetra_MultiVector of dimension NumVectors containing result. |
Implements Epetra_Operator.
Definition at line 231 of file EpetraExt_BlockDiagMatrix.cpp.
|
inlinevirtual |
NormInf - Not Implemented.
Implements Epetra_Operator.
Definition at line 210 of file EpetraExt_BlockDiagMatrix.h.
void EpetraExt_BlockDiagMatrix::PutScalar | ( | double | value | ) |
PutScalar function.
Definition at line 143 of file EpetraExt_BlockDiagMatrix.cpp.
|
inlinevirtual |
Returns the Epetra_BlockMap object with the distribution of underlying values.
Definition at line 216 of file EpetraExt_BlockDiagMatrix.h.
|
private |
Definition at line 95 of file EpetraExt_BlockDiagMatrix.cpp.
|
private |
Definition at line 155 of file EpetraExt_BlockDiagMatrix.cpp.
|
privatevirtual |
Implements Epetra_DistObject.
Definition at line 379 of file EpetraExt_BlockDiagMatrix.cpp.
|
privatevirtual |
Implements Epetra_DistObject.
Definition at line 386 of file EpetraExt_BlockDiagMatrix.cpp.
|
privatevirtual |
Implements Epetra_DistObject.
Definition at line 508 of file EpetraExt_BlockDiagMatrix.cpp.
|
privatevirtual |
Implements Epetra_DistObject.
Definition at line 580 of file EpetraExt_BlockDiagMatrix.cpp.
|
private |
Definition at line 260 of file EpetraExt_BlockDiagMatrix.h.
|
private |
Definition at line 261 of file EpetraExt_BlockDiagMatrix.h.
|
private |
Has Computed? Needed for Inverse/Factorization modes.
Definition at line 264 of file EpetraExt_BlockDiagMatrix.h.
|
private |
Which Apply Mode to use.
Definition at line 267 of file EpetraExt_BlockDiagMatrix.h.
|
private |
Map for the data.
Definition at line 270 of file EpetraExt_BlockDiagMatrix.h.
|
private |
Actual Data values.
Definition at line 273 of file EpetraExt_BlockDiagMatrix.h.
|
private |
Pivots for factorization.
Definition at line 276 of file EpetraExt_BlockDiagMatrix.h.