43 #ifndef __Panzer_SubcellSum_impl_hpp__ 44 #define __Panzer_SubcellSum_impl_hpp__ 50 #include "Phalanx_DataLayout_MDALayout.hpp" 59 p.validateParameters(*valid_params);
61 const std::string inName = p.get<std::string>(
"Field Name");
62 const std::string outName = p.get<std::string>(
"Sum Name");
65 if(p.isType<
bool>(
"Evaluate On Closure"))
71 this->addDependentField(
inField);
77 std::string n =
"SubcellSum: " +
outField.fieldTag().name();
84 this->utils.setFieldData(
inField,fm);
85 this->utils.setFieldData(
outField,fm);
91 std::vector<int> indices;
101 for(index_t c=0;c<workset.num_cells;c++) {
105 for(std::size_t i=0;i<indices.size();i++)
114 template<
typename EvalT,
typename TRAITS>
119 p->
set<std::string>(
"Sum Name",
"?");
120 p->
set<std::string>(
"Field Name",
"?");
121 p->
set<
double>(
"Multiplier",1.0);
122 p->set<
bool>(
"Evaluate On Closure",
false);
125 p->set(
"Basis",
basis);
ParameterList & set(std::string const &name, T const &value, std::string const &docString="", RCP< const ParameterEntryValidator > const &validator=null)
virtual void getSubcellClosureIndices(int dim, int cellIndex, std::vector< int > &indices) const =0
PHX::MDField< ScalarT, Cell, BASIS > inField
PHX::MDField< ScalarT, Cell > outField
Teuchos::RCP< PHX::DataLayout > cell_data
<Cell>
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Teuchos::RCP< Intrepid2::Basis< double, Kokkos::DynRankView< double, PHX::Device > > > getIntrepid2Basis() const
PHX_EVALUATOR_CTOR(BasisValues_Evaluator, p)
PHX_EVALUATE_FIELDS(BasisValues_Evaluator, workset)
Teuchos::RCP< const panzer::PureBasis > basis
Interpolates basis DOF values to IP DOF values.
Teuchos::RCP< const panzer::FieldPattern > fieldPattern_
virtual const std::vector< int > & getSubcellIndices(int dim, int cellIndex) const =0
Teuchos::RCP< PHX::DataLayout > functional
<Cell,Basis> or <Cell,Basis>
PHX_POST_REGISTRATION_SETUP(BasisValues_Evaluator, sd, fm)