Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #if !defined(PHAL_IDENTITYCOORDINATEFUNCTIONTRAITS_HPP)
00009 #define PHAL_IDENTITYCOORDINATEFUNCTIONTRAITS_HPP
00010
00011 #include <Teuchos_RCP.hpp>
00012 #include <Teuchos_ParameterList.hpp>
00013 #include <Teuchos_VerboseObject.hpp>
00014
00015 #include <Sacado_ScalarParameterLibrary.hpp>
00016
00017 #include "PHAL_AlbanyTraits.hpp"
00018
00019 namespace PHAL {
00020
00024
00025 template<typename EvalT>
00026 class IdentityCoordFunctionTraits {
00027
00028 public:
00029
00030 typedef typename EvalT::ScalarT ScalarT;
00031
00035 IdentityCoordFunctionTraits(Teuchos::ParameterList& params_);
00036
00040 ~IdentityCoordFunctionTraits() {};
00041
00042 void computeBCs(double* coord, std::vector<ScalarT>& BCvals,
00043 const RealType time);
00044
00045 int getNumComponents() {
00046 return numEqn;
00047 }
00048
00049
00050 protected:
00051
00052
00053 int numEqn;
00054
00055
00056 int eqnOffset;
00057
00058 private:
00059
00061 IdentityCoordFunctionTraits();
00062 IdentityCoordFunctionTraits(const IdentityCoordFunctionTraits&);
00063
00065 IdentityCoordFunctionTraits& operator=(const IdentityCoordFunctionTraits&);
00066
00067 };
00068 }
00069
00070
00071 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL(name) \
00072 template class name<PHAL::AlbanyTraits::Residual>;
00073 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN(name) \
00074 template class name<PHAL::AlbanyTraits::Jacobian>;
00075 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_TANGENT(name) \
00076 template class name<PHAL::AlbanyTraits::Tangent>;
00077
00078 #ifdef ALBANY_SG_MP
00079 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_SGRESIDUAL(name) \
00080 template class name<PHAL::AlbanyTraits::SGResidual>;
00081 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_SGJACOBIAN(name) \
00082 template class name<PHAL::AlbanyTraits::SGJacobian>;
00083 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_SGTANGENT(name) \
00084 template class name<PHAL::AlbanyTraits::SGTangent>;
00085 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_MPRESIDUAL(name) \
00086 template class name<PHAL::AlbanyTraits::MPResidual>;
00087 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_MPJACOBIAN(name) \
00088 template class name<PHAL::AlbanyTraits::MPJacobian>;
00089 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_MPTANGENT(name) \
00090 template class name<PHAL::AlbanyTraits::MPTangent>;
00091 #endif //ALBANY_SG_MP
00092
00093 #ifdef ALBANY_SG_MP
00094 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS(name) \
00095 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL(name) \
00096 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN(name) \
00097 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_TANGENT(name) \
00098 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_SGRESIDUAL(name) \
00099 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_SGJACOBIAN(name) \
00100 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_SGTANGENT(name) \
00101 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_MPRESIDUAL(name) \
00102 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_MPJACOBIAN(name) \
00103 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_MPTANGENT(name)
00104 #else
00105 #define COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS(name) \
00106 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_RESIDUAL(name) \
00107 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_JACOBIAN(name) \
00108 COORD_FUNC_INSTANTIATE_TEMPLATE_CLASS_TANGENT(name)
00109 #endif //ALBANY_SG_MP
00110
00111
00112 #endif // PHAL_IDENTITYCOORDINATEFUNCTIONTRAITS_HPP