Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_Integrator_Scalar_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_EVALUATOR_SCALAR_DECL_HPP
12#define PANZER_EVALUATOR_SCALAR_DECL_HPP
13
14#include <string>
15#include "Panzer_Dimension.hpp"
16#include "Phalanx_Evaluator_Macros.hpp"
17#include "Phalanx_MDField.hpp"
18#include "Kokkos_DynRankView.hpp"
19
21
22namespace panzer {
23
37template<typename EvalT, typename Traits>
39 :
40 public panzer::EvaluatorWithBaseImpl<Traits>,
41 public PHX::EvaluatorDerived<EvalT, Traits>
42{
43 public:
44
46 const Teuchos::ParameterList& p);
47
48 void
50 typename Traits::SetupData d,
52
53 void
55 typename Traits::EvalData d);
56
57 private:
58
59 using ScalarT = typename EvalT::ScalarT;
60
61 PHX::MDField<ScalarT> integral; // result
62
63 PHX::MDField<const ScalarT,Cell,IP> scalar; // function to be integrated
64
65 typename PHX::View<PHX::UnmanagedView<const ScalarT**>* >::host_mirror_type field_multipliers_h;
66 PHX::View<PHX::UnmanagedView<const ScalarT**>* > field_multipliers;
67
68 std::size_t num_qp;
69 std::size_t quad_index;
71
72 double multiplier;
73
74 Kokkos::DynRankView<ScalarT,typename PHX::DevLayout<ScalarT>::type,PHX::Device> tmp;
75
76public:
77 // for testing purposes
78 const PHX::FieldTag & getFieldTag() const
79 { return integral.fieldTag(); }
80
81private:
82 Teuchos::RCP<Teuchos::ParameterList> getValidParameters() const;
83
84}; // end of class Integrator_Scalar
85
86
87}
88
89#endif
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
const PHX::FieldTag & getFieldTag() const
PHX::MDField< const ScalarT, Cell, IP > scalar
PHX::View< PHX::UnmanagedView< constScalarT ** > * >::host_mirror_type field_multipliers_h
Teuchos::RCP< Teuchos::ParameterList > getValidParameters() const
PHX::View< PHX::UnmanagedView< const ScalarT ** > * > field_multipliers
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
Kokkos::DynRankView< ScalarT, typename PHX::DevLayout< ScalarT >::type, PHX::Device > tmp
void evaluateFields(typename Traits::EvalData d)