44#include "Thyra_AddedLinearOpBase.hpp"
45#include "Thyra_ScaledAdjointLinearOpBase.hpp"
49#include "Thyra_DiagonalLinearOpBase.hpp"
50#include "Thyra_DefaultDiagonalLinearOp.hpp"
51#include "Thyra_IdentityLinearOpBase.hpp"
52#include "Thyra_VectorStdOps.hpp"
53#include "Epetra_Map.h"
54#include "Epetra_LocalMap.h"
55#include "Epetra_SerialComm.h"
56#include "Epetra_Vector.h"
57#include "Epetra_CrsMatrix.h"
59#include "EpetraExt_ConfigDefs.h"
60#include "EpetraExt_MatrixMatrix.h"
61#include "EpetraExt_MMHelpers.h"
62#include "EpetraExt_Transpose_RowMatrix.h"
65#include "EpetraExt_RowMatrixOut.h"
85 return nonconstEpetraLinearOp();
94 using EpetraExt::MatrixMatrix;
96 using Teuchos::rcp_dynamic_cast;
135 A = Thyra::diagonal(d);
140 B = Thyra::diagonal(d);
153 if(
dA==Teuchos::null)
155 if(
dB==Teuchos::null)
176 if(epetra_op==Teuchos::null)
186 else if((
dA!=Teuchos::null &&
epetra_B!=Teuchos::null) ||
187 (
dB!=Teuchos::null &&
epetra_A!=Teuchos::null)) {
203 if(epetra_op==Teuchos::null)
217 "Thyra::EpetraExtractAddTransformer::transform ExtractDiagonalCopy failed!");;
220 "Thyra::EpetraExtractAddTransformer::transform ReplaceDiagonalValues failed!");;
227 "Your case of adding Epetra operators is not yet implemented! Contact the Thyra developers.");
#define TEUCHOS_UNREACHABLE_RETURN(dummyReturnVal)
Concrete LinearOpBase adapter subclass for Epetra_Operator object.
RCP< Epetra_Vector > get_Epetra_Vector(const Epetra_Map &map, const RCP< VectorBase< double > > &v)
Get a non-const Epetra_Vector view from a non-const VectorBase object if possible.
#define TEUCHOS_ASSERT(assertion_test)
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
#define TEUCHOS_ASSERT_EQUALITY(val1, val2)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
T_To & dyn_cast(T_From &from)
Teuchos::RCP< Epetra_Operator > get_Epetra_Operator(LinearOpBase< double > &op)
Full specialization for Scalar=double.