11 #ifndef __Panzer_Integrator_DivBasisTimesScalar_hpp__
12 #define __Panzer_Integrator_DivBasisTimesScalar_hpp__
24 #include "Kokkos_DynRankView.hpp"
31 #include "Phalanx_Evaluator_Derived.hpp"
32 #include "Phalanx_MDField.hpp"
48 template<
typename EvalT,
typename Traits>
92 const std::string& resName,
93 const std::string& valName,
97 const std::vector<std::string>& fmNames =
98 std::vector<std::string>());
178 template<
int NUM_FIELD_MULT>
187 template<
int NUM_FIELD_MULT>
207 template<
int NUM_FIELD_MULT>
208 KOKKOS_INLINE_FUNCTION
212 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
229 template<
int NUM_FIELD_MULT>
230 KOKKOS_INLINE_FUNCTION
234 const Kokkos::TeamPolicy<PHX::exec_space>::member_type& team)
const;
327 #endif // __Panzer_Integrator_DivBasisTimesScalar_hpp__
PHX::View< ScalarT * > tmp_
Temporary for non-shared calculations.
double multiplier_
The scalar multiplier out in front of the integral ( ).
void evaluateFields(typename Traits::EvalData d)
Evaluate Fields.
typename EvalT::ScalarT ScalarT
The scalar type.
EvaluatorStyle
An indication of how an Evaluator will behave.
const panzer::EvaluatorStyle evalStyle_
An enum determining the behavior of this Evaluator.
double multiplier
The scalar multiplier out in front of the integral ( ).
std::size_t numQP_
The number of quadrature points for each cell.
PHX::MDField< const ScalarT, Cell, IP > scalar_
A field representing the scalar function we're integrating ( ).
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
panzer::EvaluatorStyle evalStyle
The EvaluatorStyle of the parent Integrator_CurlBasisDotVector object.
std::size_t basisIndex_
The index in the Workset bases for our particular BasisIRLayout name.
This empty struct allows us to optimize operator()() depending on the number of field multipliers...
KOKKOS_INLINE_FUNCTION void operator()(const FieldMultTag< NUM_FIELD_MULT > &tag, const Kokkos::TeamPolicy< PHX::exec_space >::member_type &team) const
Perform the integration. Main memory version.
PHX::MDField< ScalarT, Cell, BASIS > field_
A field to which we'll contribute, or in which we'll store, the result of computing this integral...
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
Get Valid Parameters.
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
Post-Registration Setup.
Integrator_DivBasisTimesScalar(const panzer::EvaluatorStyle &evalStyle, const std::string &resName, const std::string &valName, const panzer::BasisIRLayout &basis, const panzer::IntegrationRule &ir, const double &multiplier=1, const std::vector< std::string > &fmNames=std::vector< std::string >())
Main Constructor.
PHX::MDField< double, panzer::Cell, panzer::BASIS, panzer::IP > basis_
The scalar basis information necessary for integration.
PHX::View< PHX::UnmanagedView< const ScalarT ** > * > kokkosFieldMults_
The PHX::View representation of the (possibly empty) list of fields that are multipliers out in front...
This empty struct allows us to optimize operator()() depending on the number of field multipliers...
std::string basisName_
The name of the basis we're using.
std::vector< PHX::MDField< const ScalarT, Cell, IP > > fieldMults_
The (possibly empty) list of fields that are multipliers out in front of the integral ( ...