Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef PHAL_RESPONSE_FIELD_INTEGRAL_HPP
00008 #define PHAL_RESPONSE_FIELD_INTEGRAL_HPP
00009
00010 #include "PHAL_SeparableScatterScalarResponse.hpp"
00011
00012 namespace PHAL {
00016 template<typename EvalT, typename Traits>
00017 class ResponseFieldIntegral :
00018 public PHAL::SeparableScatterScalarResponse<EvalT,Traits>
00019 {
00020 public:
00021 typedef typename EvalT::ScalarT ScalarT;
00022 typedef typename EvalT::MeshScalarT MeshScalarT;
00023
00024 ResponseFieldIntegral(Teuchos::ParameterList& p,
00025 const Teuchos::RCP<Albany::Layouts>& dl);
00026
00027 void postRegistrationSetup(typename Traits::SetupData d,
00028 PHX::FieldManager<Traits>& vm);
00029
00030 void preEvaluate(typename Traits::PreEvalData d);
00031
00032 void evaluateFields(typename Traits::EvalData d);
00033
00034 void postEvaluate(typename Traits::PostEvalData d);
00035
00036 private:
00037 Teuchos::RCP<const Teuchos::ParameterList> getValidResponseParameters() const;
00038
00039 PHX::MDField<ScalarT> field;
00040 PHX::MDField<MeshScalarT> coordVec;
00041 PHX::MDField<MeshScalarT> weights;
00042 PHX::DataLayout::size_type field_rank;
00043 std::vector<PHX::DataLayout::size_type> field_dims;
00044 Teuchos::Array<int> field_components;
00045 std::size_t numQPs;
00046 std::size_t numDims;
00047
00048 std::vector<std::string> ebNames;
00049 double scaling;
00050 bool limitX, limitY, limitZ;
00051 double xmin, xmax, ymin, ymax, zmin, zmax;
00052 };
00053
00054 }
00055
00056 #endif