• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

PHAL_LoadStateField_Def.hpp

Go to the documentation of this file.
00001 //*****************************************************************//
00002 //    Albany 2.0:  Copyright 2012 Sandia Corporation               //
00003 //    This Software is released under the BSD license detailed     //
00004 //    in the file "license.txt" in the top-level Albany directory  //
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   //cout << "LoadStateField importing state " << stateName << " to field " 
00042   //     << fieldName << " with size " << data.size() << endl;
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 

Generated on Wed Mar 26 2014 18:36:41 for Albany: a Trilinos-based PDE code by  doxygen 1.7.1