waves
Basic FE playground
Vectors.h
Go to the documentation of this file.
1 #ifndef KATOPTRON_VECTORS_H
2 #define KATOPTRON_VECTORS_H
3 
4 #include "katoptron.h"
5 
6 #include "Map.h"
7 
8 #include <Tpetra_Map.hpp>
9 #include <Tpetra_Vector.hpp>
10 #include <Teuchos_RCP.hpp>
11 #include <Xpetra_BlockedMultiVector.hpp>
12 #include <Xpetra_MultiVector.hpp>
13 
14 namespace katoptron
15 {
16 
21 template <typename scalar>
22 class Vectors
23 {
24 public:
25  //
26  // Convenience typedefs
27  //
33 
34  typedef Tpetra::Vector<scalar, local_ordinal_type, global_ordinal_type, node_type> tpetra_vector_type;
35  typedef Tpetra::MultiVector<scalar, local_ordinal_type, global_ordinal_type, node_type> tpetra_mvector_type;
36 
37  typedef Xpetra::BlockedMultiVector<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_bmvector_type;
38  typedef Xpetra::MultiVector<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_mvector_type;
39  typedef Xpetra::TpetraMultiVector<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_tmvector_type;
40 
41  Teuchos::RCP<tpetra_vector_type> bWO;
42  Teuchos::RCP<tpetra_vector_type> b;
43 
44  Teuchos::RCP<tpetra_vector_type> weights;
45 
46  Teuchos::RCP<tpetra_vector_type> x;
47  Teuchos::RCP<tpetra_vector_type> lagrange;
48 
49  Teuchos::RCP<tpetra_vector_type> initialGap;
50 
51  Teuchos::RCP<xpetra_bmvector_type> rhsBlockedMultiVector;
52  Teuchos::RCP<xpetra_bmvector_type> solutionBlockedMultiVector;
53 
54  Teuchos::RCP<xpetra_mvector_type> rhsMultiVector;
55  Teuchos::RCP<xpetra_mvector_type> solutionMultiVector;
56 
57  Vectors(Teuchos::RCP<Map> map);
58 };
59 
68 template <typename scalar>
69 Vectors<scalar>::Vectors(Teuchos::RCP<Map> map)
70 {
71  bWO = rcp(new tpetra_vector_type(map->mapDofsWO, true));
72  b = rcp(new tpetra_vector_type(map->mapDofs, true));
73  x = rcp(new tpetra_vector_type(map->mapDofs, true));
74  weights = rcp(new tpetra_vector_type(map->mapDofs, true));
75 }
76 }; // namespace katoptron
77 
78 #endif //KATOPTRON_VECTORS_H
katoptron::Map::local_ordinal_type
int local_ordinal_type
Definition: Map.h:27
katoptron::Vectors::rhsBlockedMultiVector
Teuchos::RCP< xpetra_bmvector_type > rhsBlockedMultiVector
Definition: Vectors.h:51
katoptron::Map::global_ordinal_type
int global_ordinal_type
Definition: Map.h:28
katoptron::Vectors::solutionBlockedMultiVector
Teuchos::RCP< xpetra_bmvector_type > solutionBlockedMultiVector
Definition: Vectors.h:52
katoptron::Vectors::weights
Teuchos::RCP< tpetra_vector_type > weights
Definition: Vectors.h:44
katoptron::Vectors::Vectors
Vectors(Teuchos::RCP< Map > map)
Vectors constructor.
Definition: Vectors.h:69
katoptron::Vectors::local_ordinal_type
Map::local_ordinal_type local_ordinal_type
Definition: Vectors.h:28
katoptron::Vectors::solutionMultiVector
Teuchos::RCP< xpetra_mvector_type > solutionMultiVector
Definition: Vectors.h:55
katoptron::Vectors::xpetra_mvector_type
Xpetra::MultiVector< scalar, local_ordinal_type, global_ordinal_type, node_type > xpetra_mvector_type
Definition: Vectors.h:38
katoptron
katoptron namespace
Definition: Algebraic.h:18
katoptron::Vectors::x
Teuchos::RCP< tpetra_vector_type > x
Definition: Vectors.h:46
katoptron::Vectors::node_type
Map::node_type node_type
Definition: Vectors.h:30
katoptron::Vectors::tpetra_mvector_type
Tpetra::MultiVector< scalar, local_ordinal_type, global_ordinal_type, node_type > tpetra_mvector_type
Definition: Vectors.h:35
katoptron::Vectors::lagrange
Teuchos::RCP< tpetra_vector_type > lagrange
Definition: Vectors.h:47
katoptron::Vectors::xpetra_bmap_type
Map::xpetra_bmap_type xpetra_bmap_type
Definition: Vectors.h:32
katoptron::Map::xpetra_bmap_type
Xpetra::BlockedMap< local_ordinal_type, global_ordinal_type, node_type > xpetra_bmap_type
Definition: Map.h:33
katoptron::Vectors
Class which includes all the Trilinos vectors (Tpetra vectors and Xpetra vectors) used in the simulat...
Definition: Vectors.h:22
katoptron::Vectors::bWO
Teuchos::RCP< tpetra_vector_type > bWO
Definition: Vectors.h:41
katoptron::Map::tpetra_map_type
Tpetra::Map< local_ordinal_type, global_ordinal_type, node_type > tpetra_map_type
Definition: Map.h:30
katoptron::Vectors::global_ordinal_type
Map::global_ordinal_type global_ordinal_type
Definition: Vectors.h:29
katoptron::Map::node_type
KokkosClassic::DefaultNode::DefaultNodeType node_type
Definition: Map.h:29
katoptron::Vectors::xpetra_tmvector_type
Xpetra::TpetraMultiVector< scalar, local_ordinal_type, global_ordinal_type, node_type > xpetra_tmvector_type
Definition: Vectors.h:39
katoptron.h
katoptron::Vectors::xpetra_bmvector_type
Xpetra::BlockedMultiVector< scalar, local_ordinal_type, global_ordinal_type, node_type > xpetra_bmvector_type
Definition: Vectors.h:37
katoptron::Vectors::tpetra_map_type
Map::tpetra_map_type tpetra_map_type
Definition: Vectors.h:31
katoptron::Vectors::tpetra_vector_type
Tpetra::Vector< scalar, local_ordinal_type, global_ordinal_type, node_type > tpetra_vector_type
Definition: Vectors.h:34
katoptron::Vectors::rhsMultiVector
Teuchos::RCP< xpetra_mvector_type > rhsMultiVector
Definition: Vectors.h:54
Map.h
katoptron::Vectors::b
Teuchos::RCP< tpetra_vector_type > b
Definition: Vectors.h:42
katoptron::Vectors::initialGap
Teuchos::RCP< tpetra_vector_type > initialGap
Definition: Vectors.h:49