Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef ALBANY_EVALUATORUTILS_HPP
00008 #define ALBANY_EVALUATORUTILS_HPP
00009
00010 #include <vector>
00011 #include <string>
00012
00013 #include "Teuchos_RCP.hpp"
00014 #include "Teuchos_ParameterList.hpp"
00015
00016 #include "Phalanx.hpp"
00017 #include "Albany_DataTypes.hpp"
00018 #include "PHAL_AlbanyTraits.hpp"
00019
00020 #include "Teuchos_VerboseObject.hpp"
00021
00022 #include "Albany_ProblemUtils.hpp"
00023
00024 #include "Intrepid_Basis.hpp"
00025 #include "Intrepid_FieldContainer.hpp"
00026 #include "Intrepid_DefaultCubatureFactory.hpp"
00027 #include "Shards_CellTopology.hpp"
00028
00029
00030 namespace Albany {
00034 template<typename EvalT, typename Traits>
00035 class EvaluatorUtils {
00036
00037 public:
00038
00039 EvaluatorUtils(Teuchos::RCP<Albany::Layouts> dl);
00040
00043 Teuchos::RCP< PHX::Evaluator<Traits> >
00044 constructGatherSolutionEvaluator(
00045 bool isVectorField,
00046 Teuchos::ArrayRCP<std::string> dof_names,
00047 Teuchos::ArrayRCP<std::string> dof_names_dot,
00048 int offsetToFirstDOF=0);
00049
00052 Teuchos::RCP< PHX::Evaluator<Traits> >
00053 constructGatherSolutionEvaluator_withAcceleration(
00054 bool isVectorField,
00055 Teuchos::ArrayRCP<std::string> dof_names,
00056 Teuchos::ArrayRCP<std::string> dof_names_dot,
00057 Teuchos::ArrayRCP<std::string> dof_names_dotdot,
00058 int offsetToFirstDOF=0);
00059
00061 Teuchos::RCP< PHX::Evaluator<Traits> >
00062 constructGatherSolutionEvaluator_noTransient(
00063 bool isVectorField,
00064 Teuchos::ArrayRCP<std::string> dof_names,
00065 int offsetToFirstDOF=0);
00066
00069 Teuchos::RCP< PHX::Evaluator<Traits> >
00070 constructScatterResidualEvaluator(
00071 bool isVectorField,
00072 Teuchos::ArrayRCP<std::string> resid_names,
00073 int offsetToFirstDOF=0, std::string scatterName="Scatter");
00074
00079
00080
00081
00082 Teuchos::RCP< PHX::Evaluator<Traits> >
00083 constructDOFInterpolationEvaluator(
00084 std::string& dof_names, int offsetToFirstDOF=0);
00086 Teuchos::RCP< PHX::Evaluator<Traits> >
00087 constructDOFGradInterpolationEvaluator(
00088 std::string& dof_names, int offsetToFirstDOF=0);
00089
00091 Teuchos::RCP< PHX::Evaluator<Traits> >
00092 constructDOFGradInterpolationEvaluator_noDeriv(
00093 std::string& dof_names);
00094
00096 Teuchos::RCP< PHX::Evaluator<Traits> >
00097 constructDOFVecInterpolationEvaluator(
00098 std::string& dof_names, int offsetToFirstDOF=0);
00100 Teuchos::RCP< PHX::Evaluator<Traits> >
00101 constructDOFVecGradInterpolationEvaluator(
00102 std::string& dof_names, int offsetToFirstDOF=0);
00103
00106 Teuchos::RCP< PHX::Evaluator<Traits> >
00107 constructGatherCoordinateVectorEvaluator();
00108
00111 Teuchos::RCP< PHX::Evaluator<Traits> >
00112 constructGatherSHeightEvaluator();
00113
00116 Teuchos::RCP< PHX::Evaluator<Traits> >
00117 constructGatherTemperatureEvaluator();
00118
00121 Teuchos::RCP< PHX::Evaluator<Traits> >
00122 constructGatherFlowFactorEvaluator();
00123
00126 Teuchos::RCP< PHX::Evaluator<Traits> >
00127 constructGatherSurfaceVelocityEvaluator();
00128
00131 Teuchos::RCP< PHX::Evaluator<Traits> >
00132 constructGatherVelocityRMSEvaluator();
00133
00136 Teuchos::RCP< PHX::Evaluator<Traits> >
00137 constructMapToPhysicalFrameEvaluator(
00138 const Teuchos::RCP<shards::CellTopology>& cellType,
00139 const Teuchos::RCP<Intrepid::Cubature<RealType> > cubature);
00140
00143 Teuchos::RCP< PHX::Evaluator<Traits> >
00144 constructComputeBasisFunctionsEvaluator(
00145 const Teuchos::RCP<shards::CellTopology>& cellType,
00146 const Teuchos::RCP<Intrepid::Basis<RealType, Intrepid::FieldContainer<RealType> > > intrepidBasis,
00147 const Teuchos::RCP<Intrepid::Cubature<RealType> > cubature);
00148
00149 private:
00150
00152 Teuchos::RCP<Albany::Layouts> dl;
00153
00154 };
00155 }
00156
00157 #endif