39 #ifndef ZeroDimensionalRythmosSolverInterface_H 40 #define ZeroDimensionalRythmosSolverInterface_H 1
42 #include <lifev/zero_dimensional/solver/ZeroDimensionalRythmosModelInterface.hpp> 44 #if ( defined(HAVE_NOX_THYRA) && defined(HAVE_TRILINOS_RYTHMOS) ) 51 class RythmosSolverInterface :
public EpetraExt::ModelEvaluator
56 RythmosSolverInterface (Int numCircuitElements,
57 Teuchos::RCP<Epetra_Comm>& epetra_comm_ptr,
58 rythmosModelInterfacePtrRCP_Type theModel);
63 Teuchos::RCP<
const Epetra_Map> get_x_map()
const;
65 Teuchos::RCP<
const Epetra_Map> get_f_map()
const;
67 Teuchos::RCP<
const Epetra_Vector> get_x_init()
const;
69 Teuchos::RCP<
const Epetra_Vector> get_x_dot_init()
const;
71 Teuchos::RCP<Epetra_Operator> create_W()
const;
73 InArgs createInArgs()
const;
75 OutArgs createOutArgs()
const;
77 void evalModel (
const InArgs& inArgs,
const OutArgs& outArgs )
const;
81 Teuchos::RCP<Epetra_Comm> M_epetraCommPtr;
82 Teuchos::RCP<
const Epetra_Map> M_epetraMapPtr;
84 Teuchos::RCP<Epetra_CrsGraph> M_Wgraph;
85 rythmosModelInterfacePtrRCP_Type M_problemInterfacePtr;
86 Teuchos::RCP<Epetra_Comm> M_comm;
89 typedef std::shared_ptr< RythmosSolverInterface > rythmosSolverInterfacePtr_Type;
90 typedef Teuchos::RCP< RythmosSolverInterface > rythmosSolverInterfacePtrRCP_Type;