00001 /* 00002 * This file is part of ACADO Toolkit. 00003 * 00004 * ACADO Toolkit -- A Toolkit for Automatic Control and Dynamic Optimization. 00005 * Copyright (C) 2008-2014 by Boris Houska, Hans Joachim Ferreau, 00006 * Milan Vukov, Rien Quirynen, KU Leuven. 00007 * Developed within the Optimization in Engineering Center (OPTEC) 00008 * under supervision of Moritz Diehl. All rights reserved. 00009 * 00010 * ACADO Toolkit is free software; you can redistribute it and/or 00011 * modify it under the terms of the GNU Lesser General Public 00012 * License as published by the Free Software Foundation; either 00013 * version 3 of the License, or (at your option) any later version. 00014 * 00015 * ACADO Toolkit is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * Lesser General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Lesser General Public 00021 * License along with ACADO Toolkit; if not, write to the Free Software 00022 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00023 * 00024 */ 00025 00026 00027 00034 #include <acado/code_generation/integrators/explicit_euler_export.hpp> 00035 00036 #include <acado/code_generation/export_algorithm_factory.hpp> 00037 00038 BEGIN_NAMESPACE_ACADO 00039 00040 00041 // 00042 // PUBLIC MEMBER FUNCTIONS: 00043 // 00044 00045 ExplicitEulerExport::ExplicitEulerExport( UserInteraction* _userInteraction, 00046 const std::string& _commonHeaderName 00047 ) : ExplicitRungeKuttaExport( _userInteraction,_commonHeaderName ) 00048 { 00049 } 00050 00051 00052 ExplicitEulerExport::ExplicitEulerExport( const ExplicitEulerExport& arg 00053 ) : ExplicitRungeKuttaExport( arg ) 00054 { 00055 copy( arg ); 00056 } 00057 00058 00059 ExplicitEulerExport::~ExplicitEulerExport( ) 00060 { 00061 clear( ); 00062 } 00063 00064 00065 // PROTECTED: 00066 00067 // 00068 // Register the integrator 00069 // 00070 00071 IntegratorExport* createExplicitEulerExport( UserInteraction* _userInteraction, 00072 const std::string &_commonHeaderName) 00073 { 00074 DMatrix AA(1,1); 00075 DVector bb(1); 00076 DVector cc(1); 00077 00078 AA(0,0) = 0.0; 00079 00080 bb(0) = 1.0; 00081 00082 cc(0) = 0.0; 00083 00084 ExplicitRungeKuttaExport* integrator = createExplicitRungeKuttaExport(_userInteraction, _commonHeaderName); 00085 integrator->initializeButcherTableau(AA, bb, cc); 00086 00087 return integrator; 00088 } 00089 00090 00091 CLOSE_NAMESPACE_ACADO 00092 00093 // end of file.