Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CDR_Model_Tpetra_decl.hpp
Go to the documentation of this file.
1 // @HEADER
2 // ****************************************************************************
3 // Tempus: Copyright (2017) Sandia Corporation
4 //
5 // Distributed under BSD 3-clause license (See accompanying file Copyright.txt)
6 // ****************************************************************************
7 // @HEADER
8 
9 #ifndef TEMPUS_CDR_MODEL_TPETRA_DECL_HPP
10 #define TEMPUS_CDR_MODEL_TPETRA_DECL_HPP
11 
12 #include "Thyra_StateFuncModelEvaluatorBase.hpp"
13 #include "Thyra_TpetraThyraWrappers_decl.hpp"
14 
15 #include <Tpetra_CrsGraph_decl.hpp>
16 #include <Tpetra_Import_decl.hpp>
17 #include <Tpetra_Map_decl.hpp>
18 #include <Tpetra_Vector_decl.hpp>
19 
20 namespace Tempus_Test {
21 
42 template <typename SC, typename LO, typename GO, typename Node>
44  public:
45  using tpetra_map = Tpetra::Map<LO, GO, Node>;
46  using tpetra_graph = Tpetra::CrsGraph<LO, GO, Node>;
47  using tpetra_matrix = Tpetra::CrsMatrix<SC, LO, GO, Node>;
48  using tpetra_vec = Tpetra::Vector<SC, LO, GO, Node>;
49  using tpetra_extract =
51 
53  const GO numGlobalElements, const SC zMin, const SC zMax,
54  const SC a, // convection
55  const SC k); // source
56 
59 
60  void set_x0(const Teuchos::ArrayView<const SC> &x0);
61 
62  void setShowGetInvalidArgs(bool showGetInvalidArg);
63 
64  void set_W_factory(
65  const Teuchos::RCP<const ::Thyra::LinearOpWithSolveFactoryBase<SC>>
66  &W_factory);
67 
69 
72 
79  const;
83 
84  private:
87 
90 
92  void evalModelImpl(
93  const ::Thyra::ModelEvaluatorBase::InArgs<SC> &inArgs,
94  const ::Thyra::ModelEvaluatorBase::OutArgs<SC> &outArgs) const;
95 
97 
98  private: // data members
101  const SC zMin_;
102  const SC zMax_;
103  const SC a_;
104  const SC k_;
105 
110 
113 
115 
117 
120 
124 
126 
133 };
134 
135 } // namespace Tempus_Test
136 
137 #endif // TEMPUS_CDR_MODEL_TPETRA_DECL_HPP
Teuchos::RCP< const tpetra_map > xGhostedMap_
Teuchos::RCP<::Thyra::VectorBase< SC > > x0_
void evalModelImpl(const ::Thyra::ModelEvaluatorBase::InArgs< SC > &inArgs, const ::Thyra::ModelEvaluatorBase::OutArgs< SC > &outArgs) const
::Thyra::ModelEvaluatorBase::InArgs< SC > createInArgs() const
::Thyra::ModelEvaluatorBase::InArgs< SC > prototypeInArgs_
Teuchos::RCP< const ::Thyra::VectorSpaceBase< SC > > xSpace_
Teuchos::RCP< const Tpetra::Import< LO, GO, Node > > importer_
Teuchos::RCP<::Thyra::PreconditionerBase< SC > > create_W_prec() const
Tpetra::CrsGraph< LO, GO, Node > tpetra_graph
void set_x0(const Teuchos::ArrayView< const SC > &x0)
Teuchos::RCP< tpetra_vec > GhostedNodeCoordinates_
Teuchos::RCP< const ::Thyra::VectorSpaceBase< SC > > get_f_space() const
::Thyra::ModelEvaluatorBase::OutArgs< SC > createOutArgsImpl() const
Teuchos::RCP< tpetra_vec > uPtr_
Teuchos::RCP< const ::Thyra::VectorSpaceBase< SC > > get_x_space() const
Teuchos::RCP< const ::Thyra::VectorSpaceBase< SC > > fSpace_
Teuchos::RCP< tpetra_vec > jDiag_
void setShowGetInvalidArgs(bool showGetInvalidArg)
Teuchos::RCP< const tpetra_graph > wGraph_
Tpetra::Vector< SC, LO, GO, Node > tpetra_vec
Teuchos::RCP< Thyra::LinearOpWithSolveBase< double > > create_W() const
Teuchos::RCP< tpetra_vec > nodeCoordinates_
Teuchos::RCP< tpetra_vec > uDotPtr_
Teuchos::RCP< const ::Thyra::LinearOpWithSolveFactoryBase< SC > > get_W_factory() const
void set_W_factory(const Teuchos::RCP< const ::Thyra::LinearOpWithSolveFactoryBase< SC >> &W_factory)
Teuchos::RCP< const tpetra_map > xOwnedMap_
Tpetra::Map< LO, GO, Node > tpetra_map
Teuchos::RCP< const tpetra_map > fOwnedMap_
const Teuchos::RCP< const Teuchos::Comm< int > > comm_
Teuchos::RCP< tpetra_vec > xPtr_
1D CGFEM model for convection/diffusion/reaction
::Thyra::ModelEvaluatorBase::InArgs< SC > nominalValues_
::Thyra::ModelEvaluatorBase::OutArgs< SC > prototypeOutArgs_
Tpetra::CrsMatrix< SC, LO, GO, Node > tpetra_matrix
Teuchos::RCP< const ::Thyra::LinearOpWithSolveFactoryBase< SC > > wFactory_
Teuchos::RCP<::Thyra::LinearOpBase< SC > > create_W_op() const
virtual Teuchos::RCP< const Tpetra::CrsGraph< LO, GO, Node > > createGraph()
CDR_Model_Tpetra(const Teuchos::RCP< const Teuchos::Comm< int >> &comm, const GO numGlobalElements, const SC zMin, const SC zMax, const SC a, const SC k)
::Thyra::ModelEvaluatorBase::InArgs< SC > getNominalValues() const