11#ifndef __Panzer_BlockedEpetraLinearObjContainer_hpp__
12#define __Panzer_BlockedEpetraLinearObjContainer_hpp__
14#include "PanzerDiscFE_config.hpp"
16#include "Teuchos_RCP.hpp"
20#include "Thyra_PhysicallyBlockedLinearOpBase.hpp"
21#include "Thyra_ProductVectorBase.hpp"
23#include "Epetra_Map.h"
25#include <unordered_map>
52 inline void set_x(
const Teuchos::RCP<VectorType> & in) {
set_x_th(in); }
58 inline void set_f(
const Teuchos::RCP<VectorType> & in) {
set_f_th(in); }
61 inline void set_A(
const Teuchos::RCP<CrsMatrixType> & in) {
set_A_th(in); }
69 void set_x_th(
const Teuchos::RCP<VectorType> & in) {
x = in; }
70 Teuchos::RCP<VectorType>
get_x_th()
const {
return x; }
75 void set_f_th(
const Teuchos::RCP<VectorType> & in) {
f = in; }
76 Teuchos::RCP<VectorType>
get_f_th()
const {
return f; }
78 void set_A_th(
const Teuchos::RCP<CrsMatrixType> & in) {
A = in; }
79 Teuchos::RCP<CrsMatrixType>
get_A_th()
const {
return A; }
83 Teuchos::RCP<CrsMatrixType>
A;
void set_A_th(const Teuchos::RCP< CrsMatrixType > &in)
Teuchos::RCP< VectorType > get_f() const
void set_dxdt_th(const Teuchos::RCP< VectorType > &in)
void set_dxdt(const Teuchos::RCP< VectorType > &in)
Thyra::VectorBase< double > VectorType
Teuchos::RCP< VectorType > get_x_th() const
virtual void initialize()
Teuchos::RCP< VectorType > dxdt
std::vector< Teuchos::RCP< const Epetra_Map > > blockMaps_
void set_x_th(const Teuchos::RCP< VectorType > &in)
Teuchos::RCP< VectorType > x
Teuchos::RCP< CrsMatrixType > get_A_th() const
Teuchos::RCP< CrsMatrixType > get_A() const
void set_f_th(const Teuchos::RCP< VectorType > &in)
void setMapsForBlocks(const std::vector< Teuchos::RCP< const Epetra_Map > > &blockMaps)
void set_A(const Teuchos::RCP< CrsMatrixType > &in)
bool checkCompatibility() const
Make sure row and column spaces match up.
Teuchos::RCP< VectorType > get_dxdt() const
Thyra::LinearOpBase< double > CrsMatrixType
void set_x(const Teuchos::RCP< VectorType > &in)
Teuchos::RCP< VectorType > f
void set_f(const Teuchos::RCP< VectorType > &in)
Teuchos::RCP< VectorType > get_x() const
void initializeMatrix(double value)
Put a particular scalar in the matrix.
Teuchos::RCP< VectorType > get_f_th() const
Teuchos::RCP< VectorType > get_dxdt_th() const
Teuchos::RCP< CrsMatrixType > A
Teuchos::RCP< const Epetra_Map > getMapForBlock(std::size_t i) const