Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef AERAS_SURFACEHEIGHT_HPP
00008 #define AERAS_SURFACEHEIGHT_HPP
00009
00010 #include "Phalanx_ConfigDefs.hpp"
00011 #include "Phalanx_Evaluator_WithBaseImpl.hpp"
00012 #include "Phalanx_Evaluator_Derived.hpp"
00013 #include "Phalanx_MDField.hpp"
00014 #include "Sacado_ParameterAccessor.hpp"
00015 #include "Albany_Layouts.hpp"
00016
00017 namespace Aeras {
00024 template<typename EvalT, typename Traits>
00025 class SurfaceHeight : public PHX::EvaluatorWithBaseImpl<Traits>,
00026 public PHX::EvaluatorDerived<EvalT, Traits>,
00027 public Sacado::ParameterAccessor<EvalT, SPL_Traits> {
00028
00029 public:
00030
00031 typedef typename EvalT::ScalarT ScalarT;
00032
00033 SurfaceHeight(const Teuchos::ParameterList& p,
00034 const Teuchos::RCP<Albany::Layouts>& dl);
00035
00036 void postRegistrationSetup(typename Traits::SetupData d,
00037 PHX::FieldManager<Traits>& vm);
00038
00039 void evaluateFields(typename Traits::EvalData d);
00040
00041 ScalarT& getValue(const std::string &n);
00042
00043
00044 private:
00045
00046 typedef typename EvalT::MeshScalarT MeshScalarT;
00047
00048
00049 PHX::MDField<MeshScalarT,Cell,QuadPoint, Dim> sphere_coord;
00050
00051
00052 PHX::MDField<ScalarT,Cell,QuadPoint> hs;
00053
00054 unsigned int numQPs, numDims, numNodes;
00055
00056 ScalarT gravity;
00057
00058 enum SURFHEIGHTTYPE {NONE, MOUNTAIN};
00059 SURFHEIGHTTYPE hs_type;
00060
00061 };
00062
00063 }
00064
00065 #endif