41 const Teuchos::ParameterList & user_data)
const
48 std::string
field = (fieldName_==
"" ? responseName : fieldName_);
53 auto tmp_global_indexer = globalIndexer_;
54 auto blocked_dof_manager = Teuchos::rcp_dynamic_cast<const panzer::BlockedDOFManager>(globalIndexer_);
55 if (nonnull(blocked_dof_manager)) {
56 int field_number = blocked_dof_manager->getFieldNum(
field);
57 TEUCHOS_TEST_FOR_EXCEPTION(field_number < 0,std::logic_error,
58 "ResponseEvaluatorFactory_Probe: field \"" <<
field <<
"\" was not "
59 "found in the blocked DOF manager.");
60 int product_vector_block_index = blocked_dof_manager->getFieldBlock(field_number);
61 tmp_global_indexer = (blocked_dof_manager->getFieldDOFManagers()[product_vector_block_index]);
64 Teuchos::RCP<ProbeScatterBase> scatterObj =
65 (tmp_global_indexer != Teuchos::null) ? Teuchos::rcp(
new ProbeScatter<LO,GO>(tmp_global_indexer)) : Teuchos::null;
68 std::vector<panzer::StrPureBasisPair> blockFields = physicsBlock.
getProvidedDOFs();
69 RCP<const panzer::PureBasis> basis;
70 for (
auto&& v : blockFields) {
71 if (v.first ==
field) {
79 Teuchos::RCP<PHX::Evaluator<panzer::Traits> > eval
89 this->
template registerEvaluator<EvalT>(fm, eval);
92 fm.template requireField<EvalT>(*eval->evaluatedFields()[0]);
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.