43 #ifndef __Panzer_UniqueGlobalIndexer_EpetraUtilities_decl_hpp__ 44 #define __Panzer_UniqueGlobalIndexer_EpetraUtilities_decl_hpp__ 49 #include <unordered_map> 52 #include <Epetra_Vector.h> 53 #include <Epetra_IntVector.h> 54 #include <Epetra_MultiVector.h> 74 template <
typename LocalOrdinalT,
typename GlobalOrdinalT>
75 Teuchos::RCP<Epetra_IntVector>
88 template <
typename LocalOrdinalT,
typename GlobalOrdinalT,
typename Node>
89 Teuchos::RCP<const Epetra_IntVector>
91 const Teuchos::RCP<const Epetra_IntVector> & reducedVec=Teuchos::null);
95 template <
typename LocalOrdinalT,
typename GlobalOrdinalT>
96 Teuchos::RCP<const Epetra_IntVector>
98 const Teuchos::RCP<const Epetra_IntVector> & reducedVec=Teuchos::null)
99 {
return buildGhostedFieldVectorEpetra<LocalOrdinalT,GlobalOrdinalT,panzer::TpetraNodeType>(ugi,reducedVec); }
114 template <
typename LocalOrdinalT,
typename GlobalOrdinalT,
typename Node>
116 std::vector<int> & fieldNumbers,
117 const Teuchos::RCP<const Epetra_IntVector> & reducedVec=Teuchos::null);
121 template <
typename LocalOrdinalT,
typename GlobalOrdinalT>
123 std::vector<int> & fieldNumbers,
124 const Teuchos::RCP<const Epetra_IntVector> & reducedVec=Teuchos::null)
125 { buildGhostedFieldVectorEpetra<LocalOrdinalT,GlobalOrdinalT,panzer::TpetraNodeType>(ugi,fieldNumbers,reducedVec); }
139 template <
typename ScalarT,
typename ArrayT,
typename LocalOrdinalT,
typename GlobalOrdinalT,
typename Node>
141 const UniqueGlobalIndexer<LocalOrdinalT,GlobalOrdinalT> & ugi,
143 Epetra_MultiVector & dataVector);
154 Teuchos::RCP<const Epetra_BlockMap>
160 template <
typename LocalOrdinalT,
typename GlobalOrdinalT,
typename Node>
177 template <
typename ScalarT,
typename ArrayT>
178 Teuchos::RCP<Epetra_MultiVector>
179 getGhostedDataVector(
const std::string & fieldName,
const std::map<std::string,ArrayT> & data)
const;
190 template <
typename ScalarT,
typename ArrayT>
191 Teuchos::RCP<Epetra_MultiVector>
192 getDataVector(
const std::string & fieldName,
const std::map<std::string,ArrayT> & data)
const;
198 Teuchos::RCP<const Epetra_Map>
205 Teuchos::RCP<const Epetra_Map>
211 typedef Epetra_BlockMap
Map;
217 Teuchos::RCP<const UniqueGlobalIndexer<LocalOrdinalT,GlobalOrdinalT> >
ugi_;
Teuchos::RCP< const IntVector > gh_reducedFieldVector_
ArrayToFieldVectorEpetra()
Maps for each field (as needed)
Teuchos::RCP< const IntVector > fieldVector_
Maps for each field (as needed)
void buildFieldVector(const Epetra_IntVector &source) const
build unghosted field vector from ghosted field vector
Teuchos::RCP< Epetra_IntVector > buildGhostedFieldReducedVectorEpetra(const UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > &ugi)
void updateGhostedDataReducedVectorEpetra(const std::string &fieldName, const std::string blockId, const UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > &ugi, const ArrayT &data, Epetra_MultiVector &dataVector)
std::map< int, Teuchos::RCP< const Map > > gh_reducedFieldMaps_
ghosted field vector
Teuchos::RCP< Epetra_MultiVector > getDataVector(const std::string &fieldName, const std::map< std::string, ArrayT > &data) const
std::map< int, Teuchos::RCP< const Map > > gh_fieldMaps_
Maps for each field (as needed)
Teuchos::RCP< const Epetra_Map > getFieldMap(const std::string &fieldName) const
Teuchos::RCP< const Epetra_BlockMap > getFieldMapEpetra(int fieldNum, const Epetra_IntVector &fieldTVector)
Teuchos::RCP< const Epetra_IntVector > buildGhostedFieldVectorEpetra(const UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > &ugi, const Teuchos::RCP< const Epetra_IntVector > &reducedVec=Teuchos::null)
Epetra_IntVector IntVector
Epetra_MultiVector MultiVector
Teuchos::RCP< const IntVector > gh_fieldVector_
ghosted reduced field vector
std::map< int, Teuchos::RCP< const Map > > fieldMaps_
(unghosted) field vector (as needed)
Teuchos::RCP< Epetra_MultiVector > getGhostedDataVector(const std::string &fieldName, const std::map< std::string, ArrayT > &data) const
Teuchos::RCP< const UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > ugi_
DOF mapping.