51 bool is_multi_vec_transposed_)
52 : label(
"Epetra MultiVector Operator"),
53 multi_vec(multi_vec_),
55 is_multi_vec_transposed(is_multi_vec_transposed_),
56 useTranspose(is_multi_vec_transposed),
66 bool is_multi_vec_transposed_)
67 : label(
"Epetra MultiVector Operator"),
68 multi_vec(multi_vec_),
69 nonconst_multi_vec(multi_vec_),
70 is_multi_vec_transposed(is_multi_vec_transposed_),
71 useTranspose(is_multi_vec_transposed),
87 if (is_multi_vec_transposed)
88 useTranspose = !UseTranspose;
90 useTranspose = UseTranspose;
103 int ret = Result.Multiply(trans,
'N', 1.0, *multi_vec, Input, 0.0);
105 "Error! Stokhos::EpetraMultiVectorOperator: " <<
106 "Result.Multiply() returned " << ret <<
"!");
116 throw "EpetraMultiVectorOperator::ApplyInverse not defined!";
128 for (
int j=0;
j<multi_vec->NumVectors();
j++) {
129 tmp1.Abs(*((*multi_vec)(
j)));
130 tmp2.Update(1.0, tmp1, 1.0);
143 return const_cast<char*
>(label.c_str());
150 if (is_multi_vec_transposed)
151 return !useTranspose;
166 return domain_map->Comm();
173 return dynamic_cast<const Epetra_Map&
>(multi_vec->Map());
183 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.