42#ifndef EPETRAEXT_BLOCKDIAGMATRIX_H
43#define EPETRAEXT_BLOCKDIAGMATRIX_H
45#include "Epetra_BLAS.h"
46#include "Epetra_LAPACK.h"
47#include "Epetra_DistObject.h"
48#include "Epetra_BlockMap.h"
49#include "Epetra_Map.h"
50#include "Epetra_Operator.h"
51#include "Teuchos_ParameterList.hpp"
120 virtual const char *
Label()
const{
return "EpetraExt::BlockDiagMatrix";}
141 double*
Values()
const {
return(Values_);}
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,
261 Teuchos::ParameterList List_;
EpetraExt_BlockDiagMatrix: A class for storing distributed block matrices.
virtual const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this operator.
double * Values() const
Returns a pointer to the array containing the blocks.
double * operator[](int index)
Block access function.
virtual int SetParameters(Teuchos::ParameterList &List)
SetParameters.
int NumGlobalBlocks() const
Returns the number of global blocks.
int NumGlobalUnknowns() const
Returns the number of global unknowns.
int NumMyUnknowns() const
Returns the number of local unknowns.
virtual bool UseTranspose() const
Returns the current UseTranspose setting.
virtual int Compute()
Computes the inverse / factorization if such is set on the list.
bool ConstantBlockSize() const
Returns true if the element size is constant.
int BlockSize(int LID) const
Returns the size of the given block.
int GetApplyMode()
Gets apply mode info.
virtual bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
virtual int SetUseTranspose(bool)
SetUseTranspose - not implemented.
long long NumGlobalUnknowns64() const
virtual void Print(std::ostream &os) const
Print method.
EpetraExt_BlockDiagMatrix & operator=(const EpetraExt_BlockDiagMatrix &Source)
= Operator.
virtual double NormInf() const
NormInf - Not Implemented.
virtual const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this operator.
long long NumGlobalBlocks64() const
int DataSize(int LID) const
Returns the size of the data in the given block.
virtual ~EpetraExt_BlockDiagMatrix()
Destructor.
int NumData() const
Returns the size of the total Data block.
virtual const Epetra_BlockMap & BlockMap() const
Returns the Epetra_BlockMap object associated with the range of this operator.
virtual const Epetra_Comm & Comm() const
Returns a pointer to the Epetra_Comm communicator associated with this operator.
void PutScalar(double value)
PutScalar function.
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 const char * Label() const
Returns a character std::string describing the operator.
virtual const Epetra_BlockMap & DataMap() const
Returns the Epetra_BlockMap object with the distribution of underlying values.
int NumMyBlocks() const
Returns the number of local blocks.
virtual int Apply(const Epetra_MultiVector &, Epetra_MultiVector &) const
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
const Epetra_Comm & Comm() const
bool ConstantElementSize() const
int FirstPointInElement(int LID) const
const Epetra_BlockMap & Map() const