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

Albany_ODEProblem.cpp

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 "Albany_ODEProblem.hpp"
00008 
00009 #include "Shards_CellTopology.hpp"
00010 #include "PHAL_FactoryTraits.hpp"
00011 #include "Albany_Utils.hpp"
00012 #include "Albany_ProblemUtils.hpp"
00013 
00014 
00015 Albany::ODEProblem::
00016 ODEProblem( const Teuchos::RCP<Teuchos::ParameterList>& params_,
00017              const Teuchos::RCP<ParamLib>& paramLib_,
00018              const int numDim_) :
00019   Albany::AbstractProblem(params_, paramLib_, 2),
00020   numDim(numDim_)
00021 {
00022 }
00023 
00024 Albany::ODEProblem::
00025 ~ODEProblem()
00026 {
00027 }
00028 
00029 void
00030 Albany::ODEProblem::
00031 buildProblem(
00032   Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct> >  meshSpecs,
00033   Albany::StateManager& stateMgr)
00034 {
00035   /* Construct All Phalanx Evaluators */
00036   TEUCHOS_TEST_FOR_EXCEPTION(meshSpecs.size()!=1,std::logic_error,"Problem supports one Material Block");
00037   fm.resize(1);
00038   fm[0]  = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>);
00039   buildEvaluators(*fm[0], *meshSpecs[0], stateMgr, BUILD_RESID_FM, 
00040       Teuchos::null);
00041   constructDirichletEvaluators(*meshSpecs[0]);
00042 }
00043 
00044 Teuchos::Array< Teuchos::RCP<const PHX::FieldTag> >
00045 Albany::ODEProblem::
00046 buildEvaluators(
00047   PHX::FieldManager<PHAL::AlbanyTraits>& fm0,
00048   const Albany::MeshSpecsStruct& meshSpecs,
00049   Albany::StateManager& stateMgr,
00050   Albany::FieldManagerChoice fmchoice,
00051   const Teuchos::RCP<Teuchos::ParameterList>& responseList)
00052 {
00053   // Call constructeEvaluators<EvalT>(*rfm[0], *meshSpecs[0], stateMgr);
00054   // for each EvalT in PHAL::AlbanyTraits::BEvalTypes
00055   ConstructEvaluatorsOp<ODEProblem> op(
00056     *this, fm0, meshSpecs, stateMgr, fmchoice, responseList);
00057   boost::mpl::for_each<PHAL::AlbanyTraits::BEvalTypes>(op);
00058   return *op.tags;
00059 }
00060 
00061 void
00062 Albany::ODEProblem::constructDirichletEvaluators(
00063         const Albany::MeshSpecsStruct& meshSpecs)
00064 {
00065    // Construct Dirichlet evaluators for all nodesets and names
00066    std::vector<std::string> dirichletNames(neq);
00067    dirichletNames[0] = "X";
00068    dirichletNames[1] = "Y";
00069    Albany::BCUtils<Albany::DirichletTraits> dirUtils;
00070    dfm = dirUtils.constructBCEvaluators(meshSpecs.nsNames, dirichletNames,
00071                                           this->params, this->paramLib);
00072 }
00073 
00074 Teuchos::RCP<const Teuchos::ParameterList>
00075 Albany::ODEProblem::getValidProblemParameters() const
00076 {
00077   Teuchos::RCP<Teuchos::ParameterList> validPL =
00078     this->getGenericProblemParams("ValidODEProblemParams");
00079 
00080   return validPL;
00081 }
00082 

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