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

Time_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 <fstream>
00008 #include "Teuchos_TestForException.hpp"
00009 #include "Phalanx_DataLayout.hpp"
00010 #include "Sacado_ParameterRegistration.hpp"
00011 #include "Albany_Utils.hpp"
00012 
00013 namespace LCM {
00014 
00015 template<typename EvalT, typename Traits>
00016 Time<EvalT, Traits>::
00017 Time(Teuchos::ParameterList& p) :
00018   time      (p.get<std::string>("Time Name"),
00019        p.get<Teuchos::RCP<PHX::DataLayout> >("Workset Scalar Data Layout")),
00020   deltaTime (p.get<std::string>("Delta Time Name"),
00021        p.get<Teuchos::RCP<PHX::DataLayout> >("Workset Scalar Data Layout")),
00022   timeValue(0.0)
00023 {
00024   if (p.isType<bool>("Disable Transient"))
00025     enableTransient = !p.get<bool>("Disable Transient");
00026   else enableTransient = true;
00027 
00028   // Add Time as a Sacado-ized parameter
00029   Teuchos::RCP<ParamLib> paramLib = 
00030     p.get< Teuchos::RCP<ParamLib> >("Parameter Library", Teuchos::null);
00031   new Sacado::ParameterRegistration<EvalT, SPL_Traits>("Time", this, paramLib);
00032 
00033   this->addEvaluatedField(time);
00034   this->addEvaluatedField(deltaTime);
00035 
00036   timeName = p.get<std::string>("Time Name")+"_old";;
00037   this->setName("Time"+PHX::TypeString<EvalT>::value);
00038 }
00039 
00040 // **********************************************************************
00041 template<typename EvalT, typename Traits>
00042 void Time<EvalT, Traits>::
00043 postRegistrationSetup(typename Traits::SetupData d,
00044                       PHX::FieldManager<Traits>& fm)
00045 {
00046   this->utils.setFieldData(time,fm);
00047   this->utils.setFieldData(deltaTime,fm);
00048 }
00049 
00050 // **********************************************************************
00051 template<typename EvalT, typename Traits>
00052 void Time<EvalT, Traits>::
00053 evaluateFields(typename Traits::EvalData workset)
00054 {
00055   time(0) = workset.current_time;
00056 
00057   Albany::MDArray timeOld = (*workset.stateArrayPtr)[timeName];
00058   deltaTime(0) = time(0) - timeOld(0);
00059   //std::cout << "time = " << time(0) << ", timeOld = " << timeOld(0) << "\n";
00060 }
00061 
00062 // **********************************************************************
00063 template<typename EvalT,typename Traits>
00064 typename Time<EvalT,Traits>::ScalarT& 
00065 Time<EvalT,Traits>::getValue(const std::string &n)
00066 {
00067   return timeValue;
00068 }
00069 
00070 // **********************************************************************
00071 // **********************************************************************
00072 }
00073 

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