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

PHAL_SharedParameter_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 #include "Sacado_ParameterRegistration.hpp"
00013 
00014 namespace PHAL {
00015 
00016 template<typename EvalT, typename Traits>
00017 SharedParameter<EvalT, Traits>::
00018 SharedParameter(const Teuchos::ParameterList& p) 
00019 {  
00020   paramName =  p.get<std::string>("Parameter Name");
00021   paramValue =  p.get<double>("Parameter Value");
00022 
00023   Teuchos::RCP<PHX::DataLayout> layout =
00024       p.get< Teuchos::RCP<PHX::DataLayout> >("Data Layout");
00025 
00027   PHX::MDField<ScalarT,Dim> f(paramName, layout);
00028   paramAsField = f;
00029 
00030   // Sacado-ized parameter
00031   Teuchos::RCP<ParamLib> paramLib =
00032     p.get< Teuchos::RCP<ParamLib> >("Parameter Library"); //, Teuchos::null ANDY - why a compiler error with this?
00033   new Sacado::ParameterRegistration<EvalT, SPL_Traits>(
00034       paramName, this, paramLib);
00035 
00036   this->addEvaluatedField(paramAsField);
00037   this->setName("Shared Parameter"+PHX::TypeString<EvalT>::value);
00038 }
00039 
00040 // **********************************************************************
00041 template<typename EvalT, typename Traits> 
00042 void SharedParameter<EvalT, Traits>::postRegistrationSetup(typename Traits::SetupData d,
00043                       PHX::FieldManager<Traits>& fm)
00044 {
00045   this->utils.setFieldData(paramAsField,fm);
00046 }
00047 
00048 // **********************************************************************
00049 template<typename EvalT, typename Traits>
00050 void SharedParameter<EvalT, Traits>::evaluateFields(typename Traits::EvalData workset)
00051 {
00052   paramAsField(0) = paramValue;
00053 }
00054 
00055 // **********************************************************************
00056 template<typename EvalT,typename Traits>
00057 typename SharedParameter<EvalT,Traits>::ScalarT& 
00058 SharedParameter<EvalT,Traits>::getValue(const std::string &n)
00059 {
00060   TEUCHOS_TEST_FOR_EXCEPT(n != paramName);
00061   return paramValue;
00062 }
00063 
00064 // **********************************************************************
00065 }
00066 
00067 

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