Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #include <vector>
00008 #include <string>
00009
00010 #include "Teuchos_TestForException.hpp"
00011 #include "Phalanx_DataLayout.hpp"
00012
00013 namespace PHAL {
00014
00015 template<typename EvalT, typename Traits>
00016 LoadStateField<EvalT, Traits>::
00017 LoadStateField(const Teuchos::ParameterList& p)
00018 {
00019 fieldName = p.get<std::string>("Field Name");
00020 stateName = p.get<std::string>("State Name");
00021
00022 PHX::MDField<ScalarT> f(fieldName, p.get<Teuchos::RCP<PHX::DataLayout> >("State Field Layout") );
00023 data = f;
00024
00025 this->addEvaluatedField(data);
00026 this->setName("Load State Field"+PHX::TypeString<EvalT>::value);
00027 }
00028
00029
00030 template<typename EvalT, typename Traits>
00031 void LoadStateField<EvalT, Traits>::postRegistrationSetup(typename Traits::SetupData d,
00032 PHX::FieldManager<Traits>& fm)
00033 {
00034 this->utils.setFieldData(data,fm);
00035 }
00036
00037
00038 template<typename EvalT, typename Traits>
00039 void LoadStateField<EvalT, Traits>::evaluateFields(typename Traits::EvalData workset)
00040 {
00041
00042
00043
00044 Albany::StateArray& states = *workset.stateArrayPtr;
00045 Albany::MDArray& stateToLoad = states[stateName];
00046
00047 for (int i=0; i < data.size() ; ++i) data[i] = stateToLoad[i];
00048 }
00049
00050
00051 }
00052