Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef QCAD_RESPONSECENTEROFMASS_HPP
00008 #define QCAD_RESPONSECENTEROFMASS_HPP
00009
00010 #include "QCAD_MeshRegion.hpp"
00011 #include "PHAL_SeparableScatterScalarResponse.hpp"
00012
00013 namespace QCAD {
00017 template<typename EvalT, typename Traits>
00018 class ResponseCenterOfMass :
00019 public PHAL::SeparableScatterScalarResponse<EvalT,Traits>
00020 {
00021 public:
00022 typedef typename EvalT::ScalarT ScalarT;
00023 typedef typename EvalT::MeshScalarT MeshScalarT;
00024
00025 ResponseCenterOfMass(Teuchos::ParameterList& p,
00026 const Teuchos::RCP<Albany::Layouts>& dl);
00027
00028 void postRegistrationSetup(typename Traits::SetupData d,
00029 PHX::FieldManager<Traits>& vm);
00030
00031 void preEvaluate(typename Traits::PreEvalData d);
00032
00033 void evaluateFields(typename Traits::EvalData d);
00034
00035 void postEvaluate(typename Traits::PostEvalData d);
00036
00037 private:
00038 Teuchos::RCP<const Teuchos::ParameterList> getValidResponseParameters() const;
00039
00040 std::size_t numQPs;
00041 std::size_t numDims;
00042
00043 PHX::MDField<ScalarT> field;
00044 PHX::MDField<MeshScalarT,Cell,QuadPoint,Dim> coordVec;
00045 PHX::MDField<MeshScalarT,Cell,QuadPoint> weights;
00046
00047 std::string fieldName;
00048 Teuchos::RCP< MeshRegion<EvalT, Traits> > opRegion;
00049 };
00050
00051 }
00052
00053 #endif