Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #if !defined(LCM_FirstPK_hpp)
00008 #define LCM_FirstPK_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 {
00025 template<typename EvalT, typename Traits>
00026 class FirstPK:
00027 public PHX::EvaluatorWithBaseImpl<Traits>,
00028 public PHX::EvaluatorDerived<EvalT, Traits>
00029 {
00030
00031 public:
00032
00033 typedef typename EvalT::ScalarT ScalarT;
00034 typedef typename EvalT::MeshScalarT MeshScalarT;
00035
00039 FirstPK(Teuchos::ParameterList& p,
00040 const Teuchos::RCP<Albany::Layouts>& dl);
00041
00045 void
00046 postRegistrationSetup(typename Traits::SetupData d,
00047 PHX::FieldManager<Traits>& vm);
00048
00052 void
00053 evaluateFields(typename Traits::EvalData d);
00054
00055 private:
00056
00060 PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> stress_;
00061
00065 PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> def_grad_;
00066
00070 PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> first_pk_stress_;
00071
00076 PHX::MDField<ScalarT, Cell, QuadPoint> pore_pressure_;
00077
00082 PHX::MDField<ScalarT, Cell, QuadPoint> biot_coeff_;
00083
00087 std::size_t num_pts_;
00088
00092 std::size_t num_dims_;
00093
00097 bool have_pore_pressure_;
00098
00102 bool small_strain_;
00103
00104 };
00105 }
00106
00107 #endif