diff --git a/Doxyfile b/Doxyfile
index d683763..5d12aa5 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -6,7 +6,7 @@
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = libode
PROJECT_NUMBER =
-PROJECT_BRIEF = "A variety of explicit and implicit single-step ODE integrators as C++ classes"
+PROJECT_BRIEF = "Easy to compile, fast ODE integrators as C++ classes"
PROJECT_LOGO =
OUTPUT_DIRECTORY = docs
CREATE_SUBDIRS = NO
diff --git a/README.md b/README.md
index 4fd3daa..6f9fdb6 100644
--- a/README.md
+++ b/README.md
@@ -99,13 +99,13 @@ If these functions aren't enough, you can always write your own and call the `st
#### Flexibly Adapt the Time Step
-The adaptive solvers automatically choose time steps by comparing the solution for a single step with that of an embedded, lower order solution for the step and computing an error estimate. The algorithm for this is well described in the books referenced above. If, however, there is another way that the time step should be chosen for a system, a new selection algorithm can be used with any of the solvers. If the virtual function `dt_adapt()` is overridden, it will be used to select the time step in the `solve_adaptive()` functions.
+Some of the solvers have built-in adaptive time steppers. They automatically choose time steps by comparing the solution for a single step with that of an embedded, lower order solution for the step and computing an error estimate. The algorithm for this is well described in the books referenced above. If, however, there is another way that the time step should be chosen for a system, a new selection algorithm can be used with **any** of the solvers. If the virtual function `dt_adapt()` is overridden, it will be used to select the time step in the `solve_adaptive()` functions.
Rejecting an adaptive step is easy. During an adaptive solve, the virtual `is_rejected()` function is called after every step. If it returns `true`, the step is rejected. If it returns `false`, the step is accepted. Either way, `dt_adapt()` computes the next time step size and the solver proceeds. So, at minimum, an adaptive solver with time step rejection needs to have its `dt_adapt()` and `is_rejected()` functions implemented. The embedded Runge-Kutta methods have these functions built in, but they can be overridden.
If it's easier to compute the next time step and determine whether the step is rejected all at once, the virtual `adapt()` function can be implemented. It should store the next time step and store a boolean for rejection. Then `dt_adapt()` and `is_rejected()` simply return those stored values. This is how the embedded Runge-Kutta methods are structured because the same information determines the next step size and rejection/acceptance of the current step.
-This structure is useful because allows the step size to be chosen any way you choose. Specifically though, it has been used to set the time step based on the stability threshold of PDE discretizations. For example, the time step of explicit methods for PDEs might be limited by the CFL condition for advection or the von Neumann condition for simple diffusion schemes. Prescribing the adaptive time step based on these conditions, then using `solve_adaptive()`, can provide huge speed boosts.
+The point is to make time step selection totally flexible if the embedded Runge-Kutta algorithm isn't suitable. For example, this flexibility has been used to set the time step based on stability thresholds of PDE discretizations like the CFL condition for advection or the von Neumann condition for simple diffusion schemes. Prescribing the adaptive time step based on these conditions, then using `solve_adaptive()`, can provide huge speed boosts.
## Testing
diff --git a/docs/annotated.html b/docs/annotated.html
index 4dbaf03..4a1780a 100644
--- a/docs/annotated.html
+++ b/docs/annotated.html
@@ -31,7 +31,7 @@
Definition at line 131 of file ode_base.h.
+Definition at line 155 of file ode_base.h.
diff --git a/docs/class_ode_do_pri54-members.html b/docs/class_ode_do_pri54-members.html
index 2f14f53..6c8da1e 100644
--- a/docs/class_ode_do_pri54-members.html
+++ b/docs/class_ode_do_pri54-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_do_pri54.html b/docs/class_ode_do_pri54.html
index f5461d2..ccfe157 100644
--- a/docs/class_ode_do_pri54.html
+++ b/docs/class_ode_do_pri54.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_do_pri87-members.html b/docs/class_ode_do_pri87-members.html
index ca803ee..a877bfb 100644
--- a/docs/class_ode_do_pri87-members.html
+++ b/docs/class_ode_do_pri87-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_do_pri87.html b/docs/class_ode_do_pri87.html
index eb57733..64ff861 100644
--- a/docs/class_ode_do_pri87.html
+++ b/docs/class_ode_do_pri87.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_e_r_k-members.html b/docs/class_ode_e_r_k-members.html
index c23ad1b..1bfc25d 100644
--- a/docs/class_ode_e_r_k-members.html
+++ b/docs/class_ode_e_r_k-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_e_r_k.html b/docs/class_ode_e_r_k.html
index ced3601..c35110e 100644
--- a/docs/class_ode_e_r_k.html
+++ b/docs/class_ode_e_r_k.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_embedded-members.html b/docs/class_ode_embedded-members.html
index 8c0ad1d..1c6f78a 100644
--- a/docs/class_ode_embedded-members.html
+++ b/docs/class_ode_embedded-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_embedded.html b/docs/class_ode_embedded.html
index 083ecec..a022e7d 100644
--- a/docs/class_ode_embedded.html
+++ b/docs/class_ode_embedded.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_euler-members.html b/docs/class_ode_euler-members.html
index cf8b6d1..7ff510d 100644
--- a/docs/class_ode_euler-members.html
+++ b/docs/class_ode_euler-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_euler.html b/docs/class_ode_euler.html
index 1c2d13a..5f928dc 100644
--- a/docs/class_ode_euler.html
+++ b/docs/class_ode_euler.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_g_r_k4_a-members.html b/docs/class_ode_g_r_k4_a-members.html
index 6ab6d2a..92c696b 100644
--- a/docs/class_ode_g_r_k4_a-members.html
+++ b/docs/class_ode_g_r_k4_a-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_g_r_k4_a.html b/docs/class_ode_g_r_k4_a.html
index 85e8cf0..56e0527 100644
--- a/docs/class_ode_g_r_k4_a.html
+++ b/docs/class_ode_g_r_k4_a.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_gauss6-members.html b/docs/class_ode_gauss6-members.html
index 62d67f1..1f71c9c 100644
--- a/docs/class_ode_gauss6-members.html
+++ b/docs/class_ode_gauss6-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_gauss6.html b/docs/class_ode_gauss6.html
index d8b824c..29f54a5 100644
--- a/docs/class_ode_gauss6.html
+++ b/docs/class_ode_gauss6.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_geng5-members.html b/docs/class_ode_geng5-members.html
index ae6671f..3f0be9c 100644
--- a/docs/class_ode_geng5-members.html
+++ b/docs/class_ode_geng5-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_geng5.html b/docs/class_ode_geng5.html
index e924273..e73f167 100644
--- a/docs/class_ode_geng5.html
+++ b/docs/class_ode_geng5.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_i_r_k-members.html b/docs/class_ode_i_r_k-members.html
index 2890152..00e8d29 100644
--- a/docs/class_ode_i_r_k-members.html
+++ b/docs/class_ode_i_r_k-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_i_r_k.html b/docs/class_ode_i_r_k.html
index d2ed91d..aa4fba0 100644
--- a/docs/class_ode_i_r_k.html
+++ b/docs/class_ode_i_r_k.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_lobatto_i_i_i_c6-members.html b/docs/class_ode_lobatto_i_i_i_c6-members.html
index 7b8c10d..e2d8380 100644
--- a/docs/class_ode_lobatto_i_i_i_c6-members.html
+++ b/docs/class_ode_lobatto_i_i_i_c6-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_lobatto_i_i_i_c6.html b/docs/class_ode_lobatto_i_i_i_c6.html
index 2e0e5e6..5d50e3d 100644
--- a/docs/class_ode_lobatto_i_i_i_c6.html
+++ b/docs/class_ode_lobatto_i_i_i_c6.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_newton-members.html b/docs/class_ode_newton-members.html
index af08661..7d17dba 100644
--- a/docs/class_ode_newton-members.html
+++ b/docs/class_ode_newton-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_newton.html b/docs/class_ode_newton.html
index eeb8289..08ab827 100644
--- a/docs/class_ode_newton.html
+++ b/docs/class_ode_newton.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_newton_bridge-members.html b/docs/class_ode_newton_bridge-members.html
index ae188dc..3d019d7 100644
--- a/docs/class_ode_newton_bridge-members.html
+++ b/docs/class_ode_newton_bridge-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_newton_bridge.html b/docs/class_ode_newton_bridge.html
index 3f24da9..0b59f9f 100644
--- a/docs/class_ode_newton_bridge.html
+++ b/docs/class_ode_newton_bridge.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_newton_i_r_k-members.html b/docs/class_ode_newton_i_r_k-members.html
index af8c099..86a0efb 100644
--- a/docs/class_ode_newton_i_r_k-members.html
+++ b/docs/class_ode_newton_i_r_k-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_newton_i_r_k.html b/docs/class_ode_newton_i_r_k.html
index ef5a024..43b5824 100644
--- a/docs/class_ode_newton_i_r_k.html
+++ b/docs/class_ode_newton_i_r_k.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_newton_s_d_i_r_k-members.html b/docs/class_ode_newton_s_d_i_r_k-members.html
index 9090292..6bd29a0 100644
--- a/docs/class_ode_newton_s_d_i_r_k-members.html
+++ b/docs/class_ode_newton_s_d_i_r_k-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_newton_s_d_i_r_k.html b/docs/class_ode_newton_s_d_i_r_k.html
index 8c082a2..8843772 100644
--- a/docs/class_ode_newton_s_d_i_r_k.html
+++ b/docs/class_ode_newton_s_d_i_r_k.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k-members.html b/docs/class_ode_r_k-members.html
index 4944d75..eef52ee 100644
--- a/docs/class_ode_r_k-members.html
+++ b/docs/class_ode_r_k-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k.html b/docs/class_ode_r_k.html
index 05cea46..c57d8e2 100644
--- a/docs/class_ode_r_k.html
+++ b/docs/class_ode_r_k.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k4-members.html b/docs/class_ode_r_k4-members.html
index 8d0d37a..32fcf30 100644
--- a/docs/class_ode_r_k4-members.html
+++ b/docs/class_ode_r_k4-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k4.html b/docs/class_ode_r_k4.html
index 7b49ffb..84e5f54 100644
--- a/docs/class_ode_r_k4.html
+++ b/docs/class_ode_r_k4.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k43-members.html b/docs/class_ode_r_k43-members.html
index 16c5a0f..b3dc291 100644
--- a/docs/class_ode_r_k43-members.html
+++ b/docs/class_ode_r_k43-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k43.html b/docs/class_ode_r_k43.html
index 18da41f..868d6e1 100644
--- a/docs/class_ode_r_k43.html
+++ b/docs/class_ode_r_k43.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k_c_k-members.html b/docs/class_ode_r_k_c_k-members.html
index 7da80f2..523568a 100644
--- a/docs/class_ode_r_k_c_k-members.html
+++ b/docs/class_ode_r_k_c_k-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k_c_k.html b/docs/class_ode_r_k_c_k.html
index ce9ea85..881a9d4 100644
--- a/docs/class_ode_r_k_c_k.html
+++ b/docs/class_ode_r_k_c_k.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k_f32-members.html b/docs/class_ode_r_k_f32-members.html
index c06b6ac..ca4b77c 100644
--- a/docs/class_ode_r_k_f32-members.html
+++ b/docs/class_ode_r_k_f32-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_k_f32.html b/docs/class_ode_r_k_f32.html
index 06d3657..a8b5bc3 100644
--- a/docs/class_ode_r_k_f32.html
+++ b/docs/class_ode_r_k_f32.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_o_w6_a-members.html b/docs/class_ode_r_o_w6_a-members.html
index bc821c4..a535801 100644
--- a/docs/class_ode_r_o_w6_a-members.html
+++ b/docs/class_ode_r_o_w6_a-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_r_o_w6_a.html b/docs/class_ode_r_o_w6_a.html
index e08cf38..434561b 100644
--- a/docs/class_ode_r_o_w6_a.html
+++ b/docs/class_ode_r_o_w6_a.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_radau_i_i_a5-members.html b/docs/class_ode_radau_i_i_a5-members.html
index 8ff84b5..d130ce3 100644
--- a/docs/class_ode_radau_i_i_a5-members.html
+++ b/docs/class_ode_radau_i_i_a5-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_radau_i_i_a5.html b/docs/class_ode_radau_i_i_a5.html
index 5246031..ce9e9f5 100644
--- a/docs/class_ode_radau_i_i_a5.html
+++ b/docs/class_ode_radau_i_i_a5.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_rosenbrock-members.html b/docs/class_ode_rosenbrock-members.html
index 76da300..caa3742 100644
--- a/docs/class_ode_rosenbrock-members.html
+++ b/docs/class_ode_rosenbrock-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_rosenbrock.html b/docs/class_ode_rosenbrock.html
index 90dda80..5af6ed4 100644
--- a/docs/class_ode_rosenbrock.html
+++ b/docs/class_ode_rosenbrock.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_s_d_i_r_k43-members.html b/docs/class_ode_s_d_i_r_k43-members.html
index 3050221..5c2652a 100644
--- a/docs/class_ode_s_d_i_r_k43-members.html
+++ b/docs/class_ode_s_d_i_r_k43-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_s_d_i_r_k43.html b/docs/class_ode_s_d_i_r_k43.html
index 0de932b..5e7fff5 100644
--- a/docs/class_ode_s_d_i_r_k43.html
+++ b/docs/class_ode_s_d_i_r_k43.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_ssp3-members.html b/docs/class_ode_ssp3-members.html
index b03354f..4d64525 100644
--- a/docs/class_ode_ssp3-members.html
+++ b/docs/class_ode_ssp3-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_ssp3.html b/docs/class_ode_ssp3.html
index cf1819c..034e40d 100644
--- a/docs/class_ode_ssp3.html
+++ b/docs/class_ode_ssp3.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_trapz-members.html b/docs/class_ode_trapz-members.html
index 349f599..aa2e67d 100644
--- a/docs/class_ode_trapz-members.html
+++ b/docs/class_ode_trapz-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_trapz.html b/docs/class_ode_trapz.html
index a67a2d0..fb5523c 100644
--- a/docs/class_ode_trapz.html
+++ b/docs/class_ode_trapz.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_vern65-members.html b/docs/class_ode_vern65-members.html
index e87a1ba..1edd69e 100644
--- a/docs/class_ode_vern65-members.html
+++ b/docs/class_ode_vern65-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_vern65.html b/docs/class_ode_vern65.html
index 3fe45d6..106f522 100644
--- a/docs/class_ode_vern65.html
+++ b/docs/class_ode_vern65.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_vern76-members.html b/docs/class_ode_vern76-members.html
index fe5454d..893bb37 100644
--- a/docs/class_ode_vern76-members.html
+++ b/docs/class_ode_vern76-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_vern76.html b/docs/class_ode_vern76.html
index 55df153..807c535 100644
--- a/docs/class_ode_vern76.html
+++ b/docs/class_ode_vern76.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_vern98-members.html b/docs/class_ode_vern98-members.html
index 0dd759d..c0f2267 100644
--- a/docs/class_ode_vern98-members.html
+++ b/docs/class_ode_vern98-members.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/class_ode_vern98.html b/docs/class_ode_vern98.html
index e4c4e42..4b25d40 100644
--- a/docs/class_ode_vern98.html
+++ b/docs/class_ode_vern98.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/classes.html b/docs/classes.html
index 39ab551..b538de4 100644
--- a/docs/classes.html
+++ b/docs/classes.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html
index 233f8f0..67c223f 100644
--- a/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html
+++ b/docs/dir_68267d1309a1af8e8297ef4c3efbcdba.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/files.html b/docs/files.html
index d1b0187..c0620ad 100644
--- a/docs/files.html
+++ b/docs/files.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions.html b/docs/functions.html
index b039981..62b1962 100644
--- a/docs/functions.html
+++ b/docs/functions.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_b.html b/docs/functions_b.html
index d2e1130..fdcf7e0 100644
--- a/docs/functions_b.html
+++ b/docs/functions_b.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_c.html b/docs/functions_c.html
index 4576434..35335bd 100644
--- a/docs/functions_c.html
+++ b/docs/functions_c.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_d.html b/docs/functions_d.html
index 9853aca..d06cf93 100644
--- a/docs/functions_d.html
+++ b/docs/functions_d.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_e.html b/docs/functions_e.html
index e96a580..89e4905 100644
--- a/docs/functions_e.html
+++ b/docs/functions_e.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_f.html b/docs/functions_f.html
index 5609af3..fd20f5a 100644
--- a/docs/functions_f.html
+++ b/docs/functions_f.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_func.html b/docs/functions_func.html
index 7198d2b..b519325 100644
--- a/docs/functions_func.html
+++ b/docs/functions_func.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_g.html b/docs/functions_g.html
index 2276371..930563b 100644
--- a/docs/functions_g.html
+++ b/docs/functions_g.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_i.html b/docs/functions_i.html
index 40eef38..2a97662 100644
--- a/docs/functions_i.html
+++ b/docs/functions_i.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_j.html b/docs/functions_j.html
index df2dcda..8ebf8cc 100644
--- a/docs/functions_j.html
+++ b/docs/functions_j.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_k.html b/docs/functions_k.html
index 8f22b14..d5cbef0 100644
--- a/docs/functions_k.html
+++ b/docs/functions_k.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_m.html b/docs/functions_m.html
index 619a9de..e4abc05 100644
--- a/docs/functions_m.html
+++ b/docs/functions_m.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_n.html b/docs/functions_n.html
index d55f921..c446a72 100644
--- a/docs/functions_n.html
+++ b/docs/functions_n.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_o.html b/docs/functions_o.html
index 71b377d..415b13a 100644
--- a/docs/functions_o.html
+++ b/docs/functions_o.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_p.html b/docs/functions_p.html
index 762dbd2..486cfb6 100644
--- a/docs/functions_p.html
+++ b/docs/functions_p.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_q.html b/docs/functions_q.html
index 6341e97..74c647e 100644
--- a/docs/functions_q.html
+++ b/docs/functions_q.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_r.html b/docs/functions_r.html
index f61f55b..bba3f5b 100644
--- a/docs/functions_r.html
+++ b/docs/functions_r.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_s.html b/docs/functions_s.html
index 473f8f3..2a9e84b 100644
--- a/docs/functions_s.html
+++ b/docs/functions_s.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_t.html b/docs/functions_t.html
index e4bdbeb..c1a3968 100644
--- a/docs/functions_t.html
+++ b/docs/functions_t.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_vars.html b/docs/functions_vars.html
index 17bdb9f..d27533c 100644
--- a/docs/functions_vars.html
+++ b/docs/functions_vars.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/functions_~.html b/docs/functions_~.html
index 1870cd6..453ff53 100644
--- a/docs/functions_~.html
+++ b/docs/functions_~.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/globals.html b/docs/globals.html
index 499a0a8..273ee6c 100644
--- a/docs/globals.html
+++ b/docs/globals.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/globals_func.html b/docs/globals_func.html
index 6f4db58..9f16165 100644
--- a/docs/globals_func.html
+++ b/docs/globals_func.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/hierarchy.html b/docs/hierarchy.html
index 47e224f..b63e436 100644
--- a/docs/hierarchy.html
+++ b/docs/hierarchy.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/index.html b/docs/index.html
index e5e8bd3..6adddbe 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -90,24 +90,68 @@
libode
-
Easy to compile, fast ODE integrators as C++ classes
-
libode
is a library of C++ classes for solving systems of ordinary differential equations in autonomous form. All of the solvers are single-step, Runge-Kutta-like methods. There are explicit, adaptive solvers up to the ninth order. The repository also includes Rosenbrock methods, a singly-diagonal implicit Runge-Kutta (SDIRK) method, and several fully implicit Runge-Kutta methods. However, only a few of the implicit methods have solid adaptive time steppers at this point. With the current collection of solvers and features, libode
is well suited to any non-stiff system and to stiff systems that are tightly coupled and have a known Jacobian (ones that don't require sparse or banded matrix routines).
+
libode
is a library of C++ classes for solving systems of ordinary differential equations in autonomous form. All of the solvers are single-step, Runge-Kutta-like methods. There are explicit, adaptive solvers up to the ninth order. The repository also includes Rosenbrock methods, a singly-diagonal implicit Runge-Kutta (SDIRK) method, and several fully implicit Runge-Kutta methods. However, only a few of the implicit methods have solid adaptive time steppers at this point. With the current collection of solvers and features, libode
is well suited to any non-stiff system and to stiff systems that are tightly coupled and have a known Jacobian (ones that don't require sparse or banded matrix routines).
The classes were originally styled after Chris Rycroft's example classes. Their structure makes it easy to build a templated integrator on top of an arbitrary solver class and easily switch the solver/method. Implicit methods can be given a function for the ODE system's Jacobian or, if none is provided, the Jacobian is estimated using finite differences.
Several of the solvers and much more detail on the methods can be found in these amazing books:
- Hairer, E., Nørsett, S. P. & Wanner, G. Solving Ordinary Differential Equations I: Nonstiff Problems. (Springer-Verlag, 1987).
- Hairer, E. & Wanner, G. Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems. (Springer, 1996).
+
The table below lists all the solvers and gives some basic information about them. Papers and/or links to the derivation or original publication of the methods are often copied in the headers for the solver classes and included in the documentation. Some work still needs to be done to make the implicit methods genuinely useful, and a list of things to implement is in the todo.txt
file.
+
Compiling
Short Instructions
-- Copy the
_config.mk
file to config.mk
-- Edit any of the compiler settings in your new
config.mk
file as necessary (specify which compiler to use and any compiling flags you want)
-- Run
make
in the top directory where the Makefile is
+- Copy the
_config.mk
file to config.mk
.
+- Edit any of the compiler settings in your new
config.mk
file as necessary (specify which compiler to use and any compiling flags you want).
+- Run
make
in the top directory where the Makefile is.
- If anything weird happens, tell me.
-- Run the
run_all_tests.sh
and run_all_examples.sh
scripts to check that things are working (Python with numpy and matplotlib are needed for plotting)
-- Create derived classes and link to the library with
-I<path>/libode/src -L<path>/libode/bin -lode
, replacing <path>
with the path to the directory above libode
on your computer
+- Execute the
run_all_tests.sh
script to check that things are working (Python with numpy and matplotlib are needed for plotting). If you want, also execute run_all_examples.sh
to run some example solvers.
+- Create derived classes and link to the library with
-I<path>/libode/src -L<path>/libode/bin -lode
, replacing <path>
with the path to the directory above libode
on your computer.
Longer Instructions
@@ -147,10 +191,10 @@
If these functions aren't enough, you could always write your own loop calling the step()
function directly.
Flexibly Adapt the Time Step
-
The adaptive solvers automatically choose time steps by comparing the solution for a single step with that of an embedded, lower order solution for the step and computing an error estimate. The algorithm for this is well described in the books referenced above. If, however, there is another way that the time step should be chosen for a system, a new selection algorithm can be used with any of the solvers. If the virtual function dt_adapt()
is overridden, it will be used to select the time step in the solve_adaptive()
functions.
+
Some of the solvers have built-in adaptive time steppers. They automatically choose time steps by comparing the solution for a single step with that of an embedded, lower order solution for the step and computing an error estimate. The algorithm for this is well described in the books referenced above. If, however, there is another way that the time step should be chosen for a system, a new selection algorithm can be used with any of the solvers. If the virtual function dt_adapt()
is overridden, it will be used to select the time step in the solve_adaptive()
functions.
Rejecting an adaptive step is easy. During an adaptive solve, the virtual is_rejected()
function is called after every step. If it returns true
, the step is rejected. If it returns false
, the step is accepted. Either way, dt_adapt()
computes the next time step size and the solver proceeds. So, at minimum, an adaptive solver with time step rejection needs to have its dt_adapt()
and is_rejected()
functions implemented. The embedded Runge-Kutta methods have these functions built in, but they can be overridden.
If it's easier to compute the next time step and determine whether the step is rejected all at once, the virtual adapt()
function can be implemented. It should store the next time step and store a boolean for rejection. Then dt_adapt()
and is_rejected()
simply return those stored values. This is how the embedded Runge-Kutta methods are structured because the same information determines the next step size and rejection/acceptance of the current step.
-
This structure is useful because allows the step size to be chosen any way you choose. Specifically though, it has been used to set the time step based on the stability threshold of PDE discretizations. For example, the time step of explicit methods for PDEs might be limited by the CFL condition for advection or the von Neumann condition for simple diffusion schemes. Prescribing the adaptive time step based on these conditions, then using solve_adaptive()
, can provide huge speed boosts.
+
The point is to make time step selection totally flexible if the embedded Runge-Kutta algorithm isn't suitable. For example, this flexibility has been used to set the time step based on stability thresholds of PDE discretizations like the CFL condition for advection or the von Neumann condition for simple diffusion schemes. Prescribing the adaptive time step based on these conditions, then using solve_adaptive()
, can provide huge speed boosts.
diff --git a/docs/ode__adaptive_8cc.html b/docs/ode__adaptive_8cc.html
index 4f9294d..0bac66d 100644
--- a/docs/ode__adaptive_8cc.html
+++ b/docs/ode__adaptive_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__adaptive_8cc_source.html b/docs/ode__adaptive_8cc_source.html
index f44dc05..52989fa 100644
--- a/docs/ode__adaptive_8cc_source.html
+++ b/docs/ode__adaptive_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -333,26 +333,26 @@
void check_pre_snaps(double dt, double *tsnap, unsigned long nsnap)
checks that snap times are monotonically increasing and > current time
double dtmax_
maximum allowable time step
void check_sol_integrity()
checks solution for nans and infs, exiting the program if they're found
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
double abstol_
absolute error tolerance
-bool silent_snap_
whether to skip writing the solution vector to file when snapping
+bool silent_snap_
whether to skip writing the solution vector to file when snapping
-double dt_
time step is stored and updated during solves
+double dt_
time step is stored and updated during solves
virtual void after_step(double t)
does any extra stuff after each step
-long long icheck_
interval of steps after which to check for nans and infs (zero to ignore)
+long long icheck_
interval of steps after which to check for nans and infs (zero to ignore)
virtual ~OdeAdaptive()
destructs
void check_pre_solve(double tint, double dt)
checks that a solve can be performed with given tend and dt values
virtual void after_capture(double t)
does any extra stuff only when a step is captured
-Lowest base class for all solvers.
+Lowest base class for all solvers.
OdeAdaptive(unsigned long neq, bool need_jac)
constructs
-std::string dirout_
output directory if one is being used by a solver
+std::string dirout_
output directory if one is being used by a solver
bool solve_done_adaptive(double tend)
determines whether an adaptive solve is finished
void solve_adaptive_(double tint, double dt0, bool extra=true)
integrates without output or any counters, trackers, extra functions...
void ode_print_exit(const char *msg)
print a message and exit with failure
bool ode_is_close(double a, double b, double thresh)
Checks if two numbers are very close to each other.
virtual bool is_rejected()
retreives a bool determining whether a step is accepted/rejected, false by default
-long long nstep_
number of time steps
+long long nstep_
number of time steps
virtual void step_(double dt)=0
advances a single time step (without changing counters or the time) and must be defined in the derive...
virtual void after_solve()
does any extra stuff after completing a solve
long long nrej_
counter for rejected steps
@@ -360,11 +360,11 @@
void snap(std::string dirout, long isnap, double tsnap)
writes the current value of the solution to a binary file
virtual void before_solve()
does any extra stuff before starting a solve
void solve_adaptive(double tint, double dt0, bool extras=true)
integrates for a specified duration of independent variable without output
-double t_
time, initialized to zero
+double t_
time, initialized to zero
std::string ode_int_to_string(long i)
converts an integer into a string
void ode_write(char const *fn, T *a, unsigned long n)
write an array to a binary file
virtual double dt_adapt()
retrieves the best time step for the next step
-std::string name_
the "name" of the system, which is used for output
+std::string name_
the "name" of the system, which is used for output
double dt_adapt_(double tend)
wrapper around dt_adapt() to perform additional checks
bool step_adaptive_(double dt, bool extra=true)
executes a single time and calls all necessary adapting functions
diff --git a/docs/ode__adaptive_8h.html b/docs/ode__adaptive_8h.html
index 4167e86..a5482fe 100644
--- a/docs/ode__adaptive_8h.html
+++ b/docs/ode__adaptive_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__adaptive_8h_source.html b/docs/ode__adaptive_8h_source.html
index 6683791..f37b04f 100644
--- a/docs/ode__adaptive_8h_source.html
+++ b/docs/ode__adaptive_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -176,7 +176,7 @@
virtual ~OdeAdaptive()
destructs
void set_tol(double tol)
sets the absolute and relative error tolerance to the same value
-Lowest base class for all solvers.
+Lowest base class for all solvers.
OdeAdaptive(unsigned long neq, bool need_jac)
constructs
bool solve_done_adaptive(double tend)
determines whether an adaptive solve is finished
void solve_adaptive_(double tint, double dt0, bool extra=true)
integrates without output or any counters, trackers, extra functions...
diff --git a/docs/ode__backward__euler_8cc.html b/docs/ode__backward__euler_8cc.html
index 19e2a72..bee814a 100644
--- a/docs/ode__backward__euler_8cc.html
+++ b/docs/ode__backward__euler_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__backward__euler_8cc_source.html b/docs/ode__backward__euler_8cc_source.html
index cd56f5f..ac15a86 100644
--- a/docs/ode__backward__euler_8cc_source.html
+++ b/docs/ode__backward__euler_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -158,13 +158,13 @@
double ** Jac_
pointer to the solver's Jacobian matrix
OdeBackwardEuler(unsigned long neq)
constructs
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
Provides a large vector containing the slope values of all stages with pointers to each of the indivi...
unsigned long neq_
ODE system size.
double * sol_
pointer to the solver's solution vector
bool get_modified()
gets whether modified Newtion's is being used
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
void set_modified(bool modified)
sets whether modified Newtion's is being used
void jac(double *solin, double **Jout)
wrapper around Jacobian evaluation function
diff --git a/docs/ode__backward__euler_8h.html b/docs/ode__backward__euler_8h.html
index 0d1fc4b..adfa555 100644
--- a/docs/ode__backward__euler_8h.html
+++ b/docs/ode__backward__euler_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__backward__euler_8h_source.html b/docs/ode__backward__euler_8h_source.html
index 9077795..b9ed59e 100644
--- a/docs/ode__backward__euler_8h_source.html
+++ b/docs/ode__backward__euler_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__base_8cc.html b/docs/ode__base_8cc.html
index 1854884..b74d3a1 100644
--- a/docs/ode__base_8cc.html
+++ b/docs/ode__base_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__base_8cc_source.html b/docs/ode__base_8cc_source.html
index e38f961..2d9f841 100644
--- a/docs/ode__base_8cc_source.html
+++ b/docs/ode__base_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -436,44 +436,44 @@
void check_pre_snaps(double dt, double *tsnap, unsigned long nsnap)
checks that snap times are monotonically increasing and > current time
void step(double dt, bool extra=true)
increments the step counter and the time, checks the solution integrity if needed,...
void check_sol_integrity()
checks solution for nans and infs, exiting the program if they're found
-double * sol_
array for the solution, changing over time
-long long neval_
function evaluation counter, must be incremented in step() when defined
-double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
-unsigned long neq_
number of equations in the system of ODEs
+double * sol_
array for the solution, changing over time
+long long neval_
function evaluation counter, must be incremented in step() when defined
+double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
+unsigned long neq_
number of equations in the system of ODEs
void ode_jac_(double *solin, double **Jout)
wrapper, calls ode_jac() and increments nJac;
bool solve_done(double dt, double tend)
checks if the solution is within a single time step of the end point
-bool silent_snap_
whether to skip writing the solution vector to file when snapping
-double dt_
time step is stored and updated during solves
+bool silent_snap_
whether to skip writing the solution vector to file when snapping
+double dt_
time step is stored and updated during solves
virtual void after_step(double t)
does any extra stuff after each step
virtual void after_snap(std::string dirout, long isnap, double t)
does any extra stuff after each snap
-long long icheck_
interval of steps after which to check for nans and infs (zero to ignore)
+long long icheck_
interval of steps after which to check for nans and infs (zero to ignore)
void check_pre_solve(double tint, double dt)
checks that a solve can be performed with given tend and dt values
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
virtual void after_capture(double t)
does any extra stuff only when a step is captured
-std::string dirout_
output directory if one is being used by a solver
+std::string dirout_
output directory if one is being used by a solver
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 deriv...
virtual ~OdeBase()
destructs
-bool quiet_
whether stuff should be printed during a solve
+bool quiet_
whether stuff should be printed during a solve
void ode_print_exit(const char *msg)
print a message and exit with failure
void solve_fixed_(double tint, double dt, bool extra=true)
integrates without output or any counters, trackers, extra functions...
-long long nstep_
number of time steps
+long long nstep_
number of time steps
virtual void step_(double dt)=0
advances a single time step (without changing counters or the time) and must be defined in the derive...
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
-long long nJac_
counter for jacobian evaluations
+long long nJac_
counter for jacobian evaluations
double ode_max2(double a, double b)
Simple maximum of two doubles.
-double reljacdel_
relative adjustment fraction for numerical Jacobian,`` if needed
+double reljacdel_
relative adjustment fraction for numerical Jacobian,`` if needed
void reset(double t, double *sol)
reset to a specified time and initial condition array
virtual void after_solve()
does any extra stuff after completing a solve
OdeBase(unsigned long neq, bool need_jac)
constructs
void snap(std::string dirout, long isnap, double tsnap)
writes the current value of the solution to a binary file
virtual void before_solve()
does any extra stuff before starting a solve
-double absjacdel_
absolute adjustment fraction for numerical Jacobian, if needed
-double t_
time, initialized to zero
+double absjacdel_
absolute adjustment fraction for numerical Jacobian, if needed
+double t_
time, initialized to zero
std::string ode_int_to_string(long i)
converts an integer into a string
void solve_fixed(double tint, double dt, bool extras=true)
integrates for a specified duration of independent variable without output
void ode_write(char const *fn, T *a, unsigned long n)
write an array to a binary file
-std::string name_
the "name" of the system, which is used for output
+std::string name_
the "name" of the system, which is used for output
diff --git a/docs/ode__base_8h.html b/docs/ode__base_8h.html
index 7414b82..9dbb2c5 100644
--- a/docs/ode__base_8h.html
+++ b/docs/ode__base_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__base_8h_source.html b/docs/ode__base_8h_source.html
index ac5cbbf..40769d2 100644
--- a/docs/ode__base_8h_source.html
+++ b/docs/ode__base_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -91,220 +91,220 @@
Go to the documentation of this file.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
108 OdeBase (
unsigned long neq,
bool need_jac);
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
166 void step (
double dt,
bool extra=
true);
-
-
-
174 void solve_fixed (
double tint,
double dt,
bool extras=
true);
-
-
-
183 void solve_fixed (
double tint,
double dt,
const char *dirout,
int inter=1);
-
-
-
192 void solve_fixed (
double tint,
double dt,
unsigned long nsnap,
const char *dirout);
+
132 OdeBase (
unsigned long neq,
bool need_jac);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
190 void step (
double dt,
bool extra=
true);
+
-
-
201 void solve_fixed (
double dt,
double *tsnap,
unsigned long nsnap,
const char *dirout);
-
-
-
208 void reset (
double t,
double *sol);
-
-
-
-
-
218 void solve_fixed_ (
double tint,
double dt,
bool extra=
true);
+
198 void solve_fixed (
double tint,
double dt,
bool extras=
true);
+
+
+
207 void solve_fixed (
double tint,
double dt,
const char *dirout,
int inter=1);
+
+
+
216 void solve_fixed (
double tint,
double dt,
unsigned long nsnap,
const char *dirout);
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
265 virtual void ode_fun (
double *solin,
double *fout) = 0;
-
-
-
273 virtual void ode_jac (
double *solin,
double **Jout);
-
-
-
280 virtual void step_ (
double dt) = 0;
-
-
-
+
225 void solve_fixed (
double dt,
double *tsnap,
unsigned long nsnap,
const char *dirout);
+
+
+
232 void reset (
double t,
double *sol);
+
+
+
+
+
242 void solve_fixed_ (
double tint,
double dt,
bool extra=
true);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
291 void ode_fun_ (
double *solin,
double *fout);
-
-
298 void ode_jac_ (
double *solin,
double **Jout);
-
-
-
-
-
-
-
-
-
-
-
321 virtual void after_snap (std::string dirout,
long isnap,
double t);
-
-
-
-
-
-
+
289 virtual void ode_fun (
double *solin,
double *fout) = 0;
+
+
+
297 virtual void ode_jac (
double *solin,
double **Jout);
+
+
+
304 virtual void step_ (
double dt) = 0;
+
+
+
+
+
+
315 void ode_fun_ (
double *solin,
double *fout);
+
+
322 void ode_jac_ (
double *solin,
double **Jout);
+
+
+
+
+
-
335 void snap (std::string dirout,
long isnap,
double tsnap);
-
-
-
-
-
-
+
+
+
+
+
345 virtual void after_snap (std::string dirout,
long isnap,
double t);
+
+
-
+
+
+
-
-
+
359 void snap (std::string dirout,
long isnap,
double tsnap);
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
void check_pre_snaps(double dt, double *tsnap, unsigned long nsnap)
checks that snap times are monotonically increasing and > current time
void step(double dt, bool extra=true)
increments the step counter and the time, checks the solution integrity if needed,...
void check_sol_integrity()
checks solution for nans and infs, exiting the program if they're found
-void set_sol(double *sol)
copies an array into the solution array
-double * sol_
array for the solution, changing over time
-void set_icheck(unsigned long icheck)
sets the number of steps after which the solution is checked for integrity
-long long neval_
function evaluation counter, must be incremented in step() when defined
-void set_silent_snap(bool silent_snap)
sets whether to skip writing the solution vector to file when snapping
-double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
-double * get_sol()
gets the solution array
-unsigned long neq_
number of equations in the system of ODEs
+void set_sol(double *sol)
copies an array into the solution array
+double * sol_
array for the solution, changing over time
+void set_icheck(unsigned long icheck)
sets the number of steps after which the solution is checked for integrity
+long long neval_
function evaluation counter, must be incremented in step() when defined
+void set_silent_snap(bool silent_snap)
sets whether to skip writing the solution vector to file when snapping
+double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
+double * get_sol()
gets the solution array
+unsigned long neq_
number of equations in the system of ODEs
void ode_jac_(double *solin, double **Jout)
wrapper, calls ode_jac() and increments nJac;
bool solve_done(double dt, double tend)
checks if the solution is within a single time step of the end point
-bool silent_snap_
whether to skip writing the solution vector to file when snapping
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
-double dt_
time step is stored and updated during solves
+bool silent_snap_
whether to skip writing the solution vector to file when snapping
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+double dt_
time step is stored and updated during solves
virtual void after_step(double t)
does any extra stuff after each step
virtual void after_snap(std::string dirout, long isnap, double t)
does any extra stuff after each snap
-bool get_silent_snap()
gets whether to skip writing the solution vector to file when snapping
-long long icheck_
interval of steps after which to check for nans and infs (zero to ignore)
+bool get_silent_snap()
gets whether to skip writing the solution vector to file when snapping
+long long icheck_
interval of steps after which to check for nans and infs (zero to ignore)
void check_pre_solve(double tint, double dt)
checks that a solve can be performed with given tend and dt values
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
virtual void after_capture(double t)
does any extra stuff only when a step is captured
-void set_sol(unsigned long i, double x)
sets an element of the solution array
-long long get_nstep()
gets the total number of steps taken
-Lowest base class for all solvers.
-const char * get_dirout()
gets output directory string if one has been set
-long long get_icheck()
gets the number of steps after which the solution is checked for integrity
-std::string dirout_
output directory if one is being used by a solver
+void set_sol(unsigned long i, double x)
sets an element of the solution array
+long long get_nstep()
gets the total number of steps taken
+Lowest base class for all solvers.
+const char * get_dirout()
gets output directory string if one has been set
+long long get_icheck()
gets the number of steps after which the solution is checked for integrity
+std::string dirout_
output directory if one is being used by a solver
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 deriv...
-double get_sol(unsigned long i)
gets an element of the solution array
+double get_sol(unsigned long i)
gets an element of the solution array
virtual ~OdeBase()
destructs
-void set_name(const char *name)
sets the name of the ODE system
-double get_t()
gets the current value of the independent variable
-bool quiet_
whether stuff should be printed during a solve
-unsigned long get_neq()
gets the size of the ODE system
-long long get_neval()
gets the total number of ODE system evaluation
+void set_name(const char *name)
sets the name of the ODE system
+double get_t()
gets the current value of the independent variable
+bool quiet_
whether stuff should be printed during a solve
+unsigned long get_neq()
gets the size of the ODE system
+long long get_neval()
gets the total number of ODE system evaluation
void solve_fixed_(double tint, double dt, bool extra=true)
integrates without output or any counters, trackers, extra functions...
-const char * get_name()
gets the name of the ODE system
-bool get_quiet()
gets the boolean determining if updates are printed during solves
-long long nstep_
number of time steps
+const char * get_name()
gets the name of the ODE system
+bool get_quiet()
gets the boolean determining if updates are printed during solves
+long long nstep_
number of time steps
virtual void step_(double dt)=0
advances a single time step (without changing counters or the time) and must be defined in the derive...
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
-long long nJac_
counter for jacobian evaluations
-double reljacdel_
relative adjustment fraction for numerical Jacobian,`` if needed
+long long nJac_
counter for jacobian evaluations
+double reljacdel_
relative adjustment fraction for numerical Jacobian,`` if needed
void reset(double t, double *sol)
reset to a specified time and initial condition array
virtual void after_solve()
does any extra stuff after completing a solve
OdeBase(unsigned long neq, bool need_jac)
constructs
-const char * get_method()
gets the name of the solver/method
+const char * get_method()
gets the name of the solver/method
void snap(std::string dirout, long isnap, double tsnap)
writes the current value of the solution to a binary file
-double get_dt()
gets the most recent or current time step size
-long long get_nJac()
gets the total number of Jacobian evaluations performed
+double get_dt()
gets the most recent or current time step size
+long long get_nJac()
gets the total number of Jacobian evaluations performed
virtual void before_solve()
does any extra stuff before starting a solve
-void set_quiet(bool quiet)
sets the boolean determining if updates are printed during solves
-double absjacdel_
absolute adjustment fraction for numerical Jacobian, if needed
-double t_
time, initialized to zero
+void set_quiet(bool quiet)
sets the boolean determining if updates are printed during solves
+double absjacdel_
absolute adjustment fraction for numerical Jacobian, if needed
+double t_
time, initialized to zero
void solve_fixed(double tint, double dt, bool extras=true)
integrates for a specified duration of independent variable without output
-void set_name(std::string name)
sets the name of the ODE system
-std::string name_
the "name" of the system, which is used for output
+void set_name(std::string name)
sets the name of the ODE system
+std::string name_
the "name" of the system, which is used for output
diff --git a/docs/ode__dopri__54_8cc.html b/docs/ode__dopri__54_8cc.html
index c3a6850..c98d067 100644
--- a/docs/ode__dopri__54_8cc.html
+++ b/docs/ode__dopri__54_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__dopri__54_8cc_source.html b/docs/ode__dopri__54_8cc_source.html
index 80ede2e..9aa0bda 100644
--- a/docs/ode__dopri__54_8cc_source.html
+++ b/docs/ode__dopri__54_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -176,10 +176,10 @@
OdeDoPri54(unsigned long neq)
constructs
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
diff --git a/docs/ode__dopri__54_8h.html b/docs/ode__dopri__54_8h.html
index ea19cc0..1000f7b 100644
--- a/docs/ode__dopri__54_8h.html
+++ b/docs/ode__dopri__54_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__dopri__54_8h_source.html b/docs/ode__dopri__54_8h_source.html
index 8de6806..00a3fa4 100644
--- a/docs/ode__dopri__54_8h_source.html
+++ b/docs/ode__dopri__54_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__dopri__87_8cc.html b/docs/ode__dopri__87_8cc.html
index 9ac26d4..09462c3 100644
--- a/docs/ode__dopri__87_8cc.html
+++ b/docs/ode__dopri__87_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__dopri__87_8cc_source.html b/docs/ode__dopri__87_8cc_source.html
index cc93b80..3b8ecbc 100644
--- a/docs/ode__dopri__87_8cc_source.html
+++ b/docs/ode__dopri__87_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -241,10 +241,10 @@
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
diff --git a/docs/ode__dopri__87_8h.html b/docs/ode__dopri__87_8h.html
index caeae40..994e2a5 100644
--- a/docs/ode__dopri__87_8h.html
+++ b/docs/ode__dopri__87_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__dopri__87_8h_source.html b/docs/ode__dopri__87_8h_source.html
index aefc4a7..cfc3653 100644
--- a/docs/ode__dopri__87_8h_source.html
+++ b/docs/ode__dopri__87_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__embedded_8cc.html b/docs/ode__embedded_8cc.html
index a270664..f034d59 100644
--- a/docs/ode__embedded_8cc.html
+++ b/docs/ode__embedded_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__embedded_8cc_source.html b/docs/ode__embedded_8cc_source.html
index 879bec3..1889d9f 100644
--- a/docs/ode__embedded_8cc_source.html
+++ b/docs/ode__embedded_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -163,10 +163,10 @@
virtual bool is_rejected()
simply returns isrej
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
double facmax_
maximum allowable fraction change in time step
-double dt_
time step is stored and updated during solves
+double dt_
time step is stored and updated during solves
double facopt(double err)
calculates factor for "optimal" next time step
virtual double dt_adapt()
simply returns dtopt
double facmin_
minimum allowable fraction change in time step
diff --git a/docs/ode__embedded_8h.html b/docs/ode__embedded_8h.html
index c5bbeb1..6df9069 100644
--- a/docs/ode__embedded_8h.html
+++ b/docs/ode__embedded_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__embedded_8h_source.html b/docs/ode__embedded_8h_source.html
index b546053..f665d1d 100644
--- a/docs/ode__embedded_8h_source.html
+++ b/docs/ode__embedded_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__erk_8cc.html b/docs/ode__erk_8cc.html
index ede9499..2d2675d 100644
--- a/docs/ode__erk_8cc.html
+++ b/docs/ode__erk_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__erk_8cc_source.html b/docs/ode__erk_8cc_source.html
index 67a2881..0686dd4 100644
--- a/docs/ode__erk_8cc_source.html
+++ b/docs/ode__erk_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__erk_8h.html b/docs/ode__erk_8h.html
index b329f17..3eb1ec9 100644
--- a/docs/ode__erk_8h.html
+++ b/docs/ode__erk_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__erk_8h_source.html b/docs/ode__erk_8h_source.html
index a3bb907..ecf7385 100644
--- a/docs/ode__erk_8h_source.html
+++ b/docs/ode__erk_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__euler_8cc.html b/docs/ode__euler_8cc.html
index e860487..57b9e09 100644
--- a/docs/ode__euler_8cc.html
+++ b/docs/ode__euler_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__euler_8cc_source.html b/docs/ode__euler_8cc_source.html
index 71abde0..5570b65 100644
--- a/docs/ode__euler_8cc_source.html
+++ b/docs/ode__euler_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -111,9 +111,9 @@
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
OdeEuler(unsigned long neq)
constructs
Base class implementing solver functions with adaptive time steps.
diff --git a/docs/ode__euler_8h.html b/docs/ode__euler_8h.html
index 7a2fcb0..e241822 100644
--- a/docs/ode__euler_8h.html
+++ b/docs/ode__euler_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__euler_8h_source.html b/docs/ode__euler_8h_source.html
index acc72ff..e21aa32 100644
--- a/docs/ode__euler_8h_source.html
+++ b/docs/ode__euler_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__gauss__6_8cc.html b/docs/ode__gauss__6_8cc.html
index 6f73b7b..1dcf8d1 100644
--- a/docs/ode__gauss__6_8cc.html
+++ b/docs/ode__gauss__6_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__gauss__6_8cc_source.html b/docs/ode__gauss__6_8cc_source.html
index ac6cb14..e2f31fa 100644
--- a/docs/ode__gauss__6_8cc_source.html
+++ b/docs/ode__gauss__6_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -190,15 +190,15 @@
double ** Jac_
pointer to the solver's Jacobian matrix
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
Provides a large vector containing the slope values of all stages with pointers to each of the indivi...
unsigned long neq_
ODE system size.
double * sol_
pointer to the solver's solution vector
double ** a
pointer to tableau coefficients
bool get_modified()
gets whether modified Newtion's is being used
-unsigned long neq_
number of equations in the system of ODEs
+unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
OdeGauss6(unsigned long neq)
constructs
void set_modified(bool modified)
sets whether modified Newtion's is being used
int nk_
number of stages or k vectors
diff --git a/docs/ode__gauss__6_8h.html b/docs/ode__gauss__6_8h.html
index 6c28ed0..3255d63 100644
--- a/docs/ode__gauss__6_8h.html
+++ b/docs/ode__gauss__6_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__gauss__6_8h_source.html b/docs/ode__gauss__6_8h_source.html
index d3b034e..c49fec1 100644
--- a/docs/ode__gauss__6_8h_source.html
+++ b/docs/ode__gauss__6_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__geng__5_8cc.html b/docs/ode__geng__5_8cc.html
index aebdfa0..023bde6 100644
--- a/docs/ode__geng__5_8cc.html
+++ b/docs/ode__geng__5_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__geng__5_8cc_source.html b/docs/ode__geng__5_8cc_source.html
index e4042ae..446c435 100644
--- a/docs/ode__geng__5_8cc_source.html
+++ b/docs/ode__geng__5_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -189,14 +189,14 @@
double ** Jac_
pointer to the solver's Jacobian matrix
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
Provides a large vector containing the slope values of all stages with pointers to each of the indivi...
unsigned long neq_
ODE system size.
double * sol_
pointer to the solver's solution vector
double ** a
pointer to tableau coefficients
bool get_modified()
gets whether modified Newtion's is being used
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
void set_modified(bool modified)
sets whether modified Newtion's is being used
int nk_
number of stages or k vectors
diff --git a/docs/ode__geng__5_8h.html b/docs/ode__geng__5_8h.html
index dddaab4..5c88e96 100644
--- a/docs/ode__geng__5_8h.html
+++ b/docs/ode__geng__5_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__geng__5_8h_source.html b/docs/ode__geng__5_8h_source.html
index 82d80c9..16c1fd8 100644
--- a/docs/ode__geng__5_8h_source.html
+++ b/docs/ode__geng__5_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__grk4a_8cc.html b/docs/ode__grk4a_8cc.html
index 2a27733..947dd4b 100644
--- a/docs/ode__grk4a_8cc.html
+++ b/docs/ode__grk4a_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__grk4a_8cc_source.html b/docs/ode__grk4a_8cc_source.html
index 350508b..9c184ac 100644
--- a/docs/ode__grk4a_8cc_source.html
+++ b/docs/ode__grk4a_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -196,11 +196,11 @@
-double * sol_
array for the solution, changing over time
-double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
-unsigned long neq_
number of equations in the system of ODEs
+double * sol_
array for the solution, changing over time
+double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
+unsigned long neq_
number of equations in the system of ODEs
void ode_jac_(double *solin, double **Jout)
wrapper, calls ode_jac() and increments nJac;
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class for Rosenbrock methods.
OdeGRK4A(unsigned long neq)
constructs
diff --git a/docs/ode__grk4a_8h.html b/docs/ode__grk4a_8h.html
index 5e354f9..0652d6b 100644
--- a/docs/ode__grk4a_8h.html
+++ b/docs/ode__grk4a_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__grk4a_8h_source.html b/docs/ode__grk4a_8h_source.html
index 5052452..14c2935 100644
--- a/docs/ode__grk4a_8h_source.html
+++ b/docs/ode__grk4a_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__io_8cc.html b/docs/ode__io_8cc.html
index a9411af..6adc074 100644
--- a/docs/ode__io_8cc.html
+++ b/docs/ode__io_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__io_8cc_source.html b/docs/ode__io_8cc_source.html
index fb217ce..3bbe181 100644
--- a/docs/ode__io_8cc_source.html
+++ b/docs/ode__io_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__io_8h.html b/docs/ode__io_8h.html
index 79323a9..2a3a75e 100644
--- a/docs/ode__io_8h.html
+++ b/docs/ode__io_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__io_8h_source.html b/docs/ode__io_8h_source.html
index e98c72e..86de73a 100644
--- a/docs/ode__io_8h_source.html
+++ b/docs/ode__io_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__irk_8cc.html b/docs/ode__irk_8cc.html
index 817ffcf..7e9f941 100644
--- a/docs/ode__irk_8cc.html
+++ b/docs/ode__irk_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__irk_8cc_source.html b/docs/ode__irk_8cc_source.html
index 6c0981b..352a86a 100644
--- a/docs/ode__irk_8cc_source.html
+++ b/docs/ode__irk_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__irk_8h.html b/docs/ode__irk_8h.html
index 58c13f9..275f082 100644
--- a/docs/ode__irk_8h.html
+++ b/docs/ode__irk_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__irk_8h_source.html b/docs/ode__irk_8h_source.html
index 6f2e4dc..2a045c8 100644
--- a/docs/ode__irk_8h_source.html
+++ b/docs/ode__irk_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__linalg_8cc.html b/docs/ode__linalg_8cc.html
index 6b5d8c2..b991947 100644
--- a/docs/ode__linalg_8cc.html
+++ b/docs/ode__linalg_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__linalg_8cc_source.html b/docs/ode__linalg_8cc_source.html
index 49b071b..5f28eb3 100644
--- a/docs/ode__linalg_8cc_source.html
+++ b/docs/ode__linalg_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__linalg_8h.html b/docs/ode__linalg_8h.html
index 49b88ed..d6d25a3 100644
--- a/docs/ode__linalg_8h.html
+++ b/docs/ode__linalg_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__linalg_8h_source.html b/docs/ode__linalg_8h_source.html
index 1bee4cc..3a752df 100644
--- a/docs/ode__linalg_8h_source.html
+++ b/docs/ode__linalg_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__lobatto__iiic__6_8cc.html b/docs/ode__lobatto__iiic__6_8cc.html
index 563e655..36fcc2e 100644
--- a/docs/ode__lobatto__iiic__6_8cc.html
+++ b/docs/ode__lobatto__iiic__6_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__lobatto__iiic__6_8cc_source.html b/docs/ode__lobatto__iiic__6_8cc_source.html
index 20f5ba5..b00442d 100644
--- a/docs/ode__lobatto__iiic__6_8cc_source.html
+++ b/docs/ode__lobatto__iiic__6_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -193,14 +193,14 @@
OdeLobattoIIIC6(unsigned long neq)
constructs
double ** Jac_
pointer to the solver's Jacobian matrix
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
Provides a large vector containing the slope values of all stages with pointers to each of the indivi...
unsigned long neq_
ODE system size.
double * sol_
pointer to the solver's solution vector
double ** a
pointer to tableau coefficients
bool get_modified()
gets whether modified Newtion's is being used
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
void set_modified(bool modified)
sets whether modified Newtion's is being used
int nk_
number of stages or k vectors
~OdeLobattoIIIC6()
destructs
diff --git a/docs/ode__lobatto__iiic__6_8h.html b/docs/ode__lobatto__iiic__6_8h.html
index 7d92475..85fa983 100644
--- a/docs/ode__lobatto__iiic__6_8h.html
+++ b/docs/ode__lobatto__iiic__6_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__lobatto__iiic__6_8h_source.html b/docs/ode__lobatto__iiic__6_8h_source.html
index 5adf1d3..c9beb9b 100644
--- a/docs/ode__lobatto__iiic__6_8h_source.html
+++ b/docs/ode__lobatto__iiic__6_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__newton_8cc.html b/docs/ode__newton_8cc.html
index 25242f2..96aaab7 100644
--- a/docs/ode__newton_8cc.html
+++ b/docs/ode__newton_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__newton_8cc_source.html b/docs/ode__newton_8cc_source.html
index 7706692..54a30d7 100644
--- a/docs/ode__newton_8cc_source.html
+++ b/docs/ode__newton_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__newton_8h.html b/docs/ode__newton_8h.html
index de2c099..0f8af5f 100644
--- a/docs/ode__newton_8h.html
+++ b/docs/ode__newton_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__newton_8h_source.html b/docs/ode__newton_8h_source.html
index a062d62..8b36978 100644
--- a/docs/ode__newton_8h_source.html
+++ b/docs/ode__newton_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -168,7 +168,7 @@
111 void JLU (
double *x);
113 void solve_LU_(
double **LU,
int *p,
double *b,
int n,
double *out);
-
+
115 int check_integrity (
double *x);
diff --git a/docs/ode__newton__bridge_8h.html b/docs/ode__newton__bridge_8h.html
index 05bae14..ea457cc 100644
--- a/docs/ode__newton__bridge_8h.html
+++ b/docs/ode__newton__bridge_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__newton__bridge_8h_source.html b/docs/ode__newton__bridge_8h_source.html
index 69b1963..f14042b 100644
--- a/docs/ode__newton__bridge_8h_source.html
+++ b/docs/ode__newton__bridge_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__radau__iia__5_8cc.html b/docs/ode__radau__iia__5_8cc.html
index 562e259..348282c 100644
--- a/docs/ode__radau__iia__5_8cc.html
+++ b/docs/ode__radau__iia__5_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__radau__iia__5_8cc_source.html b/docs/ode__radau__iia__5_8cc_source.html
index b3887f9..de8840b 100644
--- a/docs/ode__radau__iia__5_8cc_source.html
+++ b/docs/ode__radau__iia__5_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -190,15 +190,15 @@
double ** Jac_
pointer to the solver's Jacobian matrix
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
Provides a large vector containing the slope values of all stages with pointers to each of the indivi...
unsigned long neq_
ODE system size.
double * sol_
pointer to the solver's solution vector
double ** a
pointer to tableau coefficients
bool get_modified()
gets whether modified Newtion's is being used
Nonlinear system solver for OdeRadauIIA5.
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
void set_modified(bool modified)
sets whether modified Newtion's is being used
int nk_
number of stages or k vectors
void jac(double *solin, double **Jout)
wrapper around Jacobian evaluation function
diff --git a/docs/ode__radau__iia__5_8h.html b/docs/ode__radau__iia__5_8h.html
index c93ca7a..d973bc9 100644
--- a/docs/ode__radau__iia__5_8h.html
+++ b/docs/ode__radau__iia__5_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__radau__iia__5_8h_source.html b/docs/ode__radau__iia__5_8h_source.html
index ca703cc..c95897b 100644
--- a/docs/ode__radau__iia__5_8h_source.html
+++ b/docs/ode__radau__iia__5_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk_8cc.html b/docs/ode__rk_8cc.html
index be3f366..9d3efb0 100644
--- a/docs/ode__rk_8cc.html
+++ b/docs/ode__rk_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk_8cc_source.html b/docs/ode__rk_8cc_source.html
index d67d7af..30386e2 100644
--- a/docs/ode__rk_8cc_source.html
+++ b/docs/ode__rk_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk_8h.html b/docs/ode__rk_8h.html
index 69dc47e..2c6c785 100644
--- a/docs/ode__rk_8h.html
+++ b/docs/ode__rk_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk_8h_source.html b/docs/ode__rk_8h_source.html
index acdc1fc..9a066b6 100644
--- a/docs/ode__rk_8h_source.html
+++ b/docs/ode__rk_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk__43_8cc.html b/docs/ode__rk__43_8cc.html
index 0f63e41..b2f12c9 100644
--- a/docs/ode__rk__43_8cc.html
+++ b/docs/ode__rk__43_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk__43_8cc_source.html b/docs/ode__rk__43_8cc_source.html
index 3586609..3064562 100644
--- a/docs/ode__rk__43_8cc_source.html
+++ b/docs/ode__rk__43_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -151,9 +151,9 @@
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
diff --git a/docs/ode__rk__43_8h.html b/docs/ode__rk__43_8h.html
index d29ba18..c71e2f7 100644
--- a/docs/ode__rk__43_8h.html
+++ b/docs/ode__rk__43_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk__43_8h_source.html b/docs/ode__rk__43_8h_source.html
index 4db5451..c53a984 100644
--- a/docs/ode__rk__43_8h_source.html
+++ b/docs/ode__rk__43_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk__4_8cc.html b/docs/ode__rk__4_8cc.html
index e0ad70e..95e7ed5 100644
--- a/docs/ode__rk__4_8cc.html
+++ b/docs/ode__rk__4_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk__4_8cc_source.html b/docs/ode__rk__4_8cc_source.html
index 61b1b60..4587420 100644
--- a/docs/ode__rk__4_8cc_source.html
+++ b/docs/ode__rk__4_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -133,10 +133,10 @@
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
OdeRK4(unsigned long neq)
constructs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
diff --git a/docs/ode__rk__4_8h.html b/docs/ode__rk__4_8h.html
index 535c17a..8b462c0 100644
--- a/docs/ode__rk__4_8h.html
+++ b/docs/ode__rk__4_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rk__4_8h_source.html b/docs/ode__rk__4_8h_source.html
index 0ddc5ea..a64ad0d 100644
--- a/docs/ode__rk__4_8h_source.html
+++ b/docs/ode__rk__4_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rkck_8cc.html b/docs/ode__rkck_8cc.html
index 5fc3f86..fb94b4b 100644
--- a/docs/ode__rkck_8cc.html
+++ b/docs/ode__rkck_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rkck_8cc_source.html b/docs/ode__rkck_8cc_source.html
index d55add2..40cd3f8 100644
--- a/docs/ode__rkck_8cc_source.html
+++ b/docs/ode__rkck_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -164,10 +164,10 @@
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
OdeRKCK(unsigned long neq)
constructs
diff --git a/docs/ode__rkck_8h.html b/docs/ode__rkck_8h.html
index 0493c3e..3625534 100644
--- a/docs/ode__rkck_8h.html
+++ b/docs/ode__rkck_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rkck_8h_source.html b/docs/ode__rkck_8h_source.html
index 198f01e..007dd88 100644
--- a/docs/ode__rkck_8h_source.html
+++ b/docs/ode__rkck_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rkf__32_8cc.html b/docs/ode__rkf__32_8cc.html
index f83b7eb..df5dbd1 100644
--- a/docs/ode__rkf__32_8cc.html
+++ b/docs/ode__rkf__32_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rkf__32_8cc_source.html b/docs/ode__rkf__32_8cc_source.html
index 03968af..4a6e63b 100644
--- a/docs/ode__rkf__32_8cc_source.html
+++ b/docs/ode__rkf__32_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -129,9 +129,9 @@
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
diff --git a/docs/ode__rkf__32_8h.html b/docs/ode__rkf__32_8h.html
index d6a3fd4..9579a1a 100644
--- a/docs/ode__rkf__32_8h.html
+++ b/docs/ode__rkf__32_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rkf__32_8h_source.html b/docs/ode__rkf__32_8h_source.html
index b446aa8..0aa538e 100644
--- a/docs/ode__rkf__32_8h_source.html
+++ b/docs/ode__rkf__32_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rosenbrock_8cc.html b/docs/ode__rosenbrock_8cc.html
index 70bf3a3..6924597 100644
--- a/docs/ode__rosenbrock_8cc.html
+++ b/docs/ode__rosenbrock_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rosenbrock_8cc_source.html b/docs/ode__rosenbrock_8cc_source.html
index 2682b08..89be374 100644
--- a/docs/ode__rosenbrock_8cc_source.html
+++ b/docs/ode__rosenbrock_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rosenbrock_8h.html b/docs/ode__rosenbrock_8h.html
index 8675692..1c13faf 100644
--- a/docs/ode__rosenbrock_8h.html
+++ b/docs/ode__rosenbrock_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__rosenbrock_8h_source.html b/docs/ode__rosenbrock_8h_source.html
index f27c4c1..b0fac45 100644
--- a/docs/ode__rosenbrock_8h_source.html
+++ b/docs/ode__rosenbrock_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__row6a_8cc.html b/docs/ode__row6a_8cc.html
index bf6216d..ed3e4d4 100644
--- a/docs/ode__row6a_8cc.html
+++ b/docs/ode__row6a_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__row6a_8cc_source.html b/docs/ode__row6a_8cc_source.html
index 9562b94..8633a28 100644
--- a/docs/ode__row6a_8cc_source.html
+++ b/docs/ode__row6a_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -226,12 +226,12 @@
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
OdeROW6A(unsigned long neq)
constructs
-double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
-unsigned long neq_
number of equations in the system of ODEs
+double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
+unsigned long neq_
number of equations in the system of ODEs
void ode_jac_(double *solin, double **Jout)
wrapper, calls ode_jac() and increments nJac;
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class for Rosenbrock methods.
diff --git a/docs/ode__row6a_8h.html b/docs/ode__row6a_8h.html
index 72c4d36..8931daa 100644
--- a/docs/ode__row6a_8h.html
+++ b/docs/ode__row6a_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__row6a_8h_source.html b/docs/ode__row6a_8h_source.html
index 0ae2ad2..700d368 100644
--- a/docs/ode__row6a_8h_source.html
+++ b/docs/ode__row6a_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__sdirk__43_8cc.html b/docs/ode__sdirk__43_8cc.html
index f0b7900..176a23a 100644
--- a/docs/ode__sdirk__43_8cc.html
+++ b/docs/ode__sdirk__43_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__sdirk__43_8cc_source.html b/docs/ode__sdirk__43_8cc_source.html
index e85183e..0c49a0e 100644
--- a/docs/ode__sdirk__43_8cc_source.html
+++ b/docs/ode__sdirk__43_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -208,14 +208,14 @@
double ** Jac_
pointer to the solver's Jacobian matrix
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
unsigned long neq_
ODE system size.
double * sol_
pointer to the solver's solution vector
-double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
+double ** Jac_
storage for the ODE system's Jacobian matrix, only allocated for the methods that need it
bool get_modified()
gets whether modified Newtion's is being used
-unsigned long neq_
number of equations in the system of ODEs
+unsigned long neq_
number of equations in the system of ODEs
void ode_jac_(double *solin, double **Jout)
wrapper, calls ode_jac() and increments nJac;
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
void set_modified(bool modified)
sets whether modified Newtion's is being used
void set_ignore_JLU(bool ignore_JLU)
sets whether no LU decompositions should be done
double gam
diagonal tableau coefficient
diff --git a/docs/ode__sdirk__43_8h.html b/docs/ode__sdirk__43_8h.html
index 5f4dc36..a25e830 100644
--- a/docs/ode__sdirk__43_8h.html
+++ b/docs/ode__sdirk__43_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__sdirk__43_8h_source.html b/docs/ode__sdirk__43_8h_source.html
index a7a4b75..09bd217 100644
--- a/docs/ode__sdirk__43_8h_source.html
+++ b/docs/ode__sdirk__43_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__ssp__3_8cc.html b/docs/ode__ssp__3_8cc.html
index 9837359..60cb5fc 100644
--- a/docs/ode__ssp__3_8cc.html
+++ b/docs/ode__ssp__3_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__ssp__3_8cc_source.html b/docs/ode__ssp__3_8cc_source.html
index b441285..ec5ef86 100644
--- a/docs/ode__ssp__3_8cc_source.html
+++ b/docs/ode__ssp__3_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -127,9 +127,9 @@
OdeSsp3(unsigned long neq)
constructs
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
diff --git a/docs/ode__ssp__3_8h.html b/docs/ode__ssp__3_8h.html
index 2e4c603..0ab67cd 100644
--- a/docs/ode__ssp__3_8h.html
+++ b/docs/ode__ssp__3_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__ssp__3_8h_source.html b/docs/ode__ssp__3_8h_source.html
index 567f8d8..d95680a 100644
--- a/docs/ode__ssp__3_8h_source.html
+++ b/docs/ode__ssp__3_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__trapz_8cc.html b/docs/ode__trapz_8cc.html
index 5f9a064..873faf6 100644
--- a/docs/ode__trapz_8cc.html
+++ b/docs/ode__trapz_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__trapz_8cc_source.html b/docs/ode__trapz_8cc_source.html
index 1bd8b4a..069324f 100644
--- a/docs/ode__trapz_8cc_source.html
+++ b/docs/ode__trapz_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -121,9 +121,9 @@
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
diff --git a/docs/ode__trapz_8h.html b/docs/ode__trapz_8h.html
index 76ad555..5961f6a 100644
--- a/docs/ode__trapz_8h.html
+++ b/docs/ode__trapz_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__trapz_8h_source.html b/docs/ode__trapz_8h_source.html
index 5b5a9aa..cd002df 100644
--- a/docs/ode__trapz_8h_source.html
+++ b/docs/ode__trapz_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__util_8cc.html b/docs/ode__util_8cc.html
index b9894a0..cd5b66d 100644
--- a/docs/ode__util_8cc.html
+++ b/docs/ode__util_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__util_8cc_source.html b/docs/ode__util_8cc_source.html
index aa659e6..990ddfd 100644
--- a/docs/ode__util_8cc_source.html
+++ b/docs/ode__util_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__util_8h.html b/docs/ode__util_8h.html
index 7c2cef2..b2c9fbf 100644
--- a/docs/ode__util_8h.html
+++ b/docs/ode__util_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__util_8h_source.html b/docs/ode__util_8h_source.html
index 88ec405..036dd5d 100644
--- a/docs/ode__util_8h_source.html
+++ b/docs/ode__util_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__vern__65_8cc.html b/docs/ode__vern__65_8cc.html
index f7a1a39..9842e38 100644
--- a/docs/ode__vern__65_8cc.html
+++ b/docs/ode__vern__65_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__vern__65_8cc_source.html b/docs/ode__vern__65_8cc_source.html
index 885241e..1664347 100644
--- a/docs/ode__vern__65_8cc_source.html
+++ b/docs/ode__vern__65_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -245,9 +245,9 @@
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
diff --git a/docs/ode__vern__65_8h.html b/docs/ode__vern__65_8h.html
index 3a58d49..96c9fec 100644
--- a/docs/ode__vern__65_8h.html
+++ b/docs/ode__vern__65_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__vern__65_8h_source.html b/docs/ode__vern__65_8h_source.html
index 0ea78b9..72f01af 100644
--- a/docs/ode__vern__65_8h_source.html
+++ b/docs/ode__vern__65_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__vern__76_8cc.html b/docs/ode__vern__76_8cc.html
index 49786fc..c378f19 100644
--- a/docs/ode__vern__76_8cc.html
+++ b/docs/ode__vern__76_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__vern__76_8cc_source.html b/docs/ode__vern__76_8cc_source.html
index 0a8df3a..c9f3abe 100644
--- a/docs/ode__vern__76_8cc_source.html
+++ b/docs/ode__vern__76_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -266,10 +266,10 @@
-double * sol_
array for the solution, changing over time
+double * sol_
array for the solution, changing over time
OdeVern76(unsigned long neq)
constructs
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
diff --git a/docs/ode__vern__76_8h.html b/docs/ode__vern__76_8h.html
index 1835bdc..0dcfc72 100644
--- a/docs/ode__vern__76_8h.html
+++ b/docs/ode__vern__76_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__vern__76_8h_source.html b/docs/ode__vern__76_8h_source.html
index 6f7af65..80d4944 100644
--- a/docs/ode__vern__76_8h_source.html
+++ b/docs/ode__vern__76_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__vern__98_8cc.html b/docs/ode__vern__98_8cc.html
index 1da5490..a914632 100644
--- a/docs/ode__vern__98_8cc.html
+++ b/docs/ode__vern__98_8cc.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__vern__98_8cc_source.html b/docs/ode__vern__98_8cc_source.html
index ca3676e..2069082 100644
--- a/docs/ode__vern__98_8cc_source.html
+++ b/docs/ode__vern__98_8cc_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
@@ -384,9 +384,9 @@
-double * sol_
array for the solution, changing over time
-unsigned long neq_
number of equations in the system of ODEs
-std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
+double * sol_
array for the solution, changing over time
+unsigned long neq_
number of equations in the system of ODEs
+std::string method_
the "name" of the solver/method, as in "Euler" or "RK4"
double * soltemp_
temporary solution vector
void ode_fun_(double *solin, double *fout)
wrapper, calls ode_fun() and increases the neval counter by one
Base class providing space for temporary solutions moving through RK stages.
diff --git a/docs/ode__vern__98_8h.html b/docs/ode__vern__98_8h.html
index 3369592..6917ac2 100644
--- a/docs/ode__vern__98_8h.html
+++ b/docs/ode__vern__98_8h.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/docs/ode__vern__98_8h_source.html b/docs/ode__vern__98_8h_source.html
index 47c6392..d875f76 100644
--- a/docs/ode__vern__98_8h_source.html
+++ b/docs/ode__vern__98_8h_source.html
@@ -31,7 +31,7 @@
libode
- A variety of explicit and implicit single-step ODE integrators as C++ classes
+ Easy to compile, fast ODE integrators as C++ classes
|
diff --git a/src/ode_base.h b/src/ode_base.h
index 365da84..549822e 100644
--- a/src/ode_base.h
+++ b/src/ode_base.h
@@ -2,8 +2,6 @@
/*!
\mainpage libode
-Easy to compile, fast ODE integrators as C++ classes
-
`libode` is a library of C++ classes for solving systems of ordinary differential equations in autonomous form. All of the solvers are single-step, Runge-Kutta-like methods. There are explicit, adaptive solvers up to the ninth order. The repository also includes Rosenbrock methods, a singly-diagonal implicit Runge-Kutta (SDIRK) method, and several fully implicit Runge-Kutta methods. However, only a few of the implicit methods have solid adaptive time steppers at this point. With the current collection of solvers and features, `libode` is well suited to any non-stiff system and to stiff systems that are tightly coupled and have a known Jacobian (ones that don't require sparse or banded matrix routines).
The classes were originally styled after [Chris Rycroft](https://people.seas.harvard.edu/~chr/)'s [example classes](https://github.com/chr1shr/am225_examples/tree/master/1a_ode_solvers). Their structure makes it easy to build a templated integrator on top of an arbitrary solver class and easily switch the solver/method. Implicit methods can be given a function for the ODE system's Jacobian or, if none is provided, the Jacobian is estimated using finite differences.
@@ -12,6 +10,32 @@ Several of the solvers and much more detail on the methods can be found in these
+ Hairer, E., Nørsett, S. P. & Wanner, G. Solving Ordinary Differential Equations I: Nonstiff Problems. (Springer-Verlag, 1987).
+ Hairer, E. & Wanner, G. Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems. (Springer, 1996).
+The table below lists all the solvers and gives some basic information about them. Papers and/or links to the derivation or original publication of the methods are often copied in the headers for the solver classes and included in the documentation. Some work still needs to be done to make the implicit methods genuinely useful, and a list of things to implement is in the `todo.txt` file.
+
+