44 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &content,
45 const std::string &label =
"<ANYM>");
55 virtual void SetContent(
const std::vector<std::vector<GO> > &vars,
56 const Teuchos::RCP<
const Tpetra::Operator<ST, LO, GO, NT> > &content);
63 virtual const Teuchos::RCP<const Tpetra::Operator<ST, LO, GO, NT> > GetContent()
const {
67 virtual const Teuchos::RCP<const Tpetra::Operator<ST, LO, GO, NT> > GetContent() {
71 const Teuchos::RCP<const Tpetra::Operator<ST, LO, GO, NT> > GetBlock(
int i,
int j)
const;
76 void Reorder(
const BlockReorderManager &brm);
83 virtual void WriteBlocks(
const std::string &prefix)
const;
89 virtual ~BlockedTpetraOperator() {}
94 virtual int SetUseTranspose(
bool ) {
return -1; }
96 virtual int ApplyInverse(
const Tpetra::MultiVector<ST, LO, GO, NT> & ,
97 Tpetra::MultiVector<ST, LO, GO, NT> & )
const {
98 TEUCHOS_ASSERT(
false);
102 virtual double NormInf()
const {
103 TEUCHOS_ASSERT(
false);
108 virtual bool UseTranspose()
const {
return false; }
109 virtual bool HasNormInf()
const {
return false; }
110 virtual const Teuchos::Comm<int> &Comm()
const {
return *fullContent_->getRangeMap()->getComm(); }
117 Teuchos::RCP<const Tpetra::Operator<ST, LO, GO, NT> > fullContent_;
118 Teuchos::RCP<TpetraBlockedMappingStrategy> blockedMapping_;
119 Teuchos::RCP<Thyra::LinearOpBase<ST> > blockedOperator_;
120 Teuchos::RCP<const BlockReorderManager> reorderManager_;
124 void BuildBlockedOperator();