|
Panzer
Version of the Day
|
Go to the documentation of this file.
43 #ifndef __Panzer_Integerator_BasisTimesVector_decl_hpp__
44 #define __Panzer_Integerator_BasisTimesVector_decl_hpp__
56 #include "Kokkos_DynRankView.hpp"
63 #include "Phalanx_Evaluator_Derived.hpp"
64 #include "Phalanx_MDField.hpp"
80 template<
typename EvalT,
typename Traits>
84 public PHX::EvaluatorDerived<EvalT, Traits>
125 const std::string& resName,
126 const std::string& valName,
130 const std::vector<std::string>& fmNames =
131 std::vector<std::string>());
217 const PHX::FieldTag& resTag,
218 const PHX::FieldTag& valTag,
222 const std::vector<PHX::FieldTag>& multipliers =
223 std::vector<PHX::FieldTag>());
258 template<
int NUM_FIELD_MULT>
279 template<
int NUM_FIELD_MULT>
283 const std::size_t& cell)
const;
335 PHX::MDField<ScalarT, panzer::Cell, panzer::BASIS>
field_;
341 PHX::MDField<const ScalarT, panzer::Cell, panzer::IP, panzer::Dim>
354 std::vector<PHX::MDField<const ScalarT, panzer::Cell, panzer::IP>>
388 PHX::MDField<double, panzer::Cell, panzer::BASIS, panzer::IP,
395 #endif // __Panzer_Integerator_BasisTimesVector_decl_hpp__
std::size_t basisIndex_
The index in the Workset bases for our particular BasisIRLayout name.
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
Get Valid Parameters.
Integrator_BasisTimesVector(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.
void operator()(const FieldMultTag< NUM_FIELD_MULT > &tag, const std::size_t &cell) const
Perform the integration.
BasisDescriptor bd_
The BasisDescriptor for the basis to use.
PHX::MDField< double, panzer::Cell, panzer::BASIS, panzer::IP, panzer::Dim > basis_
The vector basis information necessary for integration.
bool useDescriptors_
A flag indicating whether or not to use the descriptor interface.
int numDim_
The dimensionality of our vector-valued fields.
std::vector< PHX::MDField< const ScalarT, panzer::Cell, panzer::IP > > fieldMults_
The (possibly empty) list of fields that are multipliers out in front of the integral ( ,...
void postRegistrationSetup(typename Traits::SetupData sd, PHX::FieldManager< Traits > &fm)
Post-Registration Setup.
std::string basisName_
The name of the basis we're using.
double multiplier_
The scalar multiplier out in front of the integral ( ).
void evaluateFields(typename Traits::EvalData workset)
Evaluate Fields.
PHX::MDField< const ScalarT, panzer::Cell, panzer::IP, panzer::Dim > vector_
A field representing the vector-valued function we're integrating ( ).
double multiplier
The scalar multiplier out in front of the integral ( ).
int numQP_
The number of quadrature points for each cell.
EvaluatorStyle
An indication of how an Evaluator will behave.
panzer::EvaluatorStyle evalStyle
The EvaluatorStyle of the parent Integrator_CurlBasisDotVector object.
typename EvalT::ScalarT ScalarT
The scalar type.
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
IntegrationDescriptor id_
The IntegrationDescriptor for the quadrature to use.
const panzer::EvaluatorStyle evalStyle_
An enum determining the behavior of this Evaluator.
Kokkos::View< Kokkos::View< const ScalarT ** > * > kokkosFieldMults_
The Kokkos::View representation of the (possibly empty) list of fields that are multipliers out in fr...
This empty struct allows us to optimize operator()() depending on the number of field multipliers.
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.