17 bool is_multi_vec_transposed_)
18 : label(
"Epetra MultiVector Operator"),
19 multi_vec(multi_vec_),
21 is_multi_vec_transposed(is_multi_vec_transposed_),
22 useTranspose(is_multi_vec_transposed),
32 bool is_multi_vec_transposed_)
33 : label(
"Epetra MultiVector Operator"),
34 multi_vec(multi_vec_),
35 nonconst_multi_vec(multi_vec_),
36 is_multi_vec_transposed(is_multi_vec_transposed_),
37 useTranspose(is_multi_vec_transposed),
53 if (is_multi_vec_transposed)
54 useTranspose = !UseTranspose;
56 useTranspose = UseTranspose;
69 int ret = Result.Multiply(trans,
'N', 1.0, *multi_vec, Input, 0.0);
71 "Error! Stokhos::EpetraMultiVectorOperator: " <<
72 "Result.Multiply() returned " << ret <<
"!");
82 throw "EpetraMultiVectorOperator::ApplyInverse not defined!";
94 for (
int j=0;
j<multi_vec->NumVectors();
j++) {
95 tmp1.Abs(*((*multi_vec)(
j)));
96 tmp2.Update(1.0, tmp1, 1.0);
109 return const_cast<char*
>(label.c_str());
116 if (is_multi_vec_transposed)
117 return !useTranspose;
132 return domain_map->Comm();
139 return dynamic_cast<const Epetra_Map&
>(multi_vec->Map());
149 return dynamic_cast<const Epetra_Map&
>(multi_vec->Map());
virtual int SetUseTranspose(bool UseTranspose)
Set to true if the transpose of the operator is requested.
Teuchos::RCP< Epetra_Map > domain_map
Domain map ( = number of columns of multi_vec)
virtual const Epetra_Map & OperatorRangeMap() const
Returns the Epetra_Map object associated with the range of this matrix operator.
virtual bool HasNormInf() const
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
virtual bool UseTranspose() const
Returns the current UseTranspose setting.
EpetraMultiVectorOperator(const Teuchos::RCP< const Epetra_MultiVector > &multi_vec, bool is_multi_vec_transposed)
Constructor.
virtual ~EpetraMultiVectorOperator()
Destructor.
virtual double NormInf() const
Returns an approximate infinity norm of the operator matrix.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
virtual const Epetra_Map & OperatorDomainMap() const
Returns the Epetra_Map object associated with the domain of this matrix operator. ...
virtual const Epetra_BlockMap & Map() const =0
virtual const char * Label() const
Returns a character string describing the operator.
const Epetra_Comm & Comm() const
virtual int ApplyInverse(const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
Returns the result of the inverse of the operator applied to a Epetra_MultiVector Input in Result as ...
Teuchos::RCP< const Epetra_MultiVector > multi_vec
Multi-vector.
virtual int Apply(const Epetra_MultiVector &Input, Epetra_MultiVector &Result) const
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector Input in Result as described ...
virtual const Epetra_Comm & Comm() const
Returns a reference to the Epetra_Comm communicator associated with this operator.