$extrastylesheet
00001 // rbOOmit: An implementation of the Certified Reduced Basis method. 00002 // Copyright (C) 2009, 2010 David J. Knezevic 00003 00004 // This file is part of rbOOmit. 00005 00006 // rbOOmit is free software; you can redistribute it and/or 00007 // modify it under the terms of the GNU Lesser General Public 00008 // License as published by the Free Software Foundation; either 00009 // version 2.1 of the License, or (at your option) any later version. 00010 00011 // rbOOmit is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 // Lesser General Public License for more details. 00015 00016 // You should have received a copy of the GNU Lesser General Public 00017 // License along with this library; if not, write to the Free Software 00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 00020 #ifndef LIBMESH_TRANSIENT_RB_THETA_EXPANSION_H 00021 #define LIBMESH_TRANSIENT_RB_THETA_EXPANSION_H 00022 00023 // rbOOmit includes 00024 #include "libmesh/rb_theta_expansion.h" 00025 00026 // libMesh includes 00027 00028 // C++ includes 00029 00030 00031 namespace libMesh 00032 { 00033 00041 // ------------------------------------------------------------ 00042 // TransientRBThetaExpansion class definition 00043 class TransientRBThetaExpansion : public RBThetaExpansion 00044 { 00045 public: 00046 00050 TransientRBThetaExpansion(); 00051 00055 typedef RBThetaExpansion Parent; 00056 00062 virtual Number eval_M_theta(unsigned int q, 00063 const RBParameters& mu); 00064 00069 virtual unsigned int get_n_M_terms() 00070 { return cast_int<unsigned int>(_M_theta_vector.size()); } 00071 00076 virtual void attach_M_theta(RBTheta* theta_q_m); 00077 00078 private: 00079 00083 std::vector<RBTheta*> _M_theta_vector; 00084 00085 }; 00086 00087 } 00088 00089 #endif // LIBMESH_TRANSIENT_RB_THETA_EXPANSION_H