Based on the original Rocket Workbench on SourceForge in CVS at: https://sourceforge.net/projects/rocketworkbench
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
1.8 KiB

/* rk4.h - Simulation of rocket flight */
/* Copyright (C) 2000 */
/* Antoine Lefebvre <antoine.lefebvre@polymtl.ca> */
/* This program is free software; you can redistribute it and/or modify*/
/* it under the terms of the GNU General Public License as published by*/
/* the Free Software Foundation; either version 2 of the License, or */
/* (at your option) any later version. */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* You should have received a copy of the GNU General Public License */
/* along with this program; if not, write to the Free Software */
/* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#if !defined (rk4_h)
#define rk4_h 1
#include "c++rocket.h"
extern int model_1(int neq, double time,
double* z, double* dy,
int ierr);
extern int model_2(int neq, double time,
double* z, double* dy,
int ierr);
typedef int (*ModelFunc_t) (int, double,
double*, double*, int);
extern "C" int rk4( int (*f)(int neq, double time,
double *y, double *dy,
int ierr),
int neq, double step, double duration,
double *ic, double **y );
class rk4_solver
{
private:
void *md; // pointer to the model function
int memory;
double time;
int neq;
int length;
double **ans;
public:
rk4_solver(Model_t model);
~rk4_solver();
void print();
void export_octave(char *filename);
int solve(double *st, double duration, double step);
};
#endif