Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_STK_GatherFields_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_GatherFields_decl_HPP__
12#define __PANZER_STK_GatherFields_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"
23
25
26namespace panzer_stk {
27
37template<typename EvalT, typename Traits>
39 : public panzer::EvaluatorWithBaseImpl<Traits>,
40 public PHX::EvaluatorDerived<EvalT, Traits> {
41
42public:
44 GatherFields(const Teuchos::RCP<const panzer_stk::STK_Interface> & mesh,const Teuchos::ParameterList & p);
45
47 void postRegistrationSetup(typename Traits::SetupData d,
49
51 void evaluateFields(typename Traits::EvalData d);
52
53private:
54 typedef typename EvalT::ScalarT ScalarT;
56
57 std::vector< PHX::MDField<ScalarT,panzer::Cell,panzer::NODE> > gatherFields_;
58 std::vector<VariableField*> stkFields_;
59
60 Teuchos::RCP<const STK_Interface> mesh_;
61
63
65
66};
67
68}
69
70// **************************************************************
71#endif
Wrapper to PHX::EvaluatorWithBaseImpl that implements Panzer-specific helpers.
std::vector< VariableField * > stkFields_
Teuchos::RCP< const STK_Interface > mesh_
GatherFields(const Teuchos::RCP< const panzer_stk::STK_Interface > &mesh, const Teuchos::ParameterList &p)
Construct from the mesh and a ParameterList as documented in the class description.
void evaluateFields(typename Traits::EvalData d)
Gathers this workset's field values from the STK mesh per the class description.
panzer_stk::STK_Interface::SolutionFieldType VariableField
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &vm)
Looks up the STK field pointers needed by evaluateFields(). Called once before the first evaluation.
std::vector< PHX::MDField< ScalarT, panzer::Cell, panzer::NODE > > gatherFields_
stk::mesh::Field< double > SolutionFieldType