Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_STK_ProjectField_decl.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Panzer: A partial differential equation assembly
4// engine for strongly coupled complex multiphysics systems
5//
6// Copyright 2011 NTESS and the Panzer contributors.
7// SPDX-License-Identifier: BSD-3-Clause
8// *****************************************************************************
9// @HEADER
10
11#ifndef PANZER_STK_PROJECT_FIELD_DECL_HPP
12#define PANZER_STK_PROJECT_FIELD_DECL_HPP
13
14#include "Phalanx_Evaluator_Macros.hpp"
15#include "Phalanx_MDField.hpp"
16
17#include "Teuchos_ParameterList.hpp"
18
19#include "Panzer_Traits.hpp"
21
23
24namespace panzer_stk {
25
30template<typename EvalT, typename Traits>
32 : public panzer::EvaluatorWithBaseImpl<Traits>,
33 public PHX::EvaluatorDerived<EvalT, Traits>
34 {
35
36public:
37
47 ProjectField(const std::string & inName, Teuchos::RCP<panzer::PureBasis> src,
48 Teuchos::RCP<panzer::PureBasis> dst, std::string outname = "");
49
50 void postRegistrationSetup(typename Traits::SetupData d,
52
53 void evaluateFields(typename Traits::EvalData d);
54
55private:
56
57 using ScalarT = typename EvalT::ScalarT;
58
59 const std::string field_name_;
60 Teuchos::RCP<const panzer::PureBasis> srcBasis_;
61 Teuchos::RCP<const panzer::PureBasis> dstBasis_;
62 Teuchos::RCP<const std::vector<Intrepid2::Orientation> > orientations_;
63
64 PHX::MDField<double,panzer::Cell,panzer::BASIS> result_;
65 PHX::MDField<double,panzer::Cell,panzer::BASIS> source_;
66
67 Kokkos::DynRankView<Intrepid2::Orientation,PHX::Device> local_orts_;
68
69};
70
71}
72
73// **************************************************************
74#endif
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)
PHX::MDField< double, panzer::Cell, panzer::BASIS > result_
PHX::MDField< double, panzer::Cell, panzer::BASIS > source_
void evaluateFields(typename Traits::EvalData d)
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_