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

PHAL_ODEResid_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 namespace PHAL {
00008 
00009 //**********************************************************************
00010 template<typename EvalT, typename Traits>
00011 ODEResid<EvalT, Traits>::ODEResid(Teuchos::ParameterList& p) :
00012   X( p.get<std::string>("Variable Name"), 
00013       p.get< Teuchos::RCP<PHX::DataLayout> >("Node Scalar Data Layout") ),
00014   X_dot( p.get<std::string>("Time Derivative Variable Name"), 
00015       p.get< Teuchos::RCP<PHX::DataLayout> >("Node Scalar Data Layout") ),
00016   Y( p.get<std::string>("Y Variable Name"), 
00017       p.get< Teuchos::RCP<PHX::DataLayout> >("Node Scalar Data Layout") ),
00018   Y_dot( p.get<std::string>("Y Time Derivative Variable Name"), 
00019       p.get< Teuchos::RCP<PHX::DataLayout> >("Node Scalar Data Layout") ),
00020   Xoderesid( p.get<std::string>("Residual Name"), 
00021       p.get< Teuchos::RCP<PHX::DataLayout> >("Node Scalar Data Layout") ),
00022   Yoderesid( p.get<std::string>("Y Residual Name"), 
00023       p.get< Teuchos::RCP<PHX::DataLayout> >("Node Scalar Data Layout") )
00024 {
00025   this->addDependentField(X);
00026   this->addDependentField(X_dot);
00027   this->addEvaluatedField(Xoderesid);
00028   this->addDependentField(Y);
00029   this->addDependentField(Y_dot);
00030   this->addEvaluatedField(Yoderesid);
00031   
00032   std::string n = "ODEResid Provider: " + Xoderesid.fieldTag().name();
00033   this->setName(n+PHX::TypeString<EvalT>::value);
00034 }
00035 
00036 //**********************************************************************
00037 template<typename EvalT, typename Traits>
00038 void ODEResid<EvalT, Traits>::
00039 postRegistrationSetup(typename Traits::SetupData d,
00040                       PHX::FieldManager<Traits>& vm)
00041 {
00042   this->utils.setFieldData(X,vm);
00043   this->utils.setFieldData(X_dot,vm);
00044   this->utils.setFieldData(Xoderesid,vm);
00045   this->utils.setFieldData(Y,vm);
00046   this->utils.setFieldData(Y_dot,vm);
00047   this->utils.setFieldData(Yoderesid,vm);
00048 }
00049 
00050 //**********************************************************************
00051 template<typename EvalT, typename Traits>
00052 void ODEResid<EvalT, Traits>::evaluateFields(typename Traits::EvalData workset)
00053 {
00054   Xoderesid(0,0) = 2.0 * X(0,0);
00055   if (workset.transientTerms) 
00056     Xoderesid(0,0) += X_dot(0,0);
00057 
00058   Yoderesid(0,0) = 2.0 * Y(0,0);
00059   if (workset.transientTerms) 
00060     Yoderesid(0,0) += Y_dot(0,0);
00061  }
00062 
00063 //**********************************************************************
00064 }

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