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

PHAL_GatherCoordinateVector.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 PHAL_GATHER_COORDINATEVECTOR_HPP
00008 #define PHAL_GATHER_COORDINATEVECTOR_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 "Albany_Layouts.hpp"
00016 
00017 #include "Teuchos_ParameterList.hpp"
00018 #include "Epetra_Vector.h"
00019 
00020 namespace PHAL {
00030 template<typename EvalT, typename Traits> 
00031 class GatherCoordinateVector : public PHX::EvaluatorWithBaseImpl<Traits>,
00032                           public PHX::EvaluatorDerived<EvalT, Traits>  {
00033   
00034 public:
00035   
00036   GatherCoordinateVector(const Teuchos::ParameterList& p,
00037                               const Teuchos::RCP<Albany::Layouts>& dl);
00038   // Old constructor, still needed by BCs that use PHX Factory
00039   GatherCoordinateVector(const Teuchos::ParameterList& p);
00040   
00041   void postRegistrationSetup(typename Traits::SetupData d,
00042                       PHX::FieldManager<Traits>& vm);
00043   
00044   void evaluateFields(typename Traits::EvalData d);
00045   
00046 private:
00047 
00048   typedef typename EvalT::ScalarT ScalarT;
00049   typedef typename EvalT::MeshScalarT MeshScalarT;
00050 
00051   PHX::MDField<MeshScalarT,Cell,Vertex,Dim> coordVec;
00052  
00053   bool  periodic;
00054   std::size_t worksetSize;
00055   std::size_t numVertices;
00056   std::size_t numDim;
00057 };
00058 
00059 
00060 template<typename Traits> 
00061 class GatherCoordinateVector<PHAL::AlbanyTraits::Tangent, Traits> 
00062                     : public PHX::EvaluatorWithBaseImpl<Traits>,
00063                       public PHX::EvaluatorDerived<PHAL::AlbanyTraits::Tangent, Traits>  {
00064   
00065 public:
00066   
00067   GatherCoordinateVector(const Teuchos::ParameterList& p,
00068                               const Teuchos::RCP<Albany::Layouts>& dl);
00069   GatherCoordinateVector(const Teuchos::ParameterList& p);
00070   
00071   void postRegistrationSetup(typename Traits::SetupData d,
00072                       PHX::FieldManager<Traits>& vm);
00073   
00074   void evaluateFields(typename Traits::EvalData d);
00075   
00076 private:
00077 
00078   typedef typename PHAL::AlbanyTraits::Tangent::ScalarT ScalarT;
00079   typedef typename PHAL::AlbanyTraits::Tangent::MeshScalarT MeshScalarT;
00080 
00081   PHX::MDField<MeshScalarT,Cell,Vertex,Dim> coordVec;
00082  
00083   bool  periodic;
00084   std::size_t worksetSize;
00085   std::size_t numVertices;
00086   std::size_t numDim;
00087 };
00088 }
00089 
00090 #endif

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