Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef PHAL_SAVESTATEFIELD_HPP
00008 #define PHAL_SAVESTATEFIELD_HPP
00009
00010 #include "Phalanx_ConfigDefs.hpp"
00011 #include "Phalanx_Evaluator_WithBaseImpl.hpp"
00012 #include "Phalanx_Evaluator_Derived.hpp"
00013 #include "Phalanx_MDField.hpp"
00014
00015 #include "Teuchos_ParameterList.hpp"
00016 #include "Epetra_Vector.h"
00017
00018 namespace PHAL {
00023 template<typename EvalT, typename Traits>
00024 class SaveStateField : public PHX::EvaluatorWithBaseImpl<Traits>,
00025 public PHX::EvaluatorDerived<EvalT, Traits> {
00026
00027 public:
00028
00029 SaveStateField(const Teuchos::ParameterList& p);
00030
00031 void postRegistrationSetup(typename Traits::SetupData d,
00032 PHX::FieldManager<Traits>& vm);
00033
00034 void evaluateFields(typename Traits::EvalData d);
00035
00036 private:
00037
00038 typedef typename EvalT::ScalarT ScalarT;
00039 typedef typename EvalT::MeshScalarT MeshScalarT;
00040 };
00041
00042
00043 template<typename Traits>
00044 class SaveStateField<PHAL::AlbanyTraits::Residual, Traits>
00045 : public PHX::EvaluatorWithBaseImpl<Traits>,
00046 public PHX::EvaluatorDerived<PHAL::AlbanyTraits::Residual, Traits> {
00047
00048 public:
00049
00050 SaveStateField(const Teuchos::ParameterList& p);
00051
00052 void postRegistrationSetup(typename Traits::SetupData d,
00053 PHX::FieldManager<Traits>& vm);
00054
00055 void evaluateFields(typename Traits::EvalData d);
00056
00057 private:
00058
00059 typedef typename PHAL::AlbanyTraits::Residual::ScalarT ScalarT;
00060 typedef typename PHAL::AlbanyTraits::Residual::MeshScalarT MeshScalarT;
00061
00062 Teuchos::RCP<PHX::FieldTag> savestate_operation;
00063 PHX::MDField<ScalarT> field;
00064 std::string fieldName;
00065 std::string stateName;
00066 };
00067 }
00068
00069 #endif