Line data Source code
1 : // rbOOmit: An implementation of the Certified Reduced Basis method. 2 : // Copyright (C) 2009, 2010 David J. Knezevic 3 : 4 : // This file is part of rbOOmit. 5 : 6 : // rbOOmit is free software; you can redistribute it and/or 7 : // modify it under the terms of the GNU Lesser General Public 8 : // License as published by the Free Software Foundation; either 9 : // version 2.1 of the License, or (at your option) any later version. 10 : 11 : // rbOOmit is distributed in the hope that it will be useful, 12 : // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 : // Lesser General Public License for more details. 15 : 16 : // You should have received a copy of the GNU Lesser General Public 17 : // License along with this library; if not, write to the Free Software 18 : // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 : 20 : #include "libmesh/transient_rb_theta_expansion.h" 21 : #include "libmesh/rb_theta.h" 22 : 23 : namespace libMesh 24 : { 25 : 26 434490 : Number TransientRBThetaExpansion::eval_M_theta(unsigned int q, 27 : const RBParameters & mu) const 28 : { 29 434490 : libmesh_error_msg_if(q >= get_n_M_terms(), "Error: We must have q < get_n_M_terms in eval_M_theta."); 30 22014 : libmesh_assert(_M_theta_vector[q]); 31 : 32 456504 : return _M_theta_vector[q]->evaluate( mu ); 33 : } 34 : 35 1056762 : unsigned int TransientRBThetaExpansion::get_n_M_terms() const 36 : { 37 1099298 : return cast_int<unsigned int>(_M_theta_vector.size()); 38 : } 39 : 40 140 : void TransientRBThetaExpansion::attach_M_theta(RBTheta * theta_q_m) 41 : { 42 4 : libmesh_assert(theta_q_m); 43 : 44 140 : _M_theta_vector.push_back(theta_q_m); 45 140 : } 46 : 47 : 48 : }