Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
epetra
Stokhos_ProductEpetraVector.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Stokhos Package
5
// Copyright (2009) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Eric T. Phipps (etphipp@sandia.gov).
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
#ifndef STOKHOS_PRODUCT_EPETRA_VECTOR_HPP
43
#define STOKHOS_PRODUCT_EPETRA_VECTOR_HPP
44
45
#include "
Stokhos_ProductContainer.hpp
"
46
#include "
Stokhos_VectorOrthogPolyTraitsEpetra.hpp
"
47
#include "
Epetra_BlockMap.h
"
48
#include "EpetraExt_MultiComm.h"
49
#include "EpetraExt_BlockMultiVector.h"
50
51
namespace
Stokhos
{
52
56
class
ProductEpetraVector
:
57
public
virtual
ProductContainer
<Epetra_Vector> {
58
public
:
59
61
typedef
double
value_type
;
62
64
typedef
int
ordinal_type
;
65
67
71
ProductEpetraVector
();
72
76
ProductEpetraVector
(
const
Teuchos::RCP<const Epetra_BlockMap>& block_map);
77
82
ProductEpetraVector
(
83
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
84
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
85
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
);
86
91
/*
92
* This version supplies the generated product map \c product_map
93
*/
94
ProductEpetraVector
(
95
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
96
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
97
const
Teuchos::RCP<const Epetra_BlockMap>&
product_map
,
98
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
);
99
104
ProductEpetraVector
(
105
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
106
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
107
const
Teuchos::RCP<const Epetra_BlockMap>&
product_map
,
108
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
,
109
Epetra_DataAccess
CV,
110
const
Epetra_Vector
& block_vector);
111
113
116
ProductEpetraVector
(
const
ProductEpetraVector
& v);
117
119
virtual
~ProductEpetraVector
();
120
122
125
ProductEpetraVector
&
operator=
(
const
ProductEpetraVector
& v);
126
128
ProductEpetraVector
&
operator=
(
const
Epetra_Vector
& v);
129
131
void
assignToBlockVector
(
Epetra_Vector
& v)
const
;
132
134
void
assignFromBlockVector
(
const
Epetra_Vector
& v);
135
137
Teuchos::RCP<const Epetra_BlockMap>
coefficientMap
()
const
;
138
140
Teuchos::RCP<const Epetra_BlockMap>
productMap
()
const
;
141
143
Teuchos::RCP<const EpetraExt::MultiComm>
productComm
()
const
;
144
146
149
void
reset
(
150
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
151
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
152
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
);
153
155
158
void
reset
(
159
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
160
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
161
const
Teuchos::RCP<const Epetra_BlockMap>&
product_map
,
162
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
);
163
165
void
resetCoefficients
(
Epetra_DataAccess
CV,
166
const
Epetra_Vector
& block_vector);
167
169
Teuchos::RCP<EpetraExt::BlockVector>
getBlockVector
();
170
172
Teuchos::RCP<const EpetraExt::BlockVector>
getBlockVector
()
const
;
173
175
void
setBlockVector
(
const
Teuchos::RCP<EpetraExt::BlockVector>& block_vec);
176
178
181
void
sumAll
();
182
183
protected
:
184
186
Teuchos::RCP<const Epetra_BlockMap>
coeff_map
;
187
189
Teuchos::RCP<const EpetraExt::MultiComm>
product_comm
;
190
192
Teuchos::RCP<const Epetra_BlockMap>
product_map
;
193
195
Teuchos::RCP<EpetraExt::BlockVector>
bv
;
196
197
};
// class ProductEpetraVector
198
199
}
// end namespace Stokhos
200
201
#endif
// STOKHOS_PRODUCT_EPETRA_VECTOR_HPP
Epetra_BlockMap.h
Epetra_DataAccess
Epetra_DataAccess
Stokhos_ProductContainer.hpp
Stokhos_VectorOrthogPolyTraitsEpetra.hpp
Epetra_Vector
Stokhos::ProductContainer< Epetra_Vector >::ProductContainer
ProductContainer()
Definition
Stokhos_ProductContainerImp.hpp:44
Stokhos::ProductEpetraVector::product_comm
Teuchos::RCP< const EpetraExt::MultiComm > product_comm
Product multi-level communicator.
Definition
Stokhos_ProductEpetraVector.hpp:189
Stokhos::ProductEpetraVector::assignFromBlockVector
void assignFromBlockVector(const Epetra_Vector &v)
Assignment.
Definition
Stokhos_ProductEpetraVector.cpp:163
Stokhos::ProductEpetraVector::productMap
Teuchos::RCP< const Epetra_BlockMap > productMap() const
Get product map.
Definition
Stokhos_ProductEpetraVector.cpp:184
Stokhos::ProductEpetraVector::assignToBlockVector
void assignToBlockVector(Epetra_Vector &v) const
Assignment.
Definition
Stokhos_ProductEpetraVector.cpp:148
Stokhos::ProductEpetraVector::coefficientMap
Teuchos::RCP< const Epetra_BlockMap > coefficientMap() const
Get coefficient map.
Definition
Stokhos_ProductEpetraVector.cpp:178
Stokhos::ProductEpetraVector::product_map
Teuchos::RCP< const Epetra_BlockMap > product_map
Product map of block vector.
Definition
Stokhos_ProductEpetraVector.hpp:192
Stokhos::ProductEpetraVector::productComm
Teuchos::RCP< const EpetraExt::MultiComm > productComm() const
Get product comm.
Definition
Stokhos_ProductEpetraVector.cpp:190
Stokhos::ProductEpetraVector::ordinal_type
int ordinal_type
Typename of ordinals.
Definition
Stokhos_ProductEpetraVector.hpp:64
Stokhos::ProductEpetraVector::ProductEpetraVector
ProductEpetraVector()
Default constructor.
Definition
Stokhos_ProductEpetraVector.cpp:47
Stokhos::ProductEpetraVector::coeff_map
Teuchos::RCP< const Epetra_BlockMap > coeff_map
Product map of block vector.
Definition
Stokhos_ProductEpetraVector.hpp:186
Stokhos::ProductEpetraVector::sumAll
void sumAll()
Sum coefficients across processors, storing result in this.
Definition
Stokhos_ProductEpetraVector.cpp:263
Stokhos::ProductEpetraVector::resetCoefficients
void resetCoefficients(Epetra_DataAccess CV, const Epetra_Vector &block_vector)
Reset vector cofficients.
Definition
Stokhos_ProductEpetraVector.cpp:230
Stokhos::ProductEpetraVector::reset
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)
Reset to a new size.
Definition
Stokhos_ProductEpetraVector.cpp:196
Stokhos::ProductEpetraVector::bv
Teuchos::RCP< EpetraExt::BlockVector > bv
Block vector storing coefficients.
Definition
Stokhos_ProductEpetraVector.hpp:195
Stokhos::ProductEpetraVector::operator=
ProductEpetraVector & operator=(const ProductEpetraVector &v)
Assignment.
Definition
Stokhos_ProductEpetraVector.cpp:122
Stokhos::ProductEpetraVector::~ProductEpetraVector
virtual ~ProductEpetraVector()
Destructor.
Definition
Stokhos_ProductEpetraVector.cpp:118
Stokhos::ProductEpetraVector::getBlockVector
Teuchos::RCP< EpetraExt::BlockVector > getBlockVector()
Get block vector.
Definition
Stokhos_ProductEpetraVector.cpp:240
Stokhos::ProductEpetraVector::value_type
double value_type
Typename of values.
Definition
Stokhos_ProductEpetraVector.hpp:61
Stokhos::ProductEpetraVector::setBlockVector
void setBlockVector(const Teuchos::RCP< EpetraExt::BlockVector > &block_vec)
Set block vector.
Definition
Stokhos_ProductEpetraVector.cpp:254
Stokhos
Top-level namespace for Stokhos classes and functions.
Definition
Stokhos_AbstractPreconditionerFactory.hpp:48
Generated by
1.17.0