$extrastylesheet
fe_compute_data.h
Go to the documentation of this file.
00001 // The libMesh Finite Element Library.
00002 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
00003 
00004 // This library is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU Lesser General Public
00006 // License as published by the Free Software Foundation; either
00007 // version 2.1 of the License, or (at your option) any later version.
00008 
00009 // This library is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // Lesser General Public License for more details.
00013 
00014 // You should have received a copy of the GNU Lesser General Public
00015 // License along with this library; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017 
00018 
00019 #ifndef LIBMESH_FE_COMPUTE_DATA_H
00020 #define LIBMESH_FE_COMPUTE_DATA_H
00021 
00022 // Local includes
00023 #include "libmesh/libmesh.h"
00024 
00025 // C++ includes
00026 #include <vector>
00027 
00028 namespace libMesh
00029 {
00030 
00031 // Forward declarations
00032 class EquationSystems;
00033 class Point;
00034 
00046 class FEComputeData
00047 {
00048 public:
00049 
00050 
00051   //------------------------------------------------------
00052   // Conventional FEComputeData
00057   FEComputeData (const EquationSystems& es,
00058                  const Point& pin) :
00059     equation_systems(es),
00060     p(pin)
00061   {
00062     this->clear();
00063   }
00064 
00065 
00066   //----------------------------------------------------
00067   // Input data
00072   const EquationSystems& equation_systems;
00076   const Point& p;
00077 
00078 
00079 
00080   //----------------------------------------------------
00081   // Output data
00085   std::vector<Number> shape;
00086 
00087 
00088 #if defined(LIBMESH_ENABLE_INFINITE_ELEMENTS) && !defined(LIBMESH_USE_COMPLEX_NUMBERS)
00089 
00092   Real phase;
00093 
00094 #endif
00095 
00096 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
00097 
00100   Real speed;
00101 
00102 #endif
00103 
00104 #if defined LIBMESH_ENABLE_INFINITE_ELEMENTS && defined(LIBMESH_USE_COMPLEX_NUMBERS)
00105 
00109   Real frequency;
00110 
00111 #endif
00112 
00116   void clear () ;
00117 
00118 
00123   void init () ;
00124 };
00125 
00126 
00127 } // namespace libMesh
00128 
00129 #endif // LIBMESH_FE_COMPUTE_DATA_H