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

SurfaceVectorResidual.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 SURFACE_VECTOR_RESIDUAL_HPP
00008 #define SURFACE_VECTOR_RESIDUAL_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 #include "Intrepid_CellTools.hpp"
00015 #include "Intrepid_Cubature.hpp"
00016 
00017 #include "Albany_Layouts.hpp"
00018 
00019 namespace LCM
00020 {
00027   template<typename EvalT, typename Traits>
00028   class SurfaceVectorResidual: public PHX::EvaluatorWithBaseImpl<Traits>,
00029       public PHX::EvaluatorDerived<EvalT, Traits>
00030   {
00031 
00032   public:
00033 
00034     SurfaceVectorResidual(Teuchos::ParameterList& p,
00035         const Teuchos::RCP<Albany::Layouts>& dl);
00036 
00037     void postRegistrationSetup(typename Traits::SetupData d,
00038         PHX::FieldManager<Traits>& vm);
00039 
00040     void evaluateFields(typename Traits::EvalData d);
00041 
00042   private:
00043 
00044     typedef typename EvalT::ScalarT ScalarT;
00045     typedef typename EvalT::MeshScalarT MeshScalarT;
00046 
00047     // Input:
00049     ScalarT thickness;
00051     Teuchos::RCP<Intrepid::Cubature<RealType> > cubature;
00053     Teuchos::RCP<Intrepid::Basis<RealType, Intrepid::FieldContainer<RealType> > > intrepidBasis;
00055     PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> stress;
00057     PHX::MDField<ScalarT, Cell, QuadPoint, Dim, Dim> currentBasis;
00059     PHX::MDField<MeshScalarT, Cell, QuadPoint, Dim, Dim> refDualBasis;
00061     PHX::MDField<MeshScalarT, Cell, QuadPoint, Dim> refNormal;
00063     PHX::MDField<MeshScalarT, Cell, QuadPoint, Dim> refArea;
00064 
00066     Intrepid::FieldContainer<RealType> refValues;
00067     Intrepid::FieldContainer<RealType> refGrads;
00068     Intrepid::FieldContainer<RealType> refPoints;
00069     Intrepid::FieldContainer<RealType> refWeights;
00070 
00074     PHX::MDField<ScalarT, Cell, QuadPoint, Dim> traction_;
00075     
00076     // Output:
00077     PHX::MDField<ScalarT, Cell, Node, Dim> force;
00078 
00079     unsigned int worksetSize;
00080     unsigned int numNodes;
00081     unsigned int numQPs;
00082     unsigned int numDims;
00083     unsigned int numPlaneNodes;
00084     unsigned int numPlaneDims;
00085 
00089     bool use_cohesive_traction_;
00090 
00094     bool compute_membrane_forces_;
00095   };
00096 }
00097 
00098 #endif

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