42 #ifndef EPETRAEXT_BLOCKDIAGMATRIX_H 43 #define EPETRAEXT_BLOCKDIAGMATRIX_H 120 virtual const char *
Label()
const{
return "EpetraExt::BlockDiagMatrix";}
156 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES 165 #ifndef EPETRA_NO_32BIT_GLOBAL_INDICES 177 virtual void Print(std::ostream & os)
const;
234 int * PermuteFromLIDs,
int NumMyUnknowns() const
Returns the number of local unknowns.
int NumGlobalBlocks() const
Returns the number of global blocks.
const Epetra_BlockMap & Map() const
int BlockSize(int LID) const
Returns the size of the given block.
int NumMyBlocks() const
Returns the number of local blocks.
int * Pivots_
Pivots for factorization.
bool ConstantElementSize() const
virtual const char * Label() const
Returns a character std::string describing the operator.
virtual const Epetra_Comm & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
int PackAndPrepare(const Epetra_SrcDistObject &Source, int NumExportIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &SizeOfPacket, int *Sizes, bool &VarSizes, Epetra_Distributor &Distor)
int NumGlobalUnknowns() const
Returns the number of global unknowns.
Epetra_BlockMap * DataMap_
Map for the data.
virtual bool UseTranspose() const
Returns the current UseTranspose setting.
virtual const Epetra_BlockMap & DataMap() const
Returns the Epetra_BlockMap object with the distribution of underlying values.
virtual bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
int FirstPointInElement(int LID) const
EpetraExt_BlockDiagMatrix & operator=(const EpetraExt_BlockDiagMatrix &Source)
= Operator.
virtual const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
virtual ~EpetraExt_BlockDiagMatrix()
Destructor.
double * operator[](int index)
Block access function.
bool ConstantBlockSize() const
Returns true if the element size is constant.
EpetraExt_BlockDiagMatrix: A class for storing distributed block matrices.
int DataSize(int LID) const
Returns the size of the data in the given block.
EpetraExt_BlockDiagMatrix(const Epetra_BlockMap &Map, bool zero_out=true)
Constructor - This map is the map of the vector this can be applied to.
long long NumGlobalUnknowns64() const
virtual int SetUseTranspose(bool)
SetUseTranspose - not implemented.
int CopyAndPermute(const Epetra_SrcDistObject &Source, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor, Epetra_CombineMode CombineMode=Zero)
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)
virtual int Compute()
Computes the inverse / factorization if such is set on the list.
const Epetra_Comm & Comm() const
virtual void Print(std::ostream &os) const
Print method.
virtual int SetParameters(Teuchos::ParameterList &List)
SetParameters.
double * Values_
Actual Data values.
virtual const Epetra_BlockMap & BlockMap() const
Returns the Epetra_BlockMap object associated with the range of this operator.
Teuchos::ParameterList List_
virtual const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
virtual double NormInf() const
NormInf - Not Implemented.
bool HasComputed_
Has Computed? Needed for Inverse/Factorization modes.
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.
int DoCopy(const EpetraExt_BlockDiagMatrix &Source)
double * Values() const
Returns a pointer to the array containing the blocks.
int ApplyMode_
Which Apply Mode to use.
int NumData() const
Returns the size of the total Data block.
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...
int GetApplyMode()
Gets apply mode info.
long long NumGlobalBlocks64() const
int CheckSizes(const Epetra_SrcDistObject &Source)
void PutScalar(double value)
PutScalar function.