Stokhos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
epetra
Stokhos_ProductEpetraMultiVector.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_MULTI_VECTOR_HPP
43
#define STOKHOS_PRODUCT_EPETRA_MULTI_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
ProductEpetraMultiVector
:
57
public
virtual
ProductContainer
<Epetra_MultiVector> {
58
public
:
59
61
typedef
double
value_type
;
62
64
typedef
int
ordinal_type
;
65
67
71
ProductEpetraMultiVector
();
72
76
ProductEpetraMultiVector
(
77
const
Teuchos::RCP<const Epetra_BlockMap>& block_map);
78
83
84
ProductEpetraMultiVector
(
85
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
86
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
87
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
,
88
int
num_vectors);
89
94
/*
95
* This version supplies the generated product map \c product_map
96
*/
97
ProductEpetraMultiVector
(
98
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
99
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
100
const
Teuchos::RCP<const Epetra_BlockMap>&
product_map
,
101
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
,
102
int
num_vectors);
103
108
ProductEpetraMultiVector
(
109
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
110
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
111
const
Teuchos::RCP<const Epetra_BlockMap>&
product_map
,
112
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
,
113
Epetra_DataAccess
CV,
114
const
Epetra_MultiVector
& block_vector);
115
117
120
ProductEpetraMultiVector
(
const
ProductEpetraMultiVector
& v);
121
123
virtual
~ProductEpetraMultiVector
();
124
126
129
ProductEpetraMultiVector
&
operator=
(
const
ProductEpetraMultiVector
& v);
130
132
ProductEpetraMultiVector
&
operator=
(
const
Epetra_MultiVector
& v);
133
135
void
assignToBlockMultiVector
(
Epetra_MultiVector
& v)
const
;
136
138
void
assignFromBlockMultiVector
(
const
Epetra_MultiVector
& v);
139
141
Teuchos::RCP<const Epetra_BlockMap>
coefficientMap
()
const
;
142
144
Teuchos::RCP<const Epetra_BlockMap>
productMap
()
const
;
145
147
Teuchos::RCP<const EpetraExt::MultiComm>
productComm
()
const
;
148
150
int
numVectors
()
const
;
151
153
156
void
reset
(
157
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
158
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
159
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
,
160
int
num_vectors);
161
163
166
void
reset
(
167
const
Teuchos::RCP<const Epetra_BlockMap>& block_map,
168
const
Teuchos::RCP<const Epetra_BlockMap>&
coeff_map
,
169
const
Teuchos::RCP<const Epetra_BlockMap>&
product_map
,
170
const
Teuchos::RCP<const EpetraExt::MultiComm>&
product_comm
,
171
int
num_vectors);
172
174
void
resetCoefficients
(
Epetra_DataAccess
CV,
175
const
Epetra_MultiVector
& block_vector);
176
178
Teuchos::RCP<EpetraExt::BlockMultiVector>
getBlockMultiVector
();
179
181
Teuchos::RCP<const EpetraExt::BlockMultiVector>
getBlockMultiVector
()
const
;
182
184
void
setBlockMultiVector
(
185
const
Teuchos::RCP<EpetraExt::BlockMultiVector>& block_vec);
186
187
protected
:
188
190
Teuchos::RCP<const Epetra_BlockMap>
coeff_map
;
191
193
Teuchos::RCP<const EpetraExt::MultiComm>
product_comm
;
194
196
Teuchos::RCP<const Epetra_BlockMap>
product_map
;
197
199
Teuchos::RCP<EpetraExt::BlockMultiVector>
bv
;
200
201
};
// class ProductEpetraMultiVector
202
203
}
// end namespace Stokhos
204
205
#endif
// STOKHOS_PRODUCT_EPETRA_MULTI_VECTOR_HPP
Epetra_BlockMap.h
Epetra_DataAccess
Epetra_DataAccess
Stokhos_ProductContainer.hpp
Stokhos_VectorOrthogPolyTraitsEpetra.hpp
Epetra_MultiVector
Stokhos::ProductContainer< Epetra_MultiVector >::ProductContainer
ProductContainer()
Definition
Stokhos_ProductContainerImp.hpp:44
Stokhos::ProductEpetraMultiVector::coeff_map
Teuchos::RCP< const Epetra_BlockMap > coeff_map
Product map of block vector.
Definition
Stokhos_ProductEpetraMultiVector.hpp:190
Stokhos::ProductEpetraMultiVector::product_map
Teuchos::RCP< const Epetra_BlockMap > product_map
Product map of block vector.
Definition
Stokhos_ProductEpetraMultiVector.hpp:196
Stokhos::ProductEpetraMultiVector::product_comm
Teuchos::RCP< const EpetraExt::MultiComm > product_comm
Product multi-level communicator.
Definition
Stokhos_ProductEpetraMultiVector.hpp:193
Stokhos::ProductEpetraMultiVector::numVectors
int numVectors() const
Get number of vectors.
Definition
Stokhos_ProductEpetraMultiVector.cpp:201
Stokhos::ProductEpetraMultiVector::bv
Teuchos::RCP< EpetraExt::BlockMultiVector > bv
Block vector storing coefficients.
Definition
Stokhos_ProductEpetraMultiVector.hpp:199
Stokhos::ProductEpetraMultiVector::assignFromBlockMultiVector
void assignFromBlockMultiVector(const Epetra_MultiVector &v)
Assignment.
Definition
Stokhos_ProductEpetraMultiVector.cpp:168
Stokhos::ProductEpetraMultiVector::ordinal_type
int ordinal_type
Typename of ordinals.
Definition
Stokhos_ProductEpetraMultiVector.hpp:64
Stokhos::ProductEpetraMultiVector::~ProductEpetraMultiVector
virtual ~ProductEpetraMultiVector()
Destructor.
Definition
Stokhos_ProductEpetraMultiVector.cpp:123
Stokhos::ProductEpetraMultiVector::operator=
ProductEpetraMultiVector & operator=(const ProductEpetraMultiVector &v)
Assignment.
Definition
Stokhos_ProductEpetraMultiVector.cpp:127
Stokhos::ProductEpetraMultiVector::resetCoefficients
void resetCoefficients(Epetra_DataAccess CV, const Epetra_MultiVector &block_vector)
Reset vector cofficients.
Definition
Stokhos_ProductEpetraMultiVector.cpp:249
Stokhos::ProductEpetraMultiVector::setBlockMultiVector
void setBlockMultiVector(const Teuchos::RCP< EpetraExt::BlockMultiVector > &block_vec)
Set block vector.
Definition
Stokhos_ProductEpetraMultiVector.cpp:274
Stokhos::ProductEpetraMultiVector::productMap
Teuchos::RCP< const Epetra_BlockMap > productMap() const
Get product map.
Definition
Stokhos_ProductEpetraMultiVector.cpp:189
Stokhos::ProductEpetraMultiVector::value_type
double value_type
Typename of values.
Definition
Stokhos_ProductEpetraMultiVector.hpp:61
Stokhos::ProductEpetraMultiVector::getBlockMultiVector
Teuchos::RCP< EpetraExt::BlockMultiVector > getBlockMultiVector()
Get block vector.
Definition
Stokhos_ProductEpetraMultiVector.cpp:260
Stokhos::ProductEpetraMultiVector::assignToBlockMultiVector
void assignToBlockMultiVector(Epetra_MultiVector &v) const
Assignment.
Definition
Stokhos_ProductEpetraMultiVector.cpp:153
Stokhos::ProductEpetraMultiVector::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, int num_vectors)
Reset to a new size.
Definition
Stokhos_ProductEpetraMultiVector.cpp:211
Stokhos::ProductEpetraMultiVector::ProductEpetraMultiVector
ProductEpetraMultiVector()
Default constructor.
Definition
Stokhos_ProductEpetraMultiVector.cpp:47
Stokhos::ProductEpetraMultiVector::productComm
Teuchos::RCP< const EpetraExt::MultiComm > productComm() const
Get product comm.
Definition
Stokhos_ProductEpetraMultiVector.cpp:195
Stokhos::ProductEpetraMultiVector::coefficientMap
Teuchos::RCP< const Epetra_BlockMap > coefficientMap() const
Get coefficient map.
Definition
Stokhos_ProductEpetraMultiVector.cpp:183
Stokhos
Top-level namespace for Stokhos classes and functions.
Definition
Stokhos_AbstractPreconditionerFactory.hpp:48
Generated by
1.17.0