Adaptive Runge-Kutta4.
integrator
Integration structure (quasi-class). Created using XLALAdaptiveRungeKuttaIntegratorInit()
. ... The code LALAdaptiveRungeKuttaIntegrator.c evolves a system of \(n\) coupled first–order differential equations. Internally, it uses GSL routines to perform adaptive-step evolution, and then interpolates the resulting trajectories to a fixed step size.
Prior to evolving a system using XLALAdaptiveRungeKutta4()
, it is necessary to create an integrator structure using XLALAdaptiveRungeKuttaIntegratorInit()
. Once you are done with the integrator, free it with XLALAdaptiveRungeKuttaIntegratorFree()
.
TBF.
For updated SpinTaylor waveforms.
None so far...
Prototypes | |
LALAdaptiveRungeKuttaIntegrator * | XLALAdaptiveRungeKutta4Init (int dim, int(*dydt)(double t, const double y[], double dydt[], void *params), int(*stop)(double t, const double y[], double dydt[], void *params), double eps_abs, double eps_rel) |
LALAdaptiveRungeKuttaIntegrator * | XLALAdaptiveRungeKutta4InitEighthOrderInstead (int dim, int(*dydt)(double t, const double y[], double dydt[], void *params), int(*stop)(double t, const double y[], double dydt[], void *params), double eps_abs, double eps_rel) |
Eighth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg steps with adaptive step size control. More... | |
void | XLALAdaptiveRungeKuttaFree (LALAdaptiveRungeKuttaIntegrator *integrator) |
int | XLALAdaptiveRungeKutta4 (LALAdaptiveRungeKuttaIntegrator *integrator, void *params, REAL8 *yinit, REAL8 tinit, REAL8 tend, REAL8 deltat, REAL8Array **yout) |
int | XLALAdaptiveRungeKutta4NoInterpolate (LALAdaptiveRungeKuttaIntegrator *integrator, void *params, REAL8 *yinit, REAL8 tinit, REAL8 tend, REAL8 deltat_or_h0, REAL8 min_deltat_or_h0, REAL8Array **t_and_yout, INT4 EOBversion) |
Fourth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg steps with adaptive step size control. More... | |
int | XLALAdaptiveRungeKuttaDenseandSparseOutput (LALAdaptiveRungeKuttaIntegrator *integrator, void *params, REAL8 *yinit, REAL8 tinit, REAL8 tend, REAL8 deltat, REAL8Array **sparse_output, REAL8Array **dense_output) |
int | XLALAdaptiveRungeKutta4Hermite (LALAdaptiveRungeKuttaIntegrator *integrator, void *params, REAL8 *yinit, REAL8 tinit, REAL8 tend_in, REAL8 deltat, REAL8Array **yout) |
Fourth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg (RKF45) steps with adaptive step size control. More... | |
int | XLALAdaptiveRungeKutta4HermiteOnlyFinal (LALAdaptiveRungeKuttaIntegrator *integrator, void *params, REAL8 *yinit, REAL8 tinit, REAL8 tend_in, REAL8 y1_final, REAL8 deltat) |
Fourth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg (RKF45) steps with adaptive step size control. More... | |
int | XLALAdaptiveRungeKutta4IrregularIntervals (LALAdaptiveRungeKuttaIntegrator *integrator, void *params, REAL8 *yinit, REAL8 tinit, REAL8 tend_in, REAL8Array **yout) |
Fourth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg (RKF45) steps with adaptive step size control. More... | |
Data Structures | |
struct | LALAdaptiveRungeKuttaIntegrator |
LALAdaptiveRungeKuttaIntegrator* XLALAdaptiveRungeKutta4Init | ( | int | dim, |
int(*)(double t, const double y[], double dydt[], void *params) | dydt, | ||
int(*)(double t, const double y[], double dydt[], void *params) | stop, | ||
double | eps_abs, | ||
double | eps_rel | ||
) |
Definition at line 31 of file LALAdaptiveRungeKuttaIntegrator.c.
LALAdaptiveRungeKuttaIntegrator* XLALAdaptiveRungeKutta4InitEighthOrderInstead | ( | int | dim, |
int(*)(double t, const double y[], double dydt[], void *params) | dydt, | ||
int(*)(double t, const double y[], double dydt[], void *params) | stop, | ||
double | eps_abs, | ||
double | eps_rel | ||
) |
Eighth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg steps with adaptive step size control.
Intended for use in time domain waveform generation routines based on SEOBNRv2,3,4 models.
Definition at line 70 of file LALAdaptiveRungeKuttaIntegrator.c.
void XLALAdaptiveRungeKuttaFree | ( | LALAdaptiveRungeKuttaIntegrator * | integrator | ) |
Definition at line 108 of file LALAdaptiveRungeKuttaIntegrator.c.
int XLALAdaptiveRungeKutta4 | ( | LALAdaptiveRungeKuttaIntegrator * | integrator, |
void * | params, | ||
REAL8 * | yinit, | ||
REAL8 | tinit, | ||
REAL8 | tend, | ||
REAL8 | deltat, | ||
REAL8Array ** | yout | ||
) |
Definition at line 1074 of file LALAdaptiveRungeKuttaIntegrator.c.
int XLALAdaptiveRungeKutta4NoInterpolate | ( | LALAdaptiveRungeKuttaIntegrator * | integrator, |
void * | params, | ||
REAL8 * | yinit, | ||
REAL8 | tinit, | ||
REAL8 | tend, | ||
REAL8 | deltat_or_h0, | ||
REAL8 | min_deltat_or_h0, | ||
REAL8Array ** | t_and_yout, | ||
INT4 | EOBversion | ||
) |
Fourth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg steps with adaptive step size control.
Intended for use in time domain waveform generation routines based on SEOBNRv2,3,4 models. This method does not includes any interpolation. deltat_or_h0 is the initial step size to be tried min_deltat_or_h0 is the minimal step size to enforce – 0 to ignore
Definition at line 587 of file LALAdaptiveRungeKuttaIntegrator.c.
int XLALAdaptiveRungeKuttaDenseandSparseOutput | ( | LALAdaptiveRungeKuttaIntegrator * | integrator, |
void * | params, | ||
REAL8 * | yinit, | ||
REAL8 | tinit, | ||
REAL8 | tend, | ||
REAL8 | deltat, | ||
REAL8Array ** | sparse_output, | ||
REAL8Array ** | dense_output | ||
) |
Definition at line 806 of file LALAdaptiveRungeKuttaIntegrator.c.
int XLALAdaptiveRungeKutta4Hermite | ( | LALAdaptiveRungeKuttaIntegrator * | integrator, |
void * | params, | ||
REAL8 * | yinit, | ||
REAL8 | tinit, | ||
REAL8 | tend_in, | ||
REAL8 | deltat, | ||
REAL8Array ** | yout | ||
) |
Fourth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg (RKF45) steps with adaptive step size control.
Intended for use in various waveform generation routines such as SpinTaylorT4 and various EOB models.
The method is described in
Abramowitz & Stegun, Handbook of Mathematical Functions, Tenth Printing, National Bureau of Standards, Washington, DC, 1972 (available online at http://people.math.sfu.ca/~cbm/aands/ )
This function also includes "on-the-fly" interpolation of the differential equations at regular intervals in-between integration steps. This "on-the-fly" interpolation method is derived and described in the Mathematica notebook "RKF_with_interpolation.nb"; see https://www.lsc-group.phys.uwm.edu/ligovirgo/cbcnote/InspiralPipelineDevelopment/120312111836InspiralPipelineDevelopmentImproved%20Adaptive%20Runge-Kutta%20integrator
This method is functionally equivalent to XLALAdaptiveRungeKutta4, but is nearly always faster due to the improved interpolation.
integrator | struct holding dydt, stopping test, stepper, etc. |
params | params struct used to compute dydt and stopping test |
yinit | pass in initial values of all variables - overwritten to final values |
tinit | integration start time |
tend_in | maximum integration time |
deltat | step size for evenly sampled output |
yout | array holding the evenly sampled output |
Definition at line 219 of file LALAdaptiveRungeKuttaIntegrator.c.
int XLALAdaptiveRungeKutta4HermiteOnlyFinal | ( | LALAdaptiveRungeKuttaIntegrator * | integrator, |
void * | params, | ||
REAL8 * | yinit, | ||
REAL8 | tinit, | ||
REAL8 | tend_in, | ||
REAL8 | y1_final, | ||
REAL8 | deltat | ||
) |
Fourth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg (RKF45) steps with adaptive step size control.
Version that only outputs the final state of the integration, intended for use for spin evolution in lalsimulation/lib/LALSimInspiralSpinTaylor.c, based on XLALAdaptiveRungeKutta4Hermite. Specifically, this assumes that the criterion used to set the end of the evolution (and included in the integrator's stopping condition) is given by deltat*y[1] < deltat*y1_final, where y is the vector of variables.
The method is described in
Abramowitz & Stegun, Handbook of Mathematical Functions, Tenth Printing, National Bureau of Standards, Washington, DC, 1972 (available online at http://people.math.sfu.ca/~cbm/aands/ )
This function also includes "on-the-fly" interpolation of the differential equations at regular intervals in-between integration steps. This "on-the-fly" interpolation method is derived and described in the Mathematica notebook "RKF_with_interpolation.nb"; see https://www.lsc-group.phys.uwm.edu/ligovirgo/cbcnote/InspiralPipelineDevelopment/120312111836InspiralPipelineDevelopmentImproved%20Adaptive%20Runge-Kutta%20integrator
integrator | struct holding dydt, stopping test, stepper, etc. |
params | params struct used to compute dydt and stopping test |
yinit | pass in initial values of all variables - overwritten to final values |
tinit | integration start time |
tend_in | maximum integration time |
y1_final | final value of y[1] |
deltat | step size for integration |
Definition at line 427 of file LALAdaptiveRungeKuttaIntegrator.c.
int XLALAdaptiveRungeKutta4IrregularIntervals | ( | LALAdaptiveRungeKuttaIntegrator * | integrator, |
void * | params, | ||
REAL8 * | yinit, | ||
REAL8 | tinit, | ||
REAL8 | tend_in, | ||
REAL8Array ** | yout | ||
) |
Fourth-order Runge-Kutta ODE integrator using Runge-Kutta-Fehlberg (RKF45) steps with adaptive step size control.
Intended for use in Fourier domain waveform generation routines based on SpinTaylorTN models.
The method is described in
Abramowitz & Stegun, Handbook of Mathematical Functions, Tenth Printing, National Bureau of Standards, Washington, DC, 1972 (available online at http://people.math.sfu.ca/~cbm/aands/ )
This method is equivalent to XLALAdaptiveRungeKutta4 and XLALAdaptiveRungeKutta4Hermite, but does not includes any interpolation.
Memory is allocated in steps of LAL_MAX_RK4_STEPS.
Intended for use in Fourier domain waveform generation routines based on SpinTaylorTN models.
The method is described in
Abramowitz & Stegun, Handbook of Mathematical Functions, Tenth Printing, National Bureau of Standards, Washington, DC, 1972 (available online at http://people.math.sfu.ca/~cbm/aands/ )
This method is equivalent to XLALAdaptiveRungeKutta4 and XLALAdaptiveRungeKutta4Hermite, but does not includes any interpolation.
integrator | struct holding dydt, stopping test, stepper, etc. |
params | params struct used to compute dydt and stopping test |
yinit | pass in initial values of all variables - overwritten to final values |
tinit | integration start time |
tend_in | maximum integration time |
yout | array holding the unevenly sampled output |
Definition at line 1299 of file LALAdaptiveRungeKuttaIntegrator.c.