Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef TORSIONBC_HPP
00008 #define TORSIONBC_HPP
00009
00010 #include "Phalanx_ConfigDefs.hpp"
00011 #include "Phalanx_Evaluator_WithBaseImpl.hpp"
00012 #include "Phalanx_Evaluator_Derived.hpp"
00013 #include "Phalanx_MDField.hpp"
00014
00015 #include "Teuchos_ParameterList.hpp"
00016 #include "Epetra_Vector.h"
00017
00018 #include "Sacado_ParameterAccessor.hpp"
00019 #include "PHAL_AlbanyTraits.hpp"
00020 #include "PHAL_Dirichlet.hpp"
00021
00022 namespace LCM {
00028
00029
00030
00031
00032
00033
00034 template<typename EvalT, typename Traits> class TorsionBC;
00035
00036 template <typename EvalT, typename Traits>
00037 class TorsionBC_Base : public PHAL::DirichletBase<EvalT, Traits> {
00038 public:
00039 typedef typename EvalT::ScalarT ScalarT;
00040 TorsionBC_Base(Teuchos::ParameterList& p);
00041 void computeBCs(double* coord, ScalarT& Xval, ScalarT& Yval,
00042 const RealType time);
00043
00044 RealType thetaDot;
00045 RealType X0;
00046 RealType Y0;
00047 };
00048
00049
00050
00051
00052 template<typename Traits>
00053 class TorsionBC<PHAL::AlbanyTraits::Residual,Traits>
00054 : public TorsionBC_Base<PHAL::AlbanyTraits::Residual, Traits> {
00055 public:
00056 TorsionBC(Teuchos::ParameterList& p);
00057 typedef typename PHAL::AlbanyTraits::Residual::ScalarT ScalarT;
00058 void evaluateFields(typename Traits::EvalData d);
00059 };
00060
00061
00062
00063
00064 template<typename Traits>
00065 class TorsionBC<PHAL::AlbanyTraits::Jacobian,Traits>
00066 : public TorsionBC_Base<PHAL::AlbanyTraits::Jacobian, Traits> {
00067 public:
00068 TorsionBC(Teuchos::ParameterList& p);
00069 typedef typename PHAL::AlbanyTraits::Jacobian::ScalarT ScalarT;
00070 void evaluateFields(typename Traits::EvalData d);
00071 };
00072
00073
00074
00075
00076 template<typename Traits>
00077 class TorsionBC<PHAL::AlbanyTraits::Tangent,Traits>
00078 : public TorsionBC_Base<PHAL::AlbanyTraits::Tangent, Traits> {
00079 public:
00080 TorsionBC(Teuchos::ParameterList& p);
00081 typedef typename PHAL::AlbanyTraits::Tangent::ScalarT ScalarT;
00082 void evaluateFields(typename Traits::EvalData d);
00083 };
00084
00085
00086
00087
00088 #ifdef ALBANY_SG_MP
00089 template<typename Traits>
00090 class TorsionBC<PHAL::AlbanyTraits::SGResidual,Traits>
00091 : public TorsionBC_Base<PHAL::AlbanyTraits::SGResidual, Traits> {
00092 public:
00093 TorsionBC(Teuchos::ParameterList& p);
00094 typedef typename PHAL::AlbanyTraits::SGResidual::ScalarT ScalarT;
00095 void evaluateFields(typename Traits::EvalData d);
00096 };
00097
00098
00099
00100
00101 template<typename Traits>
00102 class TorsionBC<PHAL::AlbanyTraits::SGJacobian,Traits>
00103 : public TorsionBC_Base<PHAL::AlbanyTraits::SGJacobian, Traits> {
00104 public:
00105 TorsionBC(Teuchos::ParameterList& p);
00106 typedef typename PHAL::AlbanyTraits::SGJacobian::ScalarT ScalarT;
00107 void evaluateFields(typename Traits::EvalData d);
00108 };
00109
00110
00111
00112
00113 template<typename Traits>
00114 class TorsionBC<PHAL::AlbanyTraits::SGTangent,Traits>
00115 : public TorsionBC_Base<PHAL::AlbanyTraits::SGTangent, Traits> {
00116 public:
00117 TorsionBC(Teuchos::ParameterList& p);
00118 typedef typename PHAL::AlbanyTraits::SGTangent::ScalarT ScalarT;
00119 void evaluateFields(typename Traits::EvalData d);
00120 };
00121
00122
00123
00124
00125 template<typename Traits>
00126 class TorsionBC<PHAL::AlbanyTraits::MPResidual,Traits>
00127 : public TorsionBC_Base<PHAL::AlbanyTraits::MPResidual, Traits> {
00128 public:
00129 TorsionBC(Teuchos::ParameterList& p);
00130 typedef typename PHAL::AlbanyTraits::MPResidual::ScalarT ScalarT;
00131 void evaluateFields(typename Traits::EvalData d);
00132 };
00133
00134
00135
00136
00137 template<typename Traits>
00138 class TorsionBC<PHAL::AlbanyTraits::MPJacobian,Traits>
00139 : public TorsionBC_Base<PHAL::AlbanyTraits::MPJacobian, Traits> {
00140 public:
00141 TorsionBC(Teuchos::ParameterList& p);
00142 typedef typename PHAL::AlbanyTraits::MPJacobian::ScalarT ScalarT;
00143 void evaluateFields(typename Traits::EvalData d);
00144 };
00145
00146
00147
00148
00149 template<typename Traits>
00150 class TorsionBC<PHAL::AlbanyTraits::MPTangent,Traits>
00151 : public TorsionBC_Base<PHAL::AlbanyTraits::MPTangent, Traits> {
00152 public:
00153 TorsionBC(Teuchos::ParameterList& p);
00154 typedef typename PHAL::AlbanyTraits::MPTangent::ScalarT ScalarT;
00155 void evaluateFields(typename Traits::EvalData d);
00156 };
00157 #endif //ALBANY_SG_MP
00158
00159 }
00160
00161 #endif