1 #ifndef VERTEXCFD_CLOSURE_EXTERNALFIELDS_HPP
2 #define VERTEXCFD_CLOSURE_EXTERNALFIELDS_HPP
4 #include <drivers/VertexCFD_ExternalFieldsManager.hpp>
6 #include <Panzer_Dimension.hpp>
7 #include <Panzer_Evaluator_WithBaseImpl.hpp>
8 #include <Panzer_GlobalIndexer.hpp>
9 #include <Panzer_PureBasis.hpp>
11 #include <Phalanx_Evaluator_Derived.hpp>
12 #include <Phalanx_FieldManager.hpp>
13 #include <Phalanx_KokkosDeviceTypes.hpp>
14 #include <Phalanx_MDField.hpp>
16 #include <Teuchos_RCP.hpp>
18 #include <Kokkos_Core.hpp>
25 namespace ClosureModel
31 template<
class EvalType,
class Traits>
33 public PHX::EvaluatorDerived<EvalType, Traits>
36 using scalar_type =
typename EvalType::ScalarT;
40 external_fields_manager,
41 const std::vector<std::string>& external_field_names,
42 const Teuchos::RCP<const panzer::PureBasis>& basis);
44 void postRegistrationSetup(
typename Traits::SetupData d,
45 PHX::FieldManager<Traits>& fm);
47 void evaluateFields(
typename Traits::EvalData d);
53 std::vector<PHX::MDField<scalar_type, panzer::Cell, panzer::BASIS>>
57 Teuchos::RCP<const panzer::GlobalIndexer> _global_indexer;
58 std::vector<int> _field_ids;
59 Kokkos::View<double*, PHX::Device> _ghosted_field_data;
60 Kokkos::View<int**, PHX::Device> _scratch_lids;
61 std::vector<Kokkos::View<int*, PHX::Device>> _scratch_offsets;
69 #endif // end VERTEXCFD_CLOSURE_EXTERNALFIELDS_HPP