| libode
    Easy to compile, fast ODE integrators as C++ classes | 
Jim Verner's "most efficient" 7/6 pair. More...
#include <ode_vern_76.h>
 
  
| Public Member Functions | |
| OdeVern76 (unsigned long neq) | |
| constructs | |
|  Public Member Functions inherited from ode::OdeEmbedded | |
| OdeEmbedded (unsigned long neq, bool need_jac, int lowerord) | |
| constructs | |
| virtual | ~OdeEmbedded () | 
| destructs | |
| double | get_facsafe () | 
| gets safety factor applied to time step selection | |
| double | get_facmin () | 
| gets minimum allowable fraction change in time step (a number <1) | |
| double | get_facmax () | 
| gets maximum allowable fraction change in time step (a number >1) | |
| void | set_facsafe (double facsafe) | 
| sets safety factor applied to time step selection | |
| void | set_facmin (double facmin) | 
| sets minimum allowable fraction change in time step (a number <1) | |
| void | set_facmax (double facmax) | 
| sets maximum allowable fraction change in time step (a number >1) | |
|  Public Member Functions inherited from ode::OdeAdaptive | |
| OdeAdaptive (unsigned long neq, bool need_jac) | |
| constructs | |
| virtual | ~OdeAdaptive () | 
| destructs | |
| long unsigned | get_nrej () | 
| gets the count of rejected steps | |
| double | get_abstol () | 
| gets the absolute error tolerance | |
| double | get_reltol () | 
| gets the relative error tolerance | |
| double | get_dtmax () | 
| gets the maximum allowable time step | |
| void | set_abstol (double tol) | 
| sets the absolute error tolerance | |
| void | set_reltol (double tol) | 
| sets the relative error tolerance | |
| void | set_tol (double tol) | 
| sets the absolute and relative error tolerance to the same value | |
| void | set_dtmax (double dtmax) | 
| sets the maximum allowable time step | |
| void | solve_adaptive (double tint, double dt0, bool extras=true) | 
| integrates for a specified duration of independent variable without output | |
| void | solve_adaptive (double tint, double dt0, const char *dirout, int inter) | 
| lots of output, solves and stores every "inter" point along the way | |
| void | solve_adaptive (double tint, double dt0, unsigned long nsnap, const char *dirout) | 
| solves and writes evenly spaced snapshots | |
| void | solve_adaptive (double dt0, double *tsnap, unsigned long nsnap, const char *dirout) | 
| solves and writes snapshots at times specified in the tsnap array | |
|  Public Member Functions inherited from ode::OdeBase | |
| OdeBase (unsigned long neq, bool need_jac) | |
| constructs | |
| virtual | ~OdeBase () | 
| destructs | |
| const char * | get_name () | 
| gets the name of the ODE system | |
| const char * | get_method () | 
| gets the name of the solver/method | |
| const char * | get_dirout () | 
| gets output directory string if one has been set | |
| bool | get_quiet () | 
| gets the boolean determining if updates are printed during solves | |
| bool | get_silent_snap () | 
| gets whether to skip writing the solution vector to file when snapping | |
| unsigned long | get_neq () | 
| gets the size of the ODE system | |
| double | get_t () | 
| gets the current value of the independent variable | |
| double | get_dt () | 
| gets the most recent or current time step size | |
| double * | get_sol () | 
| gets a pointer to the whole solution array | |
| double | get_sol (unsigned long i) | 
| gets an element of the solution array | |
| long unsigned | get_nstep () | 
| gets the total number of steps taken | |
| long unsigned | get_neval () | 
| gets the total number of ODE system evaluation | |
| long unsigned | get_icheck () | 
| gets the number of steps after which the solution is checked for integrity | |
| long unsigned | get_nJac () | 
| gets the total number of Jacobian evaluations performed | |
| void | set_t (double t) | 
| sets the "time," or independent variable used to track progress | |
| void | set_sol (unsigned long i, double x) | 
| sets an element of the solution array | |
| void | set_sol (double *sol) | 
| copies an array into the solution array | |
| void | set_name (std::string name) | 
| sets the name of the ODE system | |
| void | set_name (const char *name) | 
| sets the name of the ODE system | |
| void | set_quiet (bool quiet) | 
| sets the boolean determining if updates are printed during solves | |
| void | set_silent_snap (bool silent_snap) | 
| sets whether to skip writing the solution vector to file when snapping | |
| void | set_icheck (unsigned long icheck) | 
| sets the number of steps after which the solution is checked for integrity | |
| void | step (double dt, bool extra=true) | 
| increments the step counter and the time, checks the solution integrity if needed, stores the time step in the object, and executes after_step() if extra is true | |
| void | solve_fixed (double tint, double dt, bool extras=true) | 
| integrates for a specified duration of independent variable without output | |
| void | solve_fixed (double tint, double dt, const char *dirout, int inter=1) | 
| lots of output, solves and stores every "inter" point along the way | |
| void | solve_fixed (double tint, double dt, unsigned long nsnap, const char *dirout) | 
| solves and writes evenly spaced snapshots | |
| void | solve_fixed (double dt, double *tsnap, unsigned long nsnap, const char *dirout) | 
| solves and writes snapshots at times specified in the tsnap array | |
| void | reset (double t, double *sol) | 
| reset to a specified time and initial condition array | |
| Additional Inherited Members | |
|  Protected Member Functions inherited from ode::OdeEmbedded | |
| double | error (double abstol, double reltol) | 
| calculates error estimate with lower and higher order solutions | |
| double | facopt (double err) | 
| calculates factor for "optimal" next time step | |
| virtual void | adapt (double abstol, double reltol) | 
| does the calculations to determine isrej and dtopt | |
| virtual bool | is_rejected () | 
| simply returns isrej | |
| virtual double | dt_adapt () | 
| simply returns dtopt | |
|  Protected Member Functions inherited from ode::OdeAdaptive | |
| void | solve_adaptive_ (double tint, double dt0, bool extra=true) | 
| integrates without output or any counters, trackers, extra functions... | |
| bool | solve_done_adaptive (double tend) | 
| determines whether an adaptive solve is finished | |
| bool | step_adaptive_ (double dt, bool extra=true) | 
| executes a single time and calls all necessary adapting functions | |
| double | dt_adapt_ (double tend) | 
| wrapper around dt_adapt() to perform additional checks | |
|  Protected Member Functions inherited from ode::OdeBase | |
| void | solve_fixed_ (double tint, double dt, bool extra=true) | 
| integrates without output or any counters, trackers, extra functions... | |
| virtual void | ode_fun (double *solin, double *fout)=0 | 
| evaluates the system of ODEs in autonomous form and must be defined by a derived class | |
| virtual void | ode_jac (double *solin, double **Jout) | 
| evaluates the system's Jacobian matrix, also in autonomous form, and can either be defined in a derived class or left to numerical approximation | |
| void | ode_fun_ (double *solin, double *fout) | 
| wrapper, calls ode_fun() and increases the neval counter by one | |
| void | ode_jac_ (double *solin, double **Jout) | 
| wrapper, calls ode_jac() and increments nJac; | |
| virtual void | before_solve () | 
| does any extra stuff before starting a solve | |
| virtual void | after_step (double t) | 
| does any extra stuff after each step | |
| virtual void | after_capture (double t) | 
| does any extra stuff only when a step is captured | |
| virtual void | after_snap (std::string dirout, long isnap, double t) | 
| does any extra stuff after each snap | |
| virtual void | after_solve () | 
| does any extra stuff after completing a solve | |
| void | snap (std::string dirout, long isnap, double tsnap) | 
| writes the current value of the solution to a binary file | |
| bool | solve_done (double dt, double tend) | 
| checks if the solution is within a single time step of the end point | |
| void | check_sol_integrity () | 
| checks solution for nans and infs, exiting the program if they're found | |
| void | check_pre_solve (double tint, double dt) | 
| checks that a solve can be performed with given tend and dt values | |
| void | check_pre_snaps (double dt, double *tsnap, unsigned long nsnap) | 
| checks that snap times are monotonically increasing and > current time | |
|  Protected Attributes inherited from ode::OdeEmbedded | |
| double | facsafe_ | 
| safety factor applied to time step selection | |
| double | facmin_ | 
| minimum allowable fraction change in time step | |
| double | facmax_ | 
| maximum allowable fraction change in time step | |
| double * | solemb_ | 
| embedded solution array | |
|  Protected Attributes inherited from ode::OdeAdaptive | |
| long unsigned | nrej_ | 
| counter for rejected steps | |
| double | abstol_ | 
| absolute error tolerance | |
| double | reltol_ | 
| absolute error tolerance | |
| double | dtmax_ | 
| maximum allowable time step | |
|  Protected Attributes inherited from ode::OdeBase | |
| std::string | name_ | 
| the "name" of the system, which is used for output | |
| std::string | method_ | 
| the "name" of the solver/method, as in "Euler" or "RK4" | |
| std::string | dirout_ | 
| output directory if one is being used by a solver | |
| bool | quiet_ | 
| whether stuff should be printed during a solve | |
| bool | silent_snap_ | 
| whether to skip writing the solution vector to file when snapping but still execute after_snap() | |
| unsigned long | neq_ | 
| number of equations in the system of ODEs | |
| double | t_ | 
| time, initialized to zero | |
| double | dt_ | 
| time step is stored and updated during solves | |
| double * | sol_ | 
| array for the solution, changing over time | |
| long unsigned | nstep_ | 
| number of time steps | |
| long unsigned | neval_ | 
| function evaluation counter, must be incremented in step() when defined | |
| long unsigned | icheck_ | 
| interval of steps after which to check for nans and infs (zero to ignore) | |
| double ** | Jac_ | 
| storage for the ODE system's Jacobian matrix, only allocated for the methods that need it | |
| long unsigned | nJac_ | 
| counter for jacobian evaluations | |
| double | absjacdel_ | 
| absolute adjustment fraction for numerical Jacobian, if needed | |
| double | reljacdel_ | 
| relative adjustment fraction for numerical Jacobian, if needed | |
Jim Verner's "most efficient" 7/6 pair.
Definition at line 16 of file ode_vern_76.h.
| ode::OdeVern76::OdeVern76 | ( | unsigned long | neq | ) |