$extrastylesheet
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