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 J_THERMAL_CONDUCTIVITY_HPP 00008 #define J_THERMAL_CONDUCTIVITY_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 00015 #include "Teuchos_ParameterList.hpp" 00016 #include "Epetra_Vector.h" 00017 #include "Teuchos_Array.hpp" 00018 00019 #include "Albany_Layouts.hpp" 00020 00021 #include "QCAD_MaterialDatabase.hpp" 00022 00023 namespace PHAL { 00030 template<typename EvalT, typename Traits> 00031 class JThermConductivity : 00032 public PHX::EvaluatorWithBaseImpl<Traits>, 00033 public PHX::EvaluatorDerived<EvalT, Traits> { 00034 00035 public: 00036 typedef typename EvalT::ScalarT ScalarT; 00037 00038 JThermConductivity(Teuchos::ParameterList& p, 00039 const Teuchos::RCP<Albany::Layouts>& dl); 00040 00041 void postRegistrationSetup(typename Traits::SetupData d, 00042 PHX::FieldManager<Traits>& vm); 00043 00044 void evaluateFields(typename Traits::EvalData d); 00045 00046 private: 00047 00049 Teuchos::RCP<const Teuchos::ParameterList> 00050 getValidJThermCondParameters() const; 00051 00052 std::size_t numQPs; 00053 std::size_t numDims; 00054 PHX::MDField<ScalarT,Cell,QuadPoint> thermalCond; 00055 PHX::MDField<ScalarT,Cell,QuadPoint> Temperature; 00056 00058 std::string type; 00059 00061 ScalarT Qh; 00062 ScalarT R; 00063 ScalarT Cht; 00064 ScalarT Vbar; 00065 00067 Teuchos::RCP<QCAD::MaterialDatabase> materialDB; 00068 00070 const Teuchos::RCP<Albany::Layouts>& dl_; 00071 00072 }; 00073 } 00074 00075 #endif