// RK.h // // Original author: Yurii Il'inskii // // Modifications: // 05 Dec 1996: Modified by Ronald Kumon to realign text and add comments #ifndef RK_H #define RK_H extern int nm, nm2, DiagnosticsOn; extern double A; // Dissipation factor extern double D; // Dispersion factor extern double kxbar; // Wavenumber*shock formation distance extern double *V; extern int statflag; extern char stepfilename[81]; extern char statfilename[81]; extern float *nvec; // Harmonic number vector extern float *normdB; // Vector for plotting amplitude norms in dB extern float *normdBold; // Vector for erasing old normdB values extern double hi; // Initial step size extern double eps; // Accuracy required for each step extern double tiny; // Minimum scale factor for integration void odeint(double *ystart,int nvar,double x1,double x2,double eps, double h1,double hmin,int *nok,int *nbad, void(*derivs)(const double, const int, double *, double *), void(*rkqc)(double *, double *, int, double *, double, double, double *, double *, double *, void(*)(const double, const int, double *, double *))); void rkfixed(double *ystart,int nvar,double x1,double x2,double dx, void(*derivs)(const double, const int, double *, double *), const float *nvec, float *normdB, float *normdBold); void rkqc(double *y, double *dydx, int n, double *x, double htry, double eps, double *yscal, double *hdid, double *hnext, void (*derivs)(const double, const int, double *, double *)); void rk4(double *y, double *dydx, int n, double x, double h, double *yout, void (*derivs)(const double, const int, double *, double *)); void derivs(const double x, const int nvar, double *V, double *dvdx); void normdBproc(const int NM, const double *V, float *normdB); void eraseAndDrawGraph(const int N, const float *x, const float *y, const float t, float *yold); #endif //RK_H