11#ifndef PANZER_STK_PROJECT_FIELD_DECL_HPP
12#define PANZER_STK_PROJECT_FIELD_DECL_HPP
14#include "Phalanx_Evaluator_Macros.hpp"
15#include "Phalanx_MDField.hpp"
17#include "Teuchos_ParameterList.hpp"
30template<
typename EvalT,
typename Traits>
33 public PHX::EvaluatorDerived<EvalT, Traits>
47 ProjectField(
const std::string & inName, Teuchos::RCP<panzer::PureBasis> src,
48 Teuchos::RCP<panzer::PureBasis> dst, std::string outname =
"");
66 PHX::MDField<double,panzer::Cell,panzer::BASIS>
result_;
67 PHX::MDField<double,panzer::Cell,panzer::BASIS>
source_;
69 Kokkos::DynRankView<Intrepid2::Orientation,PHX::Device>
local_orts_;
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
Given a field, perform a local L2 projection onto the desired basis.
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
Looks up the cell orientations needed by evaluateFields(). Called once before the first evaluation.
PHX::MDField< double, panzer::Cell, panzer::BASIS > result_
const std::string field_name_
PHX::MDField< double, panzer::Cell, panzer::BASIS > source_
void evaluateFields(typename Traits::EvalData d)
Computes the projected field for this workset per the class description.
Kokkos::DynRankView< Intrepid2::Orientation, PHX::Device > local_orts_
Teuchos::RCP< const panzer::PureBasis > srcBasis_
Teuchos::RCP< const std::vector< Intrepid2::Orientation > > orientations_
Teuchos::RCP< const panzer::PureBasis > dstBasis_
typename EvalT::ScalarT ScalarT