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: Time Integration and Sensitivity Analysis Package
4 //
5 // Copyright 2017 NTESS and the Tempus contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 //@HEADER
9 
10 #ifndef TEMPUS_CDR_MODEL_TPETRA_DECL_HPP
11 #define TEMPUS_CDR_MODEL_TPETRA_DECL_HPP
12 
13 #include "Thyra_StateFuncModelEvaluatorBase.hpp"
14 #include "Thyra_TpetraThyraWrappers_decl.hpp"
15 
16 #include <Tpetra_CrsGraph_decl.hpp>
17 #include <Tpetra_Import_decl.hpp>
18 #include <Tpetra_Map_decl.hpp>
19 #include <Tpetra_Vector_decl.hpp>
20 
21 namespace Tempus_Test {
22 
43 template <typename SC, typename LO, typename GO, typename Node>
45  public:
46  using tpetra_map = Tpetra::Map<LO, GO, Node>;
47  using tpetra_graph = Tpetra::CrsGraph<LO, GO, Node>;
48  using tpetra_matrix = Tpetra::CrsMatrix<SC, LO, GO, Node>;
49  using tpetra_vec = Tpetra::Vector<SC, LO, GO, Node>;
50  using tpetra_extract =
52 
54  const GO numGlobalElements, const SC zMin, const SC zMax,
55  const SC a, // convection
56  const SC k); // source
57 
60 
61  void set_x0(const Teuchos::ArrayView<const SC> &x0);
62 
63  void setShowGetInvalidArgs(bool showGetInvalidArg);
64 
65  void set_W_factory(
66  const Teuchos::RCP<const ::Thyra::LinearOpWithSolveFactoryBase<SC>>
67  &W_factory);
68 
70 
73 
80  const;
84 
85  private:
88 
91 
93  void evalModelImpl(
94  const ::Thyra::ModelEvaluatorBase::InArgs<SC> &inArgs,
95  const ::Thyra::ModelEvaluatorBase::OutArgs<SC> &outArgs) const;
96 
98 
99  private: // data members
102  const SC zMin_;
103  const SC zMax_;
104  const SC a_;
105  const SC k_;
106 
111 
114 
116 
118 
121 
125 
127 
134 };
135 
136 } // namespace Tempus_Test
137 
138 #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