50 #include "Epetra_Import.h"
56 #include "Thyra_EpetraThyraWrappers.hpp"
57 #include "Thyra_SpmdVectorBase.hpp"
58 #include "Thyra_SpmdVectorSpaceBase.hpp"
59 #include "Thyra_VectorBase.hpp"
60 #include "Thyra_VectorSpaceBase.hpp"
72 const std::vector<int>& indices,
75 using std::logic_error;
77 "EpetraVector_ReadOnly_GlobalEvaluationData has been initialized; " \
78 "cannot call \"useConstantValues()\"!");
103 using Thyra::create_Vector;
104 using Thyra::create_VectorSpace;
126 for (
size_t j(0); j < gids.size(); ++j)
129 int lid = ghostedMap->
LID(gids[j]);
154 using std::logic_error;
156 using Thyra::get_Epetra_Vector;
158 "EpetraVector_ReadOnly_GlobalEvaluationData::globalToGhost(): Owned " \
159 "vector has not been set; can't perform the halo exchange!")
180 using std::logic_error;
184 "EpetraVector_ReadOnly_GlobalEvaluationData has not been initialized, " \
185 "cannot call \"initializeData()\"!");
192 for (
size_t j(0); j < lids.size(); ++j)
220 using std::logic_error;
221 using Thyra::create_Vector;
223 "EpetraVector_ReadOnly_GlobalEvaluationData::" \
224 "setOwnedVector_Epetra(): This object hasn't yet been initialized.")
238 using std::logic_error;
240 "EpetraVector_ReadOnly_GlobalEvaluationData::" \
241 "getGhostedVector_Epetra(): This object hasn't yet been initialized.")
243 "EpetraVector_ReadOnly_GlobalEvaluationData::" \
244 "getGhostedVector_Epetra(): The ghosted vector is just a null RCP.")
259 using std::logic_error;
261 "EpetraVector_ReadOnly_GlobalEvaluationData::setOwnedVector(): This " \
262 "object hasn't yet been initialized.")
276 using std::logic_error;
278 "EpetraVector_ReadOnly_GlobalEvaluationData::getOwnedVector(): This " \
279 "object hasn't yet been initialized.")
292 using std::logic_error;
293 using Thyra::create_Vector;
295 "EpetraVector_ReadOnly_GlobalEvaluationData::getGhostedVector(): " \
296 "This object hasn't yet been initialized.")
298 "EpetraVector_ReadOnly_GlobalEvaluationData::getGhostedVector(): The " \
299 "ghosted vector is just a null RCP.")
311 std::ostream& os)
const
315 const string tab(
" ");
317 << tab <<
"EpetraVector_ReadOnly_GlobalEvaluationData" << endl
virtual void globalToGhost(int mem=0)
Communicate the owned data to the ghosted vector.
VectorToViewTraits< VectorType >::View getView(typename VectorToViewTraits< VectorType >::ThyraVector &v)
Teuchos::RCP< const Epetra_Import > importer_
The importer used to communicate between the owned and ghosted vectors.
VectorToViewTraits< const Epetra_Vector >::View getView< const Epetra_Vector >(typename VectorToViewTraits< const Epetra_Vector >::ThyraVector &v)
panzer::kokkos_utils::VectorToViewTraits< Epetra_Vector >::View ghostedView_
The Kokkos::View of the ghosted vector.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
void setOwnedVector_Epetra(const Teuchos::RCP< const Epetra_Vector > &ownedVector)
Set the owned vector (Epetra version).
VectorToViewTraits< Epetra_Vector >::View getView< Epetra_Vector >(typename VectorToViewTraits< Epetra_Vector >::ThyraVector &v)
void useConstantValues(const std::vector< int > &indices, double value)
Choose a few GIDs and, instead of zeroing them out in the ghosted vector, set them to a specified val...
Kokkos::View< const LO **, PHX::Device > lids
virtual void initializeData()
Clear out the ghosted vector.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Teuchos::RCP< Epetra_Vector > getGhostedVector_Epetra() const
Get the ghosted vector (Epetra version).
Teuchos::RCP< Epetra_Vector > ghostedVector_
The ghosted vector.
virtual void ghostToGlobal(int mem=0)
Communicate the ghosted data to the owned vector.
Teuchos::RCP< const Thyra::VectorBase< double > > ownedVector_
The owned vector.
void setOwnedVector(const Teuchos::RCP< const Thyra::VectorBase< double >> &ownedVector)
Set the owned vector (Thyra version).
panzer::kokkos_utils::VectorToViewTraits< const Epetra_Vector >::View ownedView_
The Kokkos::View of the owned vector.
std::vector< FilteredPair > filteredPairs_
The list of filtered pairs, used to initialize values on the ghostedVector_.
void print(std::ostream &os) const
Print the object.
Teuchos::RCP< const Thyra::VectorSpaceBase< double > > ownedSpace_
The vector space corresponding to the owned vector.
Teuchos::RCP< const Thyra::VectorSpaceBase< double > > ghostedSpace_
The vector space corresponding to the ghosted vector.
std::pair< std::vector< int >, double > FilteredPair
A list of global IDs (which will be translated to local IDs), paired with a value to be assigned in t...
Teuchos::RCP< Thyra::VectorBase< double > > getGhostedVector() const
Get the ghosted vector (Thyra version).
Teuchos::RCP< const Epetra_Map > ownedMap_
The map corresponding to the owned vector.
bool isInitialized_
A flag indicating whether or not the object has been initialized.
Teuchos::RCP< const Thyra::VectorBase< double > > getOwnedVector() const
Get the owned vector (Thyra version).
Teuchos::RCP< const Epetra_Map > ghostedMap_
The map corresponding to the ghosted vector.
void initialize(const Teuchos::RCP< const Epetra_Import > &importer, const Teuchos::RCP< const Epetra_Map > &ghostedMap, const Teuchos::RCP< const Epetra_Map > &ownedMap)
Initialize this object with some Epetra communication objects.