• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

TorsionBC.hpp

Go to the documentation of this file.
00001 //*****************************************************************//
00002 //    Albany 2.0:  Copyright 2012 Sandia Corporation               //
00003 //    This Software is released under the BSD license detailed     //
00004 //    in the file "license.txt" in the top-level Albany directory  //
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 // * Specialization of the DirichletBase class
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 // Residual 
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 // Jacobian
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 // Tangent
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 // Stochastic Galerkin Residual 
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 // Stochastic Galerkin Jacobian
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 // Stochastic Galerkin Tangent
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 // Multi-point Residual 
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 // Multi-point Jacobian
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 // Multi-point Tangent
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

Generated on Wed Mar 26 2014 18:36:45 for Albany: a Trilinos-based PDE code by  doxygen 1.7.1