43 #ifndef __Panzer_STK_ParameterListCallbackBlocked_hpp__
44 #define __Panzer_STK_ParameterListCallbackBlocked_hpp__
46 #include "PanzerAdaptersSTK_config.hpp"
47 #ifdef PANZER_HAVE_TEKO
52 #include "Teko_RequestCallback.hpp"
56 #ifdef PANZER_HAVE_EPETRA_STACK
64 namespace panzer_stk {
72 class ParameterListCallbackBlocked :
public Teko::RequestCallback<Teuchos::RCP<Teuchos::ParameterList> > {
80 bool handlesRequest(
const Teko::RequestMesg & rm);
82 void preRequest(
const Teko::RequestMesg & rm);
86 bool isField(
const std::string&
field)
const
90 std::vector<Teuchos::RCP<panzer::GlobalIndexer>>
91 fieldDOFMngrs = blocked_ugi_->getFieldDOFManagers();
92 for (
int b(0); b < static_cast<int>(fieldDOFMngrs.size()); ++b)
94 for (
int f(0); f < fieldDOFMngrs[b]->getNumFields(); ++f)
96 if (fieldDOFMngrs[b]->getFieldString(f) ==
field)
101 return (aux_blocked_ugi_->getFieldNum(field) != -1);
103 return (blocked_ugi_->getFieldNum(field) != -1);
106 void buildArrayToVectorTpetra(
int block,
const std::string & field,
const bool useAux =
false);
107 void buildCoordinatesTpetra(
const std::string & field,
const bool useAux =
false);
109 #ifdef PANZER_HAVE_EPETRA_STACK
110 void buildArrayToVectorEpetra(
int block,
const std::string & field,
const bool useAux =
false);
111 void buildCoordinatesEpetra(
const std::string & field,
const bool useAux =
false);
121 const std::vector<double> & getCoordinateByField(
int dim,
const std::string & field)
const;
132 std::map<std::string,Teuchos::RCP<const panzer::Intrepid2FieldPattern> > fieldPatterns_;
136 std::map<std::string,std::vector<double> > xcoords_;
137 std::map<std::string,std::vector<double> > ycoords_;
138 std::map<std::string,std::vector<double> > zcoords_;
140 mutable std::map<std::string,Teuchos::RCP<const panzer::ArrayToFieldVector> > arrayToVectorTpetra_;
141 #ifdef PANZER_HAVE_EPETRA_STACK
142 mutable std::map<std::string,Teuchos::RCP<const panzer::ArrayToFieldVectorEpetra> > arrayToVectorEpetra_;
146 #ifdef PANZER_HAVE_EPETRA_STACK
150 bool returnTpetraObjects_;
155 #endif // PANZER_HAVE_TEKO
PHX::MDField< ScalarT, panzer::Cell, panzer::BASIS > field
A field to which we'll contribute, or in which we'll store, the result of computing this integral...