Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #if !defined(LCM_CM_Residual_Fine_hpp)
00008 #define LCM_CM_Residual_Fine_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 LCM
00018 {
00024 template<typename EvalT, typename Traits>
00025 class CMResidualFine:
00026 public PHX::EvaluatorWithBaseImpl<Traits>,
00027 public PHX::EvaluatorDerived<EvalT, Traits>
00028 {
00029
00030 public:
00031
00032 typedef typename EvalT::ScalarT ScalarT;
00033 typedef typename EvalT::MeshScalarT MeshScalarT;
00034
00038 CMResidualFine(
00039 Teuchos::ParameterList & p,
00040 Teuchos::RCP<Albany::Layouts> const & dl);
00041
00045 void
00046 postRegistrationSetup(
00047 typename Traits::SetupData d,
00048 PHX::FieldManager<Traits> & vm);
00049
00053 void
00054 evaluateFields(typename Traits::EvalData d);
00055
00056 private:
00057
00061 PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> stress_;
00062
00066 PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> def_grad_;
00067
00071 PHX::MDField<MeshScalarT, Cell, Node, QuadPoint, Dim> w_grad_bf_;
00072
00076 PHX::MDField<MeshScalarT, Cell, Node, QuadPoint> w_bf_;
00077
00081 PHX::MDField<ScalarT, Cell, QuadPoint, Dim> body_force_;
00082
00086 PHX::MDField<ScalarT, Cell, Node, Dim> residual_;
00087
00091 std::size_t num_nodes_;
00092
00096 std::size_t num_pts_;
00097
00101 std::size_t num_dims_;
00102
00106 bool have_body_force_;
00107
00108 };
00109
00110 }
00111
00112 #endif // LCM_CM_Residual_Fine_hpp