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

QCAD_EvaluatorTools.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 #ifndef QCAD_EVALUATORTOOLS_HPP
00008 #define QCAD_EVALUATORTOOLS_HPP
00009 
00014 namespace QCAD 
00015 {
00016   template<typename EvalT, typename Traits> class EvaluatorTools;
00017 
00019 
00020   // Residual
00021   template<typename Traits>
00022   class EvaluatorTools<PHAL::AlbanyTraits::Residual, Traits>
00023   {
00024   public:
00025     typedef typename PHAL::AlbanyTraits::Residual::ScalarT ScalarT;
00026     typedef typename PHAL::AlbanyTraits::Residual::MeshScalarT MeshScalarT;
00027     
00028     EvaluatorTools();  
00029     double getDoubleValue(const ScalarT& t) const;    
00030     double getMeshDoubleValue(const MeshScalarT& t) const;    
00031     std::string getEvalType() const;
00032   };
00033 
00034 
00035   // Jacobian
00036   template<typename Traits>
00037   class EvaluatorTools<PHAL::AlbanyTraits::Jacobian, Traits>
00038   {
00039   public:
00040     typedef typename PHAL::AlbanyTraits::Jacobian::ScalarT ScalarT;
00041     typedef typename PHAL::AlbanyTraits::Jacobian::MeshScalarT MeshScalarT;
00042     
00043     EvaluatorTools();  
00044     double getDoubleValue(const ScalarT& t) const;    
00045     double getMeshDoubleValue(const MeshScalarT& t) const;
00046     std::string getEvalType() const;
00047   };
00048 
00049   
00050   // Tangent
00051   template<typename Traits>
00052   class EvaluatorTools<PHAL::AlbanyTraits::Tangent, Traits>
00053   {
00054   public:
00055     typedef typename PHAL::AlbanyTraits::Tangent::ScalarT ScalarT;
00056     typedef typename PHAL::AlbanyTraits::Tangent::MeshScalarT MeshScalarT;
00057     
00058     EvaluatorTools();  
00059     double getDoubleValue(const ScalarT& t) const;
00060     double getMeshDoubleValue(const MeshScalarT& t) const;    
00061     std::string getEvalType() const;
00062   };
00063 
00064 
00065 #ifdef ALBANY_SG_MP
00066   // Stochastic Galerkin Residual
00067   template<typename Traits>
00068   class EvaluatorTools<PHAL::AlbanyTraits::SGResidual, Traits>
00069   {
00070   public:
00071     typedef typename PHAL::AlbanyTraits::SGResidual::ScalarT ScalarT;
00072     typedef typename PHAL::AlbanyTraits::SGResidual::MeshScalarT MeshScalarT;
00073     
00074     EvaluatorTools();  
00075     double getDoubleValue(const ScalarT& t) const;
00076     double getMeshDoubleValue(const MeshScalarT& t) const;    
00077     std::string getEvalType() const;
00078   };
00079 
00080   
00081   // Stochastic Galerkin Jacobian
00082   template<typename Traits>
00083   class EvaluatorTools<PHAL::AlbanyTraits::SGJacobian, Traits>
00084   {
00085   public:
00086     typedef typename PHAL::AlbanyTraits::SGJacobian::ScalarT ScalarT;
00087     typedef typename PHAL::AlbanyTraits::SGJacobian::MeshScalarT MeshScalarT;
00088     
00089     EvaluatorTools();  
00090     double getDoubleValue(const ScalarT& t) const;
00091     double getMeshDoubleValue(const MeshScalarT& t) const;    
00092     std::string getEvalType() const;
00093   };
00094 
00095   // Stochastic Galerkin Tangent
00096   template<typename Traits>
00097   class EvaluatorTools<PHAL::AlbanyTraits::SGTangent, Traits>
00098   {
00099   public:
00100     typedef typename PHAL::AlbanyTraits::SGTangent::ScalarT ScalarT;
00101     typedef typename PHAL::AlbanyTraits::SGTangent::MeshScalarT MeshScalarT;
00102     
00103     EvaluatorTools();  
00104     double getDoubleValue(const ScalarT& t) const; 
00105     double getMeshDoubleValue(const MeshScalarT& t) const;
00106     std::string getEvalType() const;
00107   };
00108 
00109   
00110   // Multi-point residual
00111   template<typename Traits>
00112   class EvaluatorTools<PHAL::AlbanyTraits::MPResidual, Traits>
00113   {
00114   public:
00115     typedef typename PHAL::AlbanyTraits::MPResidual::ScalarT ScalarT;
00116     typedef typename PHAL::AlbanyTraits::MPResidual::MeshScalarT MeshScalarT;
00117     
00118     EvaluatorTools();  
00119     double getDoubleValue(const ScalarT& t) const;
00120     double getMeshDoubleValue(const MeshScalarT& t) const;    
00121     std::string getEvalType() const;
00122   };
00123 
00124 
00125   // Multi-point Jacobian
00126   template<typename Traits>
00127   class EvaluatorTools<PHAL::AlbanyTraits::MPJacobian, Traits>
00128   {
00129   public:
00130     typedef typename PHAL::AlbanyTraits::MPJacobian::ScalarT ScalarT;
00131     typedef typename PHAL::AlbanyTraits::MPJacobian::MeshScalarT MeshScalarT;
00132     
00133     EvaluatorTools();  
00134     double getDoubleValue(const ScalarT& t) const;
00135     double getMeshDoubleValue(const MeshScalarT& t) const;    
00136     std::string getEvalType() const;
00137   };
00138 
00139   // Multi-point Tangent
00140   template<typename Traits>
00141   class EvaluatorTools<PHAL::AlbanyTraits::MPTangent, Traits>
00142   {
00143   public:
00144     typedef typename PHAL::AlbanyTraits::MPTangent::ScalarT ScalarT;
00145     typedef typename PHAL::AlbanyTraits::MPTangent::MeshScalarT MeshScalarT;
00146     
00147     EvaluatorTools();  
00148     double getDoubleValue(const ScalarT& t) const;
00149     double getMeshDoubleValue(const MeshScalarT& t) const;    
00150     std::string getEvalType() const;
00151   };
00152 #endif //ALBANY_SG_MP
00153   
00154 }
00155 
00156 #endif

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