45 #include "Thyra_LinearOpTester.hpp" 46 #include "Thyra_DefaultBlockedLinearOp.hpp" 47 #include "Thyra_MultiVectorBase.hpp" 48 #include "Thyra_MultiVectorStdOps.hpp" 51 #include "Teuchos_UnitTestHarness.hpp" 65 using Teuchos::describe;
70 RCP<const LinearOpBase<double> > A00 = epetraLinearOp(getEpetraMatrix(scale*4,scale*4,0));
71 RCP<const LinearOpBase<double> > A01 = epetraLinearOp(getEpetraMatrix(scale*4,scale*3,1));
72 RCP<const LinearOpBase<double> > A02 = epetraLinearOp(getEpetraMatrix(scale*4,scale*2,2));
73 RCP<const LinearOpBase<double> > A10 = epetraLinearOp(getEpetraMatrix(scale*3,scale*4,3));
74 RCP<const LinearOpBase<double> > A11 = epetraLinearOp(getEpetraMatrix(scale*3,scale*3,4));
75 RCP<const LinearOpBase<double> > A12 = epetraLinearOp(getEpetraMatrix(scale*3,scale*2,5));
76 RCP<const LinearOpBase<double> > A20 = epetraLinearOp(getEpetraMatrix(scale*2,scale*4,6));
77 RCP<const LinearOpBase<double> > A21 = epetraLinearOp(getEpetraMatrix(scale*2,scale*3,8));
78 RCP<const LinearOpBase<double> > A22 = epetraLinearOp(getEpetraMatrix(scale*2,scale*2,8));
80 out <<
"Sub operators built" << std::endl;
83 const RCP<PhysicallyBlockedLinearOpBase<S> > M00 = defaultBlockedLinearOp<S>();
84 M00->beginBlockFill(2,2);
85 M00->setBlock(0,0,A00);
86 M00->setBlock(0,1,A02);
87 M00->setBlock(1,0,A20);
88 M00->setBlock(1,1,A22);
91 out <<
"Built M00" << std::endl;
93 const RCP<PhysicallyBlockedLinearOpBase<S> > M10 = defaultBlockedLinearOp<S>();
94 M10->beginBlockFill(2,1);
95 M10->setBlock(0,0,A01);
96 M10->setBlock(1,0,A21);
99 out <<
"Built M10" << std::endl;
101 const RCP<PhysicallyBlockedLinearOpBase<S> > M01 = defaultBlockedLinearOp<S>();
102 M01->beginBlockFill(1,2);
103 M01->setBlock(0,0,A10);
104 M01->setBlock(0,1,A12);
107 out <<
"Built M01" << std::endl;
109 const RCP<PhysicallyBlockedLinearOpBase<S> > M = defaultBlockedLinearOp<S>();
110 M->beginBlockFill(2,2);
111 M->setBlock(0,0,A11);
112 M->setBlock(0,1,M01);
113 M->setBlock(1,0,M10);
114 M->setBlock(1,1,M00);
117 out <<
"Built M" << std::endl;
119 out <<
"M = " << describe(*M, Teuchos::VERB_MEDIUM);
120 out <<
"M->range() = " << describe(*M->range(), Teuchos::VERB_MEDIUM);
121 out <<
"M->domain() = " << describe(*M->range(), Teuchos::VERB_MEDIUM);
123 out <<
"Test complete" << std::endl;
TEUCHOS_UNIT_TEST(EpetraOperatorWrapper, basic)