Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_STK_ScatterVectorFields_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_ScatterVectorFields_decl_HPP__
12#define __PANZER_STK_ScatterVectorFields_decl_HPP__
13
14#include "Phalanx_config.hpp"
15#include "Phalanx_Evaluator_Macros.hpp"
16#include "Phalanx_MDField.hpp"
17
18#include "Teuchos_ParameterList.hpp"
19
20#include "Panzer_Dimension.hpp"
21#include "Panzer_Traits.hpp"
22#include "Panzer_PointRule.hpp"
24
26
27namespace panzer_stk {
28
39template<typename EvalT, typename Traits>
41 :
42 public panzer::EvaluatorWithBaseImpl<Traits>,
43 public PHX::EvaluatorDerived<EvalT, Traits>
44{
45 public:
46
48 const Teuchos::ParameterList& p);
49
50 void
52 typename Traits::EvalData d);
53
54 private:
55
56 using ScalarT = typename EvalT::ScalarT;
58
59 std::vector<std::string> names_;
60 std::vector< PHX::MDField<const ScalarT,panzer::Cell,panzer::IP,panzer::Dim> > scatterFields_;
61 PHX::MDField<const ScalarT,panzer::Cell,panzer::IP,panzer::Dim> pointField_;
62 Teuchos::RCP<STK_Interface> mesh_;
63 std::vector<double> scaling_;
64
66
67public:
68
69 ScatterVectorFields(const std::string & scatterName,
70 const Teuchos::RCP<STK_Interface> mesh,
71 const Teuchos::RCP<const panzer::PointRule> & pointRule,
72 const std::vector<std::string> & names,
73 const std::vector<double> & scaling = std::vector<double>());
74
75}; // end of class ScatterVectorFields
76
77
78}
79
80// **************************************************************
81#endif
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
stk::mesh::Field< double > SolutionFieldType
std::vector< PHX::MDField< const ScalarT, panzer::Cell, panzer::IP, panzer::Dim > > scatterFields_
PHX::MDField< const ScalarT, panzer::Cell, panzer::IP, panzer::Dim > pointField_
panzer_stk::STK_Interface::SolutionFieldType VariableField