Stokhos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Stokhos_ProductEpetraMultiVector.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Stokhos Package
4 //
5 // Copyright 2009 NTESS and the Stokhos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef STOKHOS_PRODUCT_EPETRA_MULTI_VECTOR_HPP
11 #define STOKHOS_PRODUCT_EPETRA_MULTI_VECTOR_HPP
12 
15 #include "Epetra_BlockMap.h"
16 #include "EpetraExt_MultiComm.h"
17 #include "EpetraExt_BlockMultiVector.h"
18 
19 namespace Stokhos {
20 
25  public virtual ProductContainer<Epetra_MultiVector> {
26  public:
27 
29  typedef double value_type;
30 
32  typedef int ordinal_type;
33 
35 
40 
45  const Teuchos::RCP<const Epetra_BlockMap>& block_map);
46 
53  const Teuchos::RCP<const Epetra_BlockMap>& block_map,
56  int num_vectors);
57 
62  /*
63  * This version supplies the generated product map \c product_map
64  */
66  const Teuchos::RCP<const Epetra_BlockMap>& block_map,
70  int num_vectors);
71 
77  const Teuchos::RCP<const Epetra_BlockMap>& block_map,
82  const Epetra_MultiVector& block_vector);
83 
85 
89 
91  virtual ~ProductEpetraMultiVector();
92 
94 
98 
101 
104 
107 
110 
113 
116 
118  int numVectors() const;
119 
121 
124  void reset(
125  const Teuchos::RCP<const Epetra_BlockMap>& block_map,
128  int num_vectors);
129 
131 
134  void reset(
135  const Teuchos::RCP<const Epetra_BlockMap>& block_map,
139  int num_vectors);
140 
143  const Epetra_MultiVector& block_vector);
144 
147 
150 
152  void setBlockMultiVector(
154 
155  protected:
156 
159 
162 
165 
168 
169  }; // class ProductEpetraMultiVector
170 
171 } // end namespace Stokhos
172 
173 #endif // STOKHOS_PRODUCT_EPETRA_MULTI_VECTOR_HPP
Teuchos::RCP< const EpetraExt::MultiComm > product_comm
Product multi-level communicator.
int numVectors() const
Get number of vectors.
void assignToBlockMultiVector(Epetra_MultiVector &v) const
Assignment.
Teuchos::RCP< EpetraExt::BlockMultiVector > bv
Block vector storing coefficients.
ProductEpetraMultiVector & operator=(const ProductEpetraMultiVector &v)
Assignment.
Teuchos::RCP< const EpetraExt::MultiComm > productComm() const
Get product comm.
Teuchos::RCP< const Epetra_BlockMap > coefficientMap() const
Get coefficient map.
void reset(const Teuchos::RCP< const Epetra_BlockMap > &block_map, const Teuchos::RCP< const Epetra_BlockMap > &coeff_map, const Teuchos::RCP< const EpetraExt::MultiComm > &product_comm, int num_vectors)
Reset to a new size.
A container class storing products of Epetra_MultiVector&#39;s.
Teuchos::RCP< EpetraExt::BlockMultiVector > getBlockMultiVector()
Get block vector.
A product (in the mathematical sense) container class whose coefficients are vectors, operators, or in general any type that would have an expensive copy constructor.
Teuchos::RCP< const Epetra_BlockMap > productMap() const
Get product map.
Teuchos::RCP< const Epetra_BlockMap > coeff_map
Product map of block vector.
void setBlockMultiVector(const Teuchos::RCP< EpetraExt::BlockMultiVector > &block_vec)
Set block vector.
void resetCoefficients(Epetra_DataAccess CV, const Epetra_MultiVector &block_vector)
Reset vector cofficients.
Teuchos::RCP< const Epetra_BlockMap > product_map
Product map of block vector.
void assignFromBlockMultiVector(const Epetra_MultiVector &v)
Assignment.
Epetra_DataAccess