Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef FELIX_RESPONSESURFACEVELOCITYMISMATCH_HPP
00008 #define FELIX_RESPONSESURFACEVELOCITYMISMATCH_HPP
00009
00010
00011 #include "PHAL_SeparableScatterScalarResponse.hpp"
00012 #include "Intrepid_CellTools.hpp"
00013 #include "Intrepid_Cubature.hpp"
00014
00015 namespace FELIX {
00019 template<typename EvalT, typename Traits>
00020 class ResponseSurfaceVelocityMismatch :
00021 public PHAL::SeparableScatterScalarResponse<EvalT,Traits>
00022 {
00023 public:
00024 typedef typename EvalT::ScalarT ScalarT;
00025 typedef typename EvalT::MeshScalarT MeshScalarT;
00026
00027 ResponseSurfaceVelocityMismatch(Teuchos::ParameterList& p,
00028 const Teuchos::RCP<Albany::Layouts>& dl);
00029
00030 void postRegistrationSetup(typename Traits::SetupData d,
00031 PHX::FieldManager<Traits>& vm);
00032
00033 void preEvaluate(typename Traits::PreEvalData d);
00034
00035 void evaluateFields(typename Traits::EvalData d);
00036
00037 void postEvaluate(typename Traits::PostEvalData d);
00038
00039 private:
00040 Teuchos::RCP<const Teuchos::ParameterList> getValidResponseParameters() const;
00041
00042 int cellDims, sideDims, numQPsSide, numNodes;
00043
00044 std::size_t numQPs;
00045 std::size_t numDims;
00046 std::size_t numVecDim;
00047
00048 PHX::MDField<ScalarT,Cell,Node,VecDim> velocity_field;
00049 PHX::MDField<RealType,Cell,Node,VecDim> surfaceVelocity_field;
00050 PHX::MDField<RealType,Cell,Node,VecDim> velocityRMS_field;
00051 PHX::MDField<MeshScalarT,Cell,Vertex,Dim> coordVec;
00052
00053 Teuchos::RCP<shards::CellTopology> cellType;
00054 Teuchos::RCP<shards::CellTopology> sideType;
00055 Teuchos::RCP<Intrepid::Cubature<RealType> > cubatureCell;
00056 Teuchos::RCP<Intrepid::Cubature<RealType> > cubatureSide;
00057
00058
00059 Teuchos::RCP<Intrepid::Basis<RealType, Intrepid::FieldContainer<RealType> > > intrepidBasis;
00060
00061
00062 Intrepid::FieldContainer<RealType> cubPointsSide;
00063
00064 Intrepid::FieldContainer<RealType> refPointsSide;
00065 Intrepid::FieldContainer<RealType> cubWeightsSide;
00066 Intrepid::FieldContainer<MeshScalarT> physPointsSide;
00067 Intrepid::FieldContainer<MeshScalarT> jacobianSide;
00068 Intrepid::FieldContainer<MeshScalarT> jacobianSide_det;
00069
00070 Intrepid::FieldContainer<MeshScalarT> physPointsCell;
00071
00072 Intrepid::FieldContainer<MeshScalarT> weighted_measure;
00073 Intrepid::FieldContainer<RealType> basis_refPointsSide;
00074 Intrepid::FieldContainer<MeshScalarT> trans_basis_refPointsSide;
00075 Intrepid::FieldContainer<MeshScalarT> weighted_trans_basis_refPointsSide;
00076
00077 Intrepid::FieldContainer<ScalarT> dofCell;
00078 Intrepid::FieldContainer<ScalarT> dofSide;
00079
00080 Intrepid::FieldContainer<ScalarT> dofCellVec;
00081 Intrepid::FieldContainer<ScalarT> dofSideVec;
00082
00083 Intrepid::FieldContainer<ScalarT> data;
00084
00085 std::string sideSetID;
00086 Teuchos::Array<RealType> inputValues;
00087 };
00088
00089 }
00090
00091 #endif