|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r70075 - in sandbox/odeint/branches/karsten: . boost/numeric boost/numeric/odeint/integrate libs/numeric/odeint/doc libs/numeric/odeint/doc/html libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint libs/numeric/odeint/doc/html/odeint libs/numeric/odeint/examples libs/numeric/odeint/regression_test
From: karsten.ahnert_at_[hidden]
Date: 2011-03-17 15:24:28
Author: karsten
Date: 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
New Revision: 70075
URL: http://svn.boost.org/trac/boost/changeset/70075
Log:
splitting integrate functions and doc
Added:
sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate_adaptive.hpp (contents, props changed)
sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate_const.hpp (contents, props changed)
sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate_n_steps.hpp (contents, props changed)
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/getting_started.qbk
- copied, changed from r70070, /sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/short_example.qbk
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/getting_started.html (contents, props changed)
Removed:
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/short_example.html
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/odeint/
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/standalone_HTML.manifest
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/short_example.qbk
Text files modified:
sandbox/odeint/branches/karsten/TODO | 6
sandbox/odeint/branches/karsten/boost/numeric/odeint.hpp | 12 +
sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate.hpp | 94 ++-----------
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/Jamfile | 30 ++--
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/getting_started.qbk | 72 +++++----
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/concepts.html | 277 +++++++++++++++++++++------------------
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/extend_odeint.html | 6
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/reference.html | 14 +
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/tutorial.html | 226 ++++++++++++++++++++++++++------
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/index.html | 26 ++-
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/odeint.qbk | 33 ----
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/stepper_table.qbk | 12 +
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/tutorial.qbk | 8 +
sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/tutorial_harmonic_oscillator.qbk | 2
sandbox/odeint/branches/karsten/libs/numeric/odeint/examples/harmonic_oscillator.cpp | 19 +-
sandbox/odeint/branches/karsten/libs/numeric/odeint/regression_test/integrate_functions.cpp | 9
16 files changed, 478 insertions(+), 368 deletions(-)
Modified: sandbox/odeint/branches/karsten/TODO
==============================================================================
--- sandbox/odeint/branches/karsten/TODO (original)
+++ sandbox/odeint/branches/karsten/TODO 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -11,16 +11,20 @@
* include test/thrust in jam system, use system from
* ranges and the integrate functions
* symplectic intergrators and ranges
+* DOCUMENTATION
+ * include links to the source of the examples
* GENERAL:
* check if everywhere static_cast< value_type > is used
* check header guards
* check copyright note
* documente every file in the preamble
* check once more, if all contructor, destructors and assign-operators are present
-* integrate functions
+* INTEGRATE FUNCTIONS
* check forwarding problem
* check where exactly the observer will be called (before, after each step?)
* ranges
+ * functions without obversers
+ * integrate without stepper , intelligent choice of the stepper
OK * check function signatures
OK * what to throw?
OK * check lambdas, lambda is broken
Modified: sandbox/odeint/branches/karsten/boost/numeric/odeint.hpp
==============================================================================
--- sandbox/odeint/branches/karsten/boost/numeric/odeint.hpp (original)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint.hpp 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -1,12 +1,12 @@
/* Boost odeint.hpp header file
-
+
Copyright 2009 Karsten Ahnert
Copyright 2009 Mario Mulansky
Copyright 2009 Andre Bergner
-
+
This file includes *all* headers needed for integration of ordinary differential equations.
-
-
+
+
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or
copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -34,5 +34,9 @@
// #include <boost/numeric/odeint/algebra/fusion_algebra.hpp>
#include <boost/numeric/odeint/integrate/integrate.hpp>
+#include <boost/numeric/odeint/integrate/integrate_adaptive.hpp>
+#include <boost/numeric/odeint/integrate/integrate_const.hpp>
+#include <boost/numeric/odeint/integrate/integrate_n_steps.hpp>
+
#endif // BOOST_NUMERIC_ODEINT_HPP
Modified: sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate.hpp
==============================================================================
--- sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate.hpp (original)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate.hpp 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -16,97 +16,35 @@
*/
#ifndef BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_HPP_
-#define BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_CONST_HPP_
+#define BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_HPP_
-#include <boost/type_traits/is_same.hpp>
-
-#include <boost/numeric/odeint/stepper/stepper_categories.hpp>
+#include <boost/numeric/odeint/stepper/explicit_error_rk54_ck.hpp>
+#include <boost/numeric/odeint/stepper/controlled_error_stepper.hpp>
#include <boost/numeric/odeint/integrate/do_nothing_observer.hpp>
-#include <boost/numeric/odeint/integrate/detail/integrate_const.hpp>
-#include <boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp>
+#include <boost/numeric/odeint/integrate/integrate_const.hpp>
+
+
namespace boost {
namespace numeric {
namespace odeint {
-
-
-
-
-/*
- * Integrates with constant time step dt.
- */
-template< class Stepper , class System , class State , class Time , class Observer >
-size_t integrate(
- Stepper stepper , System system , State &start_state ,
- Time start_time , Time end_time , Time dt ,
- Observer observer
- )
-{
- // we want to get as fast as possible to the end
- if( boost::is_same< do_nothing_observer , Observer >::value )
- {
- return detail::integrate_adaptive(
- stepper , system , start_state ,
- start_time , end_time , dt ,
- observer , typename Stepper::stepper_category() );
- }
- else
- {
- return detail::integrate_const(
- stepper , system , start_state ,
- start_time , end_time , dt ,
- observer , typename Stepper::stepper_category() );
- }
-}
-
-
-
-
/*
- * Integrates n steps
+ * ToDo :
+ *
+ * determine type of dxdt for units
*/
-template< class Stepper , class System , class State , class Time , class Observer >
-Time integrate_n_steps(
- Stepper stepper , System system , State &start_state ,
- Time start_time , Time dt , size_t num_of_steps ,
- Observer observer )
+template< class System , class State , class Time , class Observer >
+size_t integrate( System system , State &start_state , Time start_time , Time end_time , Time dt , Observer observer )
{
- Time end_time = dt * num_of_steps;
-
- // we want to get as fast as possible to the end
- if( boost::is_same< do_nothing_observer , Observer >::type::value )
- {
- detail::integrate_adaptive(
- stepper , system , start_state ,
- start_time , end_time , dt ,
- observer , typename Stepper::stepper_category() );
- }
- else
- {
- detail::integrate_const(
- stepper , system , start_state ,
- start_time , end_time , dt ,
- observer , typename Stepper::stepper_category() );
- }
- return end_time;
+ return integrate_adaptive( controlled_error_stepper< explicit_error_rk54_ck< State > >() , system , start_state , start_time , end_time , dt , observer );
}
-
-
-
-
-template< class Stepper , class System , class State , class Time , class Observer >
-size_t integrate_adaptive(
- Stepper stepper , System system , State &start_state ,
- Time start_time , Time end_time , Time dt ,
- Observer observer )
+template< class System , class State , class Time >
+size_t integrate( System system , State &start_state , Time start_time , Time end_time , Time dt )
{
- return detail::integrate_adaptive(
- stepper , system , start_state ,
- start_time , end_time , dt ,
- observer , typename Stepper::stepper_category() );
+ return integrate( system , start_state , start_time , end_time , dt , do_nothing_observer() );
}
@@ -117,4 +55,4 @@
-#endif /* BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_CONST_HPP_ */
+#endif /* BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_HPP_ */
Added: sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate_adaptive.hpp
==============================================================================
--- (empty file)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate_adaptive.hpp 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -0,0 +1,53 @@
+/*
+ * integrate_adaptive.hpp
+ *
+ * Created on: Jan 31, 2011
+ * Author: karsten
+ */
+
+#ifndef BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_ADAPTIVE_HPP_
+#define BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_ADAPTIVE_HPP_
+
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/numeric/odeint/stepper/stepper_categories.hpp>
+#include <boost/numeric/odeint/integrate/do_nothing_observer.hpp>
+#include <boost/numeric/odeint/integrate/detail/integrate_const.hpp>
+#include <boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp>
+
+namespace boost {
+namespace numeric {
+namespace odeint {
+
+
+
+template< class Stepper , class System , class State , class Time , class Observer >
+size_t integrate_adaptive(
+ Stepper stepper , System system , State &start_state ,
+ Time start_time , Time end_time , Time dt ,
+ Observer observer )
+{
+ return detail::integrate_adaptive(
+ stepper , system , start_state ,
+ start_time , end_time , dt ,
+ observer , typename Stepper::stepper_category() );
+}
+
+template< class Stepper , class System , class State , class Time >
+size_t integrate_adaptive(
+ Stepper stepper , System system , State &start_state ,
+ Time start_time , Time end_time , Time dt )
+{
+ return integrate_adaptive( stepper , system , start_state , start_time , end_time , dt , do_nothing_observer() );
+}
+
+
+
+
+} // namespace odeint
+} // namespace numeric
+} // namespace boost
+
+
+
+#endif /* BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_ADAPTIVE_HPP_ */
Added: sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate_const.hpp
==============================================================================
--- (empty file)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate_const.hpp 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -0,0 +1,73 @@
+/*
+ * integrate_const.hpp
+ * Created on: Jan 31, 2011
+ * Author: karsten
+ */
+
+#ifndef BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_CONST_HPP_
+#define BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_CONST_HPP_
+
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/numeric/odeint/stepper/stepper_categories.hpp>
+#include <boost/numeric/odeint/integrate/do_nothing_observer.hpp>
+#include <boost/numeric/odeint/integrate/detail/integrate_const.hpp>
+#include <boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp>
+
+namespace boost {
+namespace numeric {
+namespace odeint {
+
+
+
+
+
+/*
+ * Integrates with constant time step dt.
+ */
+template< class Stepper , class System , class State , class Time , class Observer >
+size_t integrate_const(
+ Stepper stepper , System system , State &start_state ,
+ Time start_time , Time end_time , Time dt ,
+ Observer observer
+ )
+{
+ // we want to get as fast as possible to the end
+ if( boost::is_same< do_nothing_observer , Observer >::value )
+ {
+ return detail::integrate_adaptive(
+ stepper , system , start_state ,
+ start_time , end_time , dt ,
+ observer , typename Stepper::stepper_category() );
+ }
+ else
+ {
+ return detail::integrate_const(
+ stepper , system , start_state ,
+ start_time , end_time , dt ,
+ observer , typename Stepper::stepper_category() );
+ }
+}
+
+
+template< class Stepper , class System , class State , class Time >
+size_t integrate_const(
+ Stepper stepper , System system , State &start_state ,
+ Time start_time , Time end_time , Time dt
+ )
+{
+ return integrate_const( stepper , system , start_state , start_time , end_time , dt , do_nothing_observer() );
+}
+
+
+
+
+
+
+} // namespace odeint
+} // namespace numeric
+} // namespace boost
+
+
+
+#endif /* BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_CONST_HPP_ */
Added: sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate_n_steps.hpp
==============================================================================
--- (empty file)
+++ sandbox/odeint/branches/karsten/boost/numeric/odeint/integrate/integrate_n_steps.hpp 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -0,0 +1,68 @@
+/*
+ * integrate_n_steps.hpp
+ *
+ * Created on: Jan 31, 2011
+ * Author: karsten
+ */
+
+#ifndef BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_N_STEPS_HPP_
+#define BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_N_STEPS_HPP_
+
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/numeric/odeint/stepper/stepper_categories.hpp>
+#include <boost/numeric/odeint/integrate/do_nothing_observer.hpp>
+#include <boost/numeric/odeint/integrate/detail/integrate_const.hpp>
+#include <boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp>
+
+namespace boost {
+namespace numeric {
+namespace odeint {
+
+
+/*
+ * Integrates n steps
+ */
+template< class Stepper , class System , class State , class Time , class Observer >
+Time integrate_n_steps(
+ Stepper stepper , System system , State &start_state ,
+ Time start_time , Time dt , size_t num_of_steps ,
+ Observer observer )
+{
+ Time end_time = dt * num_of_steps;
+
+ // we want to get as fast as possible to the end
+ if( boost::is_same< do_nothing_observer , Observer >::type::value )
+ {
+ detail::integrate_adaptive(
+ stepper , system , start_state ,
+ start_time , end_time , dt ,
+ observer , typename Stepper::stepper_category() );
+ }
+ else
+ {
+ detail::integrate_const(
+ stepper , system , start_state ,
+ start_time , end_time , dt ,
+ observer , typename Stepper::stepper_category() );
+ }
+ return end_time;
+}
+
+template< class Stepper , class System , class State , class Time >
+Time integrate_n_steps(
+ Stepper stepper , System system , State &start_state ,
+ Time start_time , Time dt , size_t num_of_steps )
+{
+ return integrate_n_steps( stepper , system , start_state , start_time , dt , num_of_steps , do_nothing_observer() );
+}
+
+
+
+} // namespace odeint
+} // namespace numeric
+} // namespace boost
+
+
+
+#endif /* BOOST_NUMERIC_ODEINT_INTEGRATE_INTEGRATE_N_STEPS_HPP_ */
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/Jamfile
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/Jamfile (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/Jamfile 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -4,27 +4,29 @@
import quickbook ;
+import boostbook ;
project
: requirements
;
-xml odeint :
- odeint.qbk
- ;
-boostbook standalone
+boostbook odeint
:
- odeint
+ odeint.qbk
:
- <xsl:param>boost.root=../../../..
- <xsl:param>generate.section.toc.level=1
- <xsl:param>chunk.section.depth=1
- <xsl:param>chunk.first.sections=1
+ <xsl:param>navig.graphics=1
+ <xsl:param>boost.root=../../../..
+ <xsl:param>chunk.section.depth=1
+ <xsl:param>chunk.first.sections=1
+ <xsl:param>toc.section.depth=2
+ <xsl:param>toc.max.depth=2
+ <xsl:param>generate.section.toc.level=3
+# <xsl:param>chunk.section.depth=10
+# <xsl:param>chunk.first.sections=1
+# <xsl:param>toc.section.depth=10
+# <xsl:param>toc.max.depth=4
+# <xsl:param>generate.section.toc.level=10
+
;
-
-# install html :
-# /boost//doc/src/boostbook.css
-# ;
-
Copied: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/getting_started.qbk (from r70070, /sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/short_example.qbk)
==============================================================================
--- /sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/short_example.qbk (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/getting_started.qbk 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -1,50 +1,54 @@
+[section Getting started]
+
+[section Overview]
+
+Odeint is a library for solving initial value problems (IVP) of ordinary differential equations. Mathematically, these problems are formulated as follows: x'(t) = f(x,t), x(0) = x0. x and f can be vectors and the solution is some function x(t) fullfilling both equations above. In the following we will refer to x'(t) also `dxdt` which is also our notation for the derivative in the source code.
+
+Numerical approximations for the solution x(t) are calculated iteratively. The easiest algorithm is the Euler-Scheme, where starting at x(0) one finds x(dt) = x(0) + dt*f(x(0),0). Now one can use x(dt) and obtain x(2dt) in a similar way and so on. The Euler method is of order 1, that means the error at each step is ~ dt^2. This is, of course, not very satisfying, which is why the Euler method is merely used for real life problems and serves just as illustrative example. In odeint, the following algorithms are implemented:
+
+[include stepper_table.qbk]
+
+Ordinary differential equations occur nearly everywhere in natural sciences. For example, the whole Newtonian mechanics are described by second order differential equations. Be sure, you will find them in every discipline. They also occur if partial differential equations (PDEs) are discretized in one coordinate. Then, a system of coupled ordinary differential occurs, sometimes also refered as lattices ODEs.
+
+[endsect]
+
+
+
+[section Usage, Compilation, Headers]
+
+Odeint is completely header-only, meaning that you do not link against any library. It can be include by
+
+``
+#include <boost/numeric/odeint.hpp>
+``
+which includes all headers in the library. All functions and classes from odeint live in the namespace
+``
+ using namespace boost::numeric::odeint;
+``
+
+
+[endsect]
+
[section Short Example]
-This section gives a quick introduction to the most important features of the
-library using a number of instructive examples.
-Image, for example, you want to numerically integrate a harmonic oscillator
-with friction. The equations of motion are given by x'' = -x + gamma x'.
-This can be transformed to a system of two first-order differential equations
-with new variables x and p=x'. To apply numerical integration one first has to
-design the right hand side of the equation w' = f(w) where in this case
-w = (x,p):
+
+Image, you want to numerically integrate a harmonic oscillator with friction. The equations of motion are given by x'' = -x + gamma x'. This can be transformed to a system of two coupled first-order differential equations with new variables x and p=x'. To apply numerical integration one first has to design the right hand side of the equation w' = f(w) where in this case w = (x,p):
[import ../examples/harmonic_oscillator.cpp]
[rhs_function]
-Here we chose [*vector<double>] as the state type, but others are also possible,
-for example [*tr1/array<double,2>]. Odeint is designed in such a way that it
-works with basically any container that can be accessed via iterators.
-The parameter structure of the function is crucial: the integration methods will
-always call them in the form [*f(x, dxdt, t)]. So even if there is no explicit
-time dependence, one has to define [*t] as a function parameter.
+Here we chose `vector<double>` as the state type, but others are also possible, for example `tr1::array<double,2>`. Odeint is designed in such a way that you can easily use your own state types. Next, we define the ODE which is in this case a simple function. The parameter signature of this function is crucial: the integration methods will always call them in the form `f(x, dxdt, t)`. So, even if there is no explicit time dependence, one has to define `t` as a function parameter.
Now, we have to define the initial state from which the integration should start:
[state_initialization]
-For the integration itself we'll use the
-[funcref boost::numeric::odeint::integrate integrate] function, which is a
-convenient way to get quick results. It is based on the error-controlled
-[classref boost::numeric::odeint::runge_kutta_rk5_ck runge_kutta_rk5_ck] stepper
-(5th order) and uses adaptive stepsize.
-The results are stored into two InsertIterators (time and state) that must be
-provided.
+For the integration itself we'll use the [funcref boost::numeric::odeint::integrate integrate] function, which is a convenient way to get quick results. It is based on the error-controlled [classref boost::numeric::odeint::runge_kutta_rk5_ck runge_kutta_rk5_ck] stepper (5th order) and uses adaptive stepsize.
[integration]
-The integrate function expects as parameters the rhs of the ode as defined
-above, the initial state x, the start- and end-time of the integration and two
-InsertIterators for the times and states where the current time and the current
-state after each timestep is stored.
-Note, that [funcref boost::numeric::odeint::integrate integrate] uses an
-adaptive stepsize during the integration steps so the time points will not be
-equally spaced.
-The integration returns the number of steps that were applied.
-Note, that in total steps+1 elements will be inserted into times and x_t_vec as
-the initial time and state are inserted before the first step.
+The integrate function expects as parameters the rhs of the ode as defined above, the initial state x, the start-and end-time of the integration as well as the initial time step. Note, that [funcref boost::numeric::odeint::integrate integrate] uses an adaptive stepsize during the integration steps so the time points will not be equally spaced. The integration returns the number of steps that were applied.
-It is, of course, also possible to implement the ode system as a class. The rhs
-must then be defined as the ()-operator:
+It is, of course, also possible to implement the ode system as a class. The rhs must then be implemented as a functor having defined the ()-operator:
[rhs_class]
@@ -53,3 +57,5 @@
[integration_class]
[endsect]
+
+[endsect]
\ No newline at end of file
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/concepts.html
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/concepts.html (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/concepts.html 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -13,7 +13,7 @@
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="extend_odeint.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="extend_odeint.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -59,12 +59,8 @@
</colgroup>
<thead><tr>
<th>
- <p>
- </p>
</th>
<th>
- <p>
- </p>
</th>
<th>
<p>
@@ -149,23 +145,25 @@
</p>
<div class="itemizedlist"><ul type="disc">
<li>
-<code class="computeroutput"><span class="identifier">Stepper</span><span class="special">()</span></code>
- Constructor.
- </li>
-<li>
-<code class="computeroutput"><span class="identifier">Stepper</span><span class="special">(</span>
- <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code> Constructor
- that allocates internal memory to store intermediate results of the same
- size as <code class="computeroutput"><span class="identifier">x</span></code>.
- </li>
-<li><code class="computeroutput"><span class="keyword">void</span> <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span>
- <span class="special">&</span><span class="identifier">system</span>
- <span class="special">,</span> <span class="identifier">container_type</span>
- <span class="special">&</span><span class="identifier">x</span>
- <span class="special">,</span> <span class="identifier">time_type</span>
- <span class="identifier">t</span> <span class="special">,</span>
- <span class="identifier">time_type</span> <span class="identifier">dt</span>
- <span class="special">)</span></code></li>
+ <code class="computeroutput"><span class="identifier">Stepper</span><span class="special">()</span></code>
+ Constructor.
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">Stepper</span><span class="special">(</span>
+ <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code>
+ Constructor that allocates internal memory to store intermediate results
+ of the same size as <code class="computeroutput"><span class="identifier">x</span></code>.
+ </li>
+<li>
+ <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span>
+ <span class="special">&</span><span class="identifier">system</span>
+ <span class="special">,</span> <span class="identifier">container_type</span>
+ <span class="special">&</span><span class="identifier">x</span>
+ <span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="identifier">t</span> <span class="special">,</span>
+ <span class="identifier">time_type</span> <span class="identifier">dt</span>
+ <span class="special">)</span></code>
+ </li>
</ul></div>
<p>
Executes one timestep with the given parameters:
@@ -268,14 +266,16 @@
The result of this method is the (approximate) state of the system <span class="bold"><strong>x(t+dt)</strong></span> and is stored in the variable <code class="computeroutput"><span class="identifier">x</span></code> (in-place). Note, that the time <code class="computeroutput"><span class="identifier">t</span></code> is not automatically increased by this
method.
</p>
-<div class="itemizedlist"><ul type="disc"><li><code class="computeroutput"><span class="keyword">void</span> <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span>
- <span class="special">&</span><span class="identifier">system</span>
- <span class="special">,</span> <span class="identifier">container_type</span>
- <span class="special">&</span><span class="identifier">x</span>
- <span class="special">,</span> <span class="keyword">const</span>
- <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">t</span>
- <span class="special">,</span> <span class="identifier">time_type</span>
- <span class="identifier">dt</span> <span class="special">)</span></code></li></ul></div>
+<div class="itemizedlist"><ul type="disc"><li>
+ <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span>
+ <span class="special">&</span><span class="identifier">system</span>
+ <span class="special">,</span> <span class="identifier">container_type</span>
+ <span class="special">&</span><span class="identifier">x</span>
+ <span class="special">,</span> <span class="keyword">const</span>
+ <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">t</span>
+ <span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="identifier">dt</span> <span class="special">)</span></code>
+ </li></ul></div>
<p>
The same as above but with the additional parameter <code class="computeroutput"><span class="identifier">dxdt</span></code>
that represents the derivative <span class="bold"><strong>x'(t) = f(x,t)</strong></span>
@@ -283,26 +283,33 @@
</p>
<div class="itemizedlist"><ul type="disc">
<li>
-<code class="computeroutput"><span class="keyword">void</span> <span class="identifier">adjust_size</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code> Adjusts
- the internal memory to store intermediate results of the same size as
- <code class="computeroutput"><span class="identifier">x</span></code>. This function <span class="emphasis"><em>must</em></span>
- be called whenever the system size changes during the integration.
- </li>
-<li>
-<code class="computeroutput"><span class="identifier">order_type</span> <span class="identifier">order_step</span><span class="special">()</span></code> Returns the order of the algorithm. If
- <span class="bold"><strong>n</strong></span> is the order of a method, then the result
- of one iteration with the timestep <span class="bold"><strong>dt</strong></span>
- is accurate up to <span class="bold"><strong>dt^n</strong></span>. That means the
- error made by the time discretization is of order <span class="bold"><strong>dt^(n+1)</strong></span>.
- </li>
+ <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">adjust_size</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code>
+ Adjusts the internal memory to store intermediate results of the same
+ size as <code class="computeroutput"><span class="identifier">x</span></code>. This function
+ <span class="emphasis"><em>must</em></span> be called whenever the system size changes
+ during the integration.
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">order_type</span> <span class="identifier">order_step</span><span class="special">()</span></code> Returns the order of the algorithm.
+ If <span class="bold"><strong>n</strong></span> is the order of a method, then
+ the result of one iteration with the timestep <span class="bold"><strong>dt</strong></span>
+ is accurate up to <span class="bold"><strong>dt^n</strong></span>. That means the
+ error made by the time discretization is of order <span class="bold"><strong>dt^(n+1)</strong></span>.
+ </li>
</ul></div>
<p>
<span class="bold"><strong>Stepper that model this concept</strong></span>
</p>
<div class="itemizedlist"><ul type="disc">
-<li><code class="computeroutput"><span class="identifier">stepper_euler</span></code></li>
-<li><code class="computeroutput"><span class="identifier">stepper_rk4</span></code></li>
-<li><code class="computeroutput"><span class="identifier">stepper_rk78_fehlberg</span></code></li>
+<li>
+ <code class="computeroutput"><span class="identifier">stepper_euler</span></code>
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">stepper_rk4</span></code>
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">stepper_rk78_fehlberg</span></code>
+ </li>
</ul></div>
</div>
<div class="section" lang="en">
@@ -332,24 +339,26 @@
</p>
<div class="itemizedlist"><ul type="disc">
<li>
-<code class="computeroutput"><span class="identifier">Error_Stepper</span><span class="special">()</span></code>
- Constructor.
- </li>
-<li>
-<code class="computeroutput"><span class="identifier">Error_Stepper</span><span class="special">(</span>
- <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code> Constructor
- that allocates internal memory to store intermediate results of the same
- size as <code class="computeroutput"><span class="identifier">x</span></code>.
- </li>
-<li><code class="computeroutput"><span class="keyword">void</span> <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span>
- <span class="special">&</span><span class="identifier">system</span>
- <span class="special">,</span> <span class="identifier">container_type</span>
- <span class="special">&</span><span class="identifier">x</span>
- <span class="special">,</span> <span class="identifier">time_type</span>
- <span class="identifier">t</span> <span class="special">,</span>
- <span class="identifier">time_type</span> <span class="identifier">dt</span>
- <span class="special">,</span> <span class="identifier">container_type</span>
- <span class="special">&</span><span class="identifier">xerr</span><span class="special">)</span></code></li>
+ <code class="computeroutput"><span class="identifier">Error_Stepper</span><span class="special">()</span></code>
+ Constructor.
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">Error_Stepper</span><span class="special">(</span>
+ <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code>
+ Constructor that allocates internal memory to store intermediate results
+ of the same size as <code class="computeroutput"><span class="identifier">x</span></code>.
+ </li>
+<li>
+ <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span>
+ <span class="special">&</span><span class="identifier">system</span>
+ <span class="special">,</span> <span class="identifier">container_type</span>
+ <span class="special">&</span><span class="identifier">x</span>
+ <span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="identifier">t</span> <span class="special">,</span>
+ <span class="identifier">time_type</span> <span class="identifier">dt</span>
+ <span class="special">,</span> <span class="identifier">container_type</span>
+ <span class="special">&</span><span class="identifier">xerr</span><span class="special">)</span></code>
+ </li>
</ul></div>
<p>
Executes one timestep with the given parameters:
@@ -471,15 +480,17 @@
Note, that the time <code class="computeroutput"><span class="identifier">t</span></code> is
not automatically increased by this method.
</p>
-<div class="itemizedlist"><ul type="disc"><li><code class="computeroutput"><span class="keyword">void</span> <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span>
- <span class="special">&</span><span class="identifier">system</span>
- <span class="special">,</span> <span class="identifier">container_type</span>
- <span class="special">&</span><span class="identifier">x</span>
- <span class="special">,</span> <span class="keyword">const</span>
- <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">t</span>
- <span class="special">,</span> <span class="identifier">time_type</span>
- <span class="identifier">dt</span> <span class="special">,</span>
- <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">xerr</span><span class="special">)</span></code></li></ul></div>
+<div class="itemizedlist"><ul type="disc"><li>
+ <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span>
+ <span class="special">&</span><span class="identifier">system</span>
+ <span class="special">,</span> <span class="identifier">container_type</span>
+ <span class="special">&</span><span class="identifier">x</span>
+ <span class="special">,</span> <span class="keyword">const</span>
+ <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">t</span>
+ <span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="identifier">dt</span> <span class="special">,</span>
+ <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">xerr</span><span class="special">)</span></code>
+ </li></ul></div>
<p>
The same as above but with the additional parameter <code class="computeroutput"><span class="identifier">dxdt</span></code>
that represents the derivative <span class="bold"><strong>x'(t) = f(x,t)</strong></span>
@@ -487,26 +498,33 @@
</p>
<div class="itemizedlist"><ul type="disc">
<li>
-<code class="computeroutput"><span class="keyword">void</span> <span class="identifier">adjust_size</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code> Adjusts
- the internal memory to store intermediate results of the same size as
- <code class="computeroutput"><span class="identifier">x</span></code>. This function <span class="emphasis"><em>must</em></span>
- be called whenever the system size changes during the integration.
- </li>
-<li>
-<code class="computeroutput"><span class="identifier">order_type</span> <span class="identifier">order_error_step</span><span class="special">()</span></code> Returns the order of the result <span class="bold"><strong>x(t+dt)</strong></span> of the algorithm.
- </li>
-<li>
-<code class="computeroutput"><span class="identifier">order_type</span> <span class="identifier">order_error</span><span class="special">()</span></code> Returns the order of the error estimation
- of the algorithm.
- </li>
+ <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">adjust_size</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code>
+ Adjusts the internal memory to store intermediate results of the same
+ size as <code class="computeroutput"><span class="identifier">x</span></code>. This function
+ <span class="emphasis"><em>must</em></span> be called whenever the system size changes
+ during the integration.
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">order_type</span> <span class="identifier">order_error_step</span><span class="special">()</span></code> Returns the order of the result <span class="bold"><strong>x(t+dt)</strong></span> of the algorithm.
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">order_type</span> <span class="identifier">order_error</span><span class="special">()</span></code> Returns the order of the error estimation
+ of the algorithm.
+ </li>
</ul></div>
<p>
<span class="bold"><strong>Stepper that model this concept</strong></span>
</p>
<div class="itemizedlist"><ul type="disc">
-<li><code class="computeroutput"><span class="identifier">stepper_rk5_ck</span></code></li>
-<li><code class="computeroutput"><span class="identifier">stepper_rk78_fehlberg</span></code></li>
-<li><code class="computeroutput"><span class="identifier">stepper_half_step</span></code></li>
+<li>
+ <code class="computeroutput"><span class="identifier">stepper_rk5_ck</span></code>
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">stepper_rk78_fehlberg</span></code>
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">stepper_half_step</span></code>
+ </li>
</ul></div>
</div>
<div class="section" lang="en">
@@ -529,11 +547,13 @@
<p>
<span class="bold"><strong>Methods</strong></span>
</p>
-<div class="itemizedlist"><ul type="disc"><li><code class="computeroutput"><span class="identifier">Controlled_Stepper</span><span class="special">(</span>
- <span class="identifier">time_type</span> <span class="identifier">abs_err</span><span class="special">,</span> <span class="identifier">time_type</span>
- <span class="identifier">rel_err</span><span class="special">,</span>
- <span class="identifier">time_type</span> <span class="identifier">factor_x</span><span class="special">,</span> <span class="identifier">time_type</span>
- <span class="identifier">factor_dxdt</span> <span class="special">)</span></code></li></ul></div>
+<div class="itemizedlist"><ul type="disc"><li>
+ <code class="computeroutput"><span class="identifier">Controlled_Stepper</span><span class="special">(</span>
+ <span class="identifier">time_type</span> <span class="identifier">abs_err</span><span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="identifier">rel_err</span><span class="special">,</span>
+ <span class="identifier">time_type</span> <span class="identifier">factor_x</span><span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="identifier">factor_dxdt</span> <span class="special">)</span></code>
+ </li></ul></div>
<p>
Constructor that initializes the controlled stepper with several parameters
of the error control. The controlled stepper assures that the error done
@@ -554,20 +574,18 @@
</p>
<div class="itemizedlist"><ul type="disc">
<li>
-<code class="computeroutput"><span class="identifier">Controlled_Stepper</span><span class="special">(</span>
- <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">time_type</span>
- <span class="identifier">abs_err</span><span class="special">,</span>
- <span class="identifier">time_type</span> <span class="identifier">rel_err</span><span class="special">,</span> <span class="identifier">time_type</span>
- <span class="identifier">factor_x</span><span class="special">,</span>
- <span class="identifier">time_type</span> <span class="identifier">factor_dxdt</span>
- <span class="special">)</span></code> Same as above, but with additional
- allocation of the internal memory to store intermediate results of the
- same size as <code class="computeroutput"><span class="identifier">x</span></code>.
- </li>
-<li><code class="computeroutput"><span class="identifier">controlled_step_result</span> <span class="identifier">try_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span> <span class="special">&</span><span class="identifier">system</span><span class="special">,</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">time_type</span>
- <span class="special">&</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">time_type</span>
- <span class="special">&</span><span class="identifier">dt</span>
- <span class="special">)</span></code></li>
+ <code class="computeroutput"><span class="identifier">Controlled_Stepper</span><span class="special">(</span>
+ <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="identifier">abs_err</span><span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="identifier">rel_err</span><span class="special">,</span>
+ <span class="identifier">time_type</span> <span class="identifier">factor_x</span><span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="identifier">factor_dxdt</span> <span class="special">)</span></code>
+ Same as above, but with additional allocation of the internal memory
+ to store intermediate results of the same size as <code class="computeroutput"><span class="identifier">x</span></code>.
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">controlled_step_result</span> <span class="identifier">try_step</span><span class="special">(</span>
+ <span class="identifier">DynamicalSystem</span> <span class="special">&</span><span class="identifier">system</span><span class="special">,</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="identifier">dt</span> <span class="special">)</span></code>
+ </li>
</ul></div>
<p>
Tries one timestep with the given parameters
@@ -682,30 +700,37 @@
</p>
<div class="itemizedlist"><ul type="disc">
<li>
-<code class="computeroutput"><span class="identifier">controlled_step_result</span> <span class="identifier">try_step</span><span class="special">(</span> <span class="identifier">DynamicalSystem</span> <span class="special">&</span><span class="identifier">system</span><span class="special">,</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span>
- <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">dxdt</span><span class="special">,</span> <span class="identifier">time_type</span> <span class="special">&</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">time_type</span>
- <span class="special">&</span><span class="identifier">dt</span>
- <span class="special">)</span></code> Same as above but with the additional
- parameter <code class="computeroutput"><span class="identifier">dxdt</span></code> that that
- represents the derivative <span class="bold"><strong>x'(t) = f(x,t)</strong></span>
- at the time <span class="bold"><strong>t</strong></span>.
- </li>
-<li>
-<code class="computeroutput"><span class="keyword">void</span> <span class="identifier">adjust_size</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code> Adjusts
- the internal memory to store intermediate results of the same size as
- <code class="computeroutput"><span class="identifier">x</span></code>. This function <span class="emphasis"><em>must</em></span>
- be called whenever the system size changes during the integration.
- </li>
+ <code class="computeroutput"><span class="identifier">controlled_step_result</span> <span class="identifier">try_step</span><span class="special">(</span>
+ <span class="identifier">DynamicalSystem</span> <span class="special">&</span><span class="identifier">system</span><span class="special">,</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">container_type</span>
+ <span class="special">&</span><span class="identifier">dxdt</span><span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="special">&</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">time_type</span>
+ <span class="special">&</span><span class="identifier">dt</span>
+ <span class="special">)</span></code> Same as above but with the additional
+ parameter <code class="computeroutput"><span class="identifier">dxdt</span></code> that that
+ represents the derivative <span class="bold"><strong>x'(t) = f(x,t)</strong></span>
+ at the time <span class="bold"><strong>t</strong></span>.
+ </li>
+<li>
+ <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">adjust_size</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">container_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">)</span></code>
+ Adjusts the internal memory to store intermediate results of the same
+ size as <code class="computeroutput"><span class="identifier">x</span></code>. This function
+ <span class="emphasis"><em>must</em></span> be called whenever the system size changes
+ during the integration.
+ </li>
<li>
-<code class="computeroutput"><span class="identifier">order_type</span> <span class="identifier">order_error_step</span><span class="special">()</span></code> Returns the order of the result <span class="bold"><strong>x(t+dt)</strong></span> of the algorithm.
- </li>
+ <code class="computeroutput"><span class="identifier">order_type</span> <span class="identifier">order_error_step</span><span class="special">()</span></code> Returns the order of the result <span class="bold"><strong>x(t+dt)</strong></span> of the algorithm.
+ </li>
</ul></div>
<p>
<span class="bold"><strong>Stepper that model this concept</strong></span>
</p>
<div class="itemizedlist"><ul type="disc">
-<li><code class="computeroutput"><span class="identifier">controlled_stepper_standard</span></code></li>
-<li><code class="computeroutput"><span class="identifier">controlled_stepper_bs</span></code></li>
+<li>
+ <code class="computeroutput"><span class="identifier">controlled_stepper_standard</span></code>
+ </li>
+<li>
+ <code class="computeroutput"><span class="identifier">controlled_stepper_bs</span></code>
+ </li>
</ul></div>
</div>
<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
@@ -725,7 +750,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2009 Karsten Ahnert and Mario Mulansky<p>
+<td align="right"><div class="copyright-footer">Copyright © 2009 -2011 Karsten Ahnert and Mario Mulansky<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -733,7 +758,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="extend_odeint.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="extend_odeint.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/extend_odeint.html
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/extend_odeint.html (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/extend_odeint.html 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -13,7 +13,7 @@
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="tutorial.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -52,7 +52,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2009 Karsten Ahnert and Mario Mulansky<p>
+<td align="right"><div class="copyright-footer">Copyright © 2009 -2011 Karsten Ahnert and Mario Mulansky<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -60,7 +60,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="tutorial.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="tutorial.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Added: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/getting_started.html
==============================================================================
--- (empty file)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/getting_started.html 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -0,0 +1,449 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Getting started</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
+<link rel="start" href="../index.html" title="Chapter 1. boost.sandbox.numeric.odeint">
+<link rel="up" href="../index.html" title="Chapter 1. boost.sandbox.numeric.odeint">
+<link rel="prev" href="../index.html" title="Chapter 1. boost.sandbox.numeric.odeint">
+<link rel="next" href="tutorial.html" title="Tutorial">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_sandbox_numeric_odeint.getting_started"></a><a class="link" href="getting_started.html" title="Getting started">Getting started</a>
+</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section"><a href="getting_started.html#boost_sandbox_numeric_odeint.getting_started.usage__compilation__headers">Usage,
+ Compilation, Headers</a></span></dt>
+<dt><span class="section"><a href="getting_started.html#boost_sandbox_numeric_odeint.getting_started.short_example">Short
+ Example</a></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_sandbox_numeric_odeint.getting_started.overview"></a><a class="link" href="getting_started.html#boost_sandbox_numeric_odeint.getting_started.overview" title="Overview">Overview</a>
+</h3></div></div></div>
+<p>
+ Odeint is a library for solving initial value problems (IVP) of ordinary
+ differential equations. Mathematically, these problems are formulated as
+ follows: x'(t) = f(x,t), x(0) = x0. x and f can be vectors and the solution
+ is some function x(t) fullfilling both equations above. In the following
+ we will refer to x'(t) also <code class="computeroutput"><span class="identifier">dxdt</span></code>
+ which is also our notation for the derivative in the source code.
+ </p>
+<p>
+ Numerical approximations for the solution x(t) are calculated iteratively.
+ The easiest algorithm is the Euler-Scheme, where starting at x(0) one finds
+ x(dt) = x(0) + dt*f(x(0),0). Now one can use x(dt) and obtain x(2dt) in a
+ similar way and so on. The Euler method is of order 1, that means the error
+ at each step is ~ dt^2. This is, of course, not very satisfying, which is
+ why the Euler method is merely used for real life problems and serves just
+ as illustrative example. In odeint, the following algorithms are implemented:
+ </p>
+<div class="table">
+<a name="id518202"></a><p class="title"><b>Table 1.1. Stepper Algorithms</b></p>
+<div class="table-contents"><table class="table" summary="Stepper Algorithms">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Method
+ </p>
+ </th>
+<th>
+ <p>
+ Class
+ </p>
+ </th>
+<th>
+ <p>
+ Order
+ </p>
+ </th>
+<th>
+ <p>
+ Error Estimation
+ </p>
+ </th>
+<th>
+ <p>
+ Dense Output
+ </p>
+ </th>
+<th>
+ <p>
+ Remarks
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ Explicit Euler
+ </p>
+ </td>
+<td>
+ <p>
+ explicit_euler
+ </p>
+ </td>
+<td>
+ <p>
+ 1
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ Very simple, only for demonstrating purposes
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Runge-Kutta 4
+ </p>
+ </td>
+<td>
+ <p>
+ explicit_rkrk4
+ </p>
+ </td>
+<td>
+ <p>
+ 4
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ Good default method
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Runge-Kutta Cash-Karp
+ </p>
+ </td>
+<td>
+ <p>
+ explicit_error_rk54_ck
+ </p>
+ </td>
+<td>
+ <p>
+ 5
+ </p>
+ </td>
+<td>
+ <p>
+ Yes (Order 4)
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ ...
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Dormand-Prince 5
+ </p>
+ </td>
+<td>
+ <p>
+ explicit_error_dopri5
+ </p>
+ </td>
+<td>
+ <p>
+ 5
+ </p>
+ </td>
+<td>
+ <p>
+ Yes (Order 4)
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ ...
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Implicit Euler
+ </p>
+ </td>
+<td>
+ <p>
+ implicit_euler
+ </p>
+ </td>
+<td>
+ <p>
+ 1
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ Needs the Jacobian
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Rosenbrock 4
+ </p>
+ </td>
+<td>
+ <p>
+ rosenbrock4
+ </p>
+ </td>
+<td>
+ <p>
+ 4
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ Good for stiff systems
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><p>
+ Ordinary differential equations occur nearly everywhere in natural sciences.
+ For example, the whole Newtonian mechanics are described by second order
+ differential equations. Be sure, you will find them in every discipline.
+ They also occur if partial differential equations (PDEs) are discretized
+ in one coordinate. Then, a system of coupled ordinary differential occurs,
+ sometimes also refered as lattices ODEs.
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_sandbox_numeric_odeint.getting_started.usage__compilation__headers"></a><a class="link" href="getting_started.html#boost_sandbox_numeric_odeint.getting_started.usage__compilation__headers" title="Usage, Compilation, Headers">Usage,
+ Compilation, Headers</a>
+</h3></div></div></div>
+<p>
+ Odeint is completely header-only, meaning that you do not link against any
+ library. It can be include by
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">odeint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ which includes all headers in the library. All functions and classes from
+ odeint live in the namespace
+</p>
+<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">numeric</span><span class="special">::</span><span class="identifier">odeint</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_sandbox_numeric_odeint.getting_started.short_example"></a><a class="link" href="getting_started.html#boost_sandbox_numeric_odeint.getting_started.short_example" title="Short Example">Short
+ Example</a>
+</h3></div></div></div>
+<p>
+ Image, you want to numerically integrate a harmonic oscillator with friction.
+ The equations of motion are given by x'' = -x + gamma x'. This can be transformed
+ to a system of two coupled first-order differential equations with new variables
+ x and p=x'. To apply numerical integration one first has to design the right
+ hand side of the equation w' = f(w) where in this case w = (x,p):
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="comment">/* The type of container used to hold the state vector */</span>
+<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span>
+
+<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">gam</span> <span class="special">=</span> <span class="number">0.15</span><span class="special">;</span>
+
+<span class="comment">/* The rhs of x' = f(x) */</span>
+<span class="keyword">void</span> <span class="identifier">harmonic_oscillator</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span>
+<span class="special">{</span>
+ <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span>
+ <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">gam</span><span class="special">*</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Here we chose <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></code>
+ as the state type, but others are also possible, for example <code class="computeroutput"><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span><span class="number">2</span><span class="special">></span></code>.
+ Odeint is designed in such a way that you can easily use your own state types.
+ Next, we define the ODE which is in this case a simple function. The parameter
+ signature of this function is crucial: the integration methods will always
+ call them in the form <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">dxdt</span><span class="special">,</span> <span class="identifier">t</span><span class="special">)</span></code>.
+ So, even if there is no explicit time dependence, one has to define <code class="computeroutput"><span class="identifier">t</span></code> as a function parameter.
+ </p>
+<p>
+ Now, we have to define the initial state from which the integration should
+ start:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">state_type</span> <span class="identifier">x</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
+<span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> <span class="comment">// start at x=1.0, p=0.0
+</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ For the integration itself we'll use the <code class="computeroutput">integrate</code>
+ function, which is a convenient way to get quick results. It is based on
+ the error-controlled <code class="computeroutput">runge_kutta_rk5_ck</code>
+ stepper (5th order) and uses adaptive stepsize.
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">times</span><span class="special">;</span>
+<span class="identifier">vector</span><span class="special"><</span><span class="identifier">state_type</span><span class="special">></span> <span class="identifier">x_t_vec</span><span class="special">;</span>
+
+<span class="identifier">size_t</span> <span class="identifier">steps</span> <span class="special">=</span> <span class="identifier">integrate</span><span class="special">(</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span>
+ <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.1</span>
+ <span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ The integrate function expects as parameters the rhs of the ode as defined
+ above, the initial state x, the start-and end-time of the integration as
+ well as the initial time step. Note, that <code class="computeroutput">integrate</code>
+ uses an adaptive stepsize during the integration steps so the time points
+ will not be equally spaced. The integration returns the number of steps that
+ were applied.
+ </p>
+<p>
+ It is, of course, also possible to implement the ode system as a class. The
+ rhs must then be implemented as a functor having defined the ()-operator:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">harm_osc</span> <span class="special">{</span>
+
+ <span class="keyword">double</span> <span class="identifier">m_gam</span><span class="special">;</span>
+
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="identifier">harm_osc</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">gam</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_gam</span><span class="special">(</span><span class="identifier">gam</span><span class="special">)</span> <span class="special">{</span> <span class="special">}</span>
+
+ <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()</span> <span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span>
+ <span class="special">{</span>
+ <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span>
+ <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">m_gam</span><span class="special">*</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+<p>
+ which can be used via
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">harm_osc</span> <span class="identifier">ho</span><span class="special">(</span><span class="number">0.15</span><span class="special">);</span>
+<span class="identifier">steps</span> <span class="special">=</span> <span class="identifier">integrate</span><span class="special">(</span> <span class="identifier">ho</span> <span class="special">,</span>
+ <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.1</span>
+ <span class="special">);</span>
+</pre>
+<p>
+ </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2009 -2011 Karsten Ahnert and Mario Mulansky<p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/reference.html
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/reference.html (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/reference.html 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -12,7 +12,7 @@
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="concepts.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
+<a accesskey="p" href="concepts.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -33,7 +33,7 @@
classes</a>
</h3></div></div></div>
<div class="table">
-<a name="id372998"></a><p class="title"><b>Table 1.3. Stepper Algorithms</b></p>
+<a name="id565007"></a><p class="title"><b>Table 1.3. Stepper Algorithms</b></p>
<div class="table-contents"><table class="table" summary="Stepper Algorithms">
<colgroup>
<col>
@@ -206,6 +206,12 @@
<a name="boost_sandbox_numeric_odeint.reference.integration_functions"></a><a class="link" href="reference.html#boost_sandbox_numeric_odeint.reference.integration_functions" title="Integration functions">Integration
functions</a>
</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="reference.html#boost_sandbox_numeric_odeint.reference.integration_functions.constant_step_size_functions">Constant
+ step-size functions</a></span></dt>
+<dt><span class="section"><a href="reference.html#boost_sandbox_numeric_odeint.reference.integration_functions.adaptive_step_size_functions">Adaptive
+ step-size functions</a></span></dt>
+</dl></div>
<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
<a name="boost_sandbox_numeric_odeint.reference.integration_functions.constant_step_size_functions"></a><a class="link" href="reference.html#boost_sandbox_numeric_odeint.reference.integration_functions.constant_step_size_functions" title="Constant step-size functions">Constant
step-size functions</a>
@@ -227,7 +233,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2009 Karsten Ahnert and Mario Mulansky<p>
+<td align="right"><div class="copyright-footer">Copyright © 2009 -2011 Karsten Ahnert and Mario Mulansky<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -235,7 +241,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="concepts.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
+<a accesskey="p" href="concepts.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
</div>
</body>
</html>
Deleted: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/short_example.html
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/short_example.html 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
+++ (empty file)
@@ -1,171 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>Short Example</title>
-<link rel="stylesheet" href="../boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
-<link rel="start" href="../index.html" title="Chapter 1. boost.sandbox.numeric.odeint">
-<link rel="up" href="../index.html" title="Chapter 1. boost.sandbox.numeric.odeint">
-<link rel="prev" href="../odeint/overview.html" title="Overview">
-<link rel="next" href="tutorial.html" title="Tutorial">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="../odeint/overview.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
-</div>
-<div class="section" lang="en">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_sandbox_numeric_odeint.short_example"></a><a class="link" href="short_example.html" title="Short Example">Short Example</a>
-</h2></div></div></div>
-<p>
- This section gives a quick introduction to the most important features of the
- library using a number of instructive examples. Image, for example, you want
- to numerically integrate a harmonic oscillator with friction. The equations
- of motion are given by x'' = -x + gamma x'. This can be transformed to a system
- of two first-order differential equations with new variables x and p=x'. To
- apply numerical integration one first has to design the right hand side of
- the equation w' = f(w) where in this case w = (x,p):
- </p>
-<p>
- </p>
-<p>
-
-</p>
-<pre class="programlisting"><span class="comment">/* The type of container used to hold the state vector */</span>
-<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span>
-
-<span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">gam</span> <span class="special">=</span> <span class="number">0.15</span><span class="special">;</span>
-
-<span class="comment">/* The rhs of x' = f(x) */</span>
-<span class="keyword">void</span> <span class="identifier">harmonic_oscillator</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span>
-<span class="special">{</span>
- <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span>
- <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">gam</span><span class="special">*</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span>
-<span class="special">}</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
- Here we chose <span class="bold"><strong>vector<double></strong></span> as the
- state type, but others are also possible, for example <span class="bold"><strong>tr1/array<double,2></strong></span>.
- Odeint is designed in such a way that it works with basically any container
- that can be accessed via iterators. The parameter structure of the function
- is crucial: the integration methods will always call them in the form <span class="bold"><strong>f(x, dxdt, t)</strong></span>. So even if there is no explicit time
- dependence, one has to define <span class="bold"><strong>t</strong></span> as a function
- parameter.
- </p>
-<p>
- Now, we have to define the initial state from which the integration should
- start:
- </p>
-<p>
- </p>
-<p>
-
-</p>
-<pre class="programlisting"><span class="identifier">state_type</span> <span class="identifier">x</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
-<span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="number">1.0</span><span class="special">;</span> <span class="comment">// start at x=1.0, p=0.0
-</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
- For the integration itself we'll use the <code class="computeroutput">integrate</code>
- function, which is a convenient way to get quick results. It is based on the
- error-controlled <code class="computeroutput">runge_kutta_rk5_ck</code>
- stepper (5th order) and uses adaptive stepsize. The results are stored into
- two InsertIterators (time and state) that must be provided.
- </p>
-<p>
- </p>
-<p>
-
-</p>
-<pre class="programlisting"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">times</span><span class="special">;</span>
-<span class="identifier">vector</span><span class="special"><</span><span class="identifier">state_type</span><span class="special">></span> <span class="identifier">x_t_vec</span><span class="special">;</span>
-
-<span class="identifier">size_t</span> <span class="identifier">steps</span> <span class="special">=</span> <span class="identifier">integrate</span><span class="special">(</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span>
- <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span>
- <span class="identifier">back_inserter</span><span class="special">(</span> <span class="identifier">times</span> <span class="special">)</span> <span class="special">,</span>
- <span class="identifier">back_inserter</span><span class="special">(</span> <span class="identifier">x_t_vec</span> <span class="special">)</span> <span class="special">);</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
- The integrate function expects as parameters the rhs of the ode as defined
- above, the initial state x, the start- and end-time of the integration and
- two InsertIterators for the times and states where the current time and the
- current state after each timestep is stored. Note, that <code class="computeroutput">integrate</code>
- uses an adaptive stepsize during the integration steps so the time points will
- not be equally spaced. The integration returns the number of steps that were
- applied. Note, that in total steps+1 elements will be inserted into times and
- x_t_vec as the initial time and state are inserted before the first step.
- </p>
-<p>
- It is, of course, also possible to implement the ode system as a class. The
- rhs must then be defined as the ()-operator:
- </p>
-<p>
- </p>
-<p>
-
-</p>
-<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">harm_osc</span> <span class="special">{</span>
-
- <span class="keyword">double</span> <span class="identifier">m_gam</span><span class="special">;</span>
-
-<span class="keyword">public</span><span class="special">:</span>
- <span class="identifier">harm_osc</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">gam</span> <span class="special">)</span> <span class="special">:</span> <span class="identifier">m_gam</span><span class="special">(</span><span class="identifier">gam</span><span class="special">)</span> <span class="special">{</span> <span class="special">}</span>
-
- <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()</span> <span class="special">(</span> <span class="keyword">const</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">x</span> <span class="special">,</span> <span class="identifier">state_type</span> <span class="special">&</span><span class="identifier">dxdt</span> <span class="special">,</span> <span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">t</span> <span class="special">)</span>
- <span class="special">{</span>
- <span class="identifier">dxdt</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span>
- <span class="identifier">dxdt</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="special">-</span><span class="identifier">x</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">-</span> <span class="identifier">m_gam</span><span class="special">*</span><span class="identifier">x</span><span class="special">[</span><span class="number">1</span><span class="special">];</span>
- <span class="special">}</span>
-<span class="special">};</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-<p>
- which can be used via
- </p>
-<p>
- </p>
-<p>
-
-</p>
-<pre class="programlisting"><span class="identifier">harm_osc</span> <span class="identifier">ho</span><span class="special">(</span><span class="number">0.15</span><span class="special">);</span>
-<span class="identifier">steps</span> <span class="special">=</span> <span class="identifier">integrate</span><span class="special">(</span> <span class="identifier">ho</span> <span class="special">,</span>
- <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span>
- <span class="identifier">back_inserter</span><span class="special">(</span> <span class="identifier">times</span> <span class="special">)</span> <span class="special">,</span>
- <span class="identifier">back_inserter</span><span class="special">(</span> <span class="identifier">x_t_vec</span> <span class="special">)</span> <span class="special">);</span>
-</pre>
-<p>
- </p>
-<p>
- </p>
-</div>
-<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2009 Karsten Ahnert and Mario Mulansky<p>
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- </p>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="../odeint/overview.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorial.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/tutorial.html
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/tutorial.html (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/boost_sandbox_numeric_odeint/tutorial.html 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -6,14 +6,14 @@
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="../index.html" title="Chapter 1. boost.sandbox.numeric.odeint">
<link rel="up" href="../index.html" title="Chapter 1. boost.sandbox.numeric.odeint">
-<link rel="prev" href="short_example.html" title="Short Example">
+<link rel="prev" href="getting_started.html" title="Getting started">
<link rel="next" href="extend_odeint.html" title="Extend odeint">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="short_example.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="extend_odeint.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="getting_started.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="extend_odeint.html"><img src="../images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
@@ -28,8 +28,8 @@
systems and Lyapunov exponents</a></span></dt>
<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.stiff_systems">Stiff
systems</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.different_steppers">Different
- steppers</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.odeint_in_detail">Odeint
+ in detail</a></span></dt>
<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics">Special
topics</a></span></dt>
<dt><span class="section">References</span></dt>
@@ -39,6 +39,16 @@
<a name="boost_sandbox_numeric_odeint.tutorial.harmonic_oscillator"></a><a class="link" href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.harmonic_oscillator" title="Harmonic oscillator">Harmonic
oscillator</a>
</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode">Define
+ the ODE</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.harmonic_oscillator.stepper_types">Stepper
+ Types</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.harmonic_oscillator.integration_with_constant_step_size">Integration
+ with Constant Step Size</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.harmonic_oscillator.integration_with_adaptive_step_size">Integration
+ with Adaptive Step Size</a></span></dt>
+</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_sandbox_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode"></a><a class="link" href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.harmonic_oscillator.define_the_ode" title="Define the ODE">Define
@@ -65,9 +75,7 @@
to just define a function, e.g:
</p>
<p>
- </p>
-<p>
-
+
</p>
<pre class="programlisting"><span class="comment">/* The type of container used to hold the state vector */</span>
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span> <span class="keyword">double</span> <span class="special">></span> <span class="identifier">state_type</span><span class="special">;</span>
@@ -82,8 +90,6 @@
<span class="special">}</span>
</pre>
<p>
- </p>
-<p>
</p>
<p>
The parameters of the function must follow the example above where <span class="bold"><strong>x</strong></span> is the current state, <span class="bold"><strong>dxdt</strong></span>
@@ -97,9 +103,7 @@
parameter structure as above:
</p>
<p>
- </p>
-<p>
-
+
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">harm_osc</span> <span class="special">{</span>
@@ -116,8 +120,6 @@
<span class="special">};</span>
</pre>
<p>
- </p>
-<p>
</p>
<p>
odeint can deal with instances of such classes instead of pure functions
@@ -141,13 +143,15 @@
choose:
</p>
<div class="table">
-<a name="id368985"></a><p class="title"><b>Table 1.2. Stepper Algorithms</b></p>
+<a name="id560646"></a><p class="title"><b>Table 1.2. Stepper Algorithms</b></p>
<div class="table-contents"><table class="table" summary="Stepper Algorithms">
<colgroup>
<col>
<col>
<col>
<col>
+<col>
+<col>
</colgroup>
<thead><tr>
<th>
@@ -170,6 +174,16 @@
Error Estimation
</p>
</th>
+<th>
+ <p>
+ Dense Output
+ </p>
+ </th>
+<th>
+ <p>
+ Remarks
+ </p>
+ </th>
</tr></thead>
<tbody>
<tr>
@@ -193,6 +207,16 @@
No
</p>
</td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ Very simple, only for demonstrating purposes
+ </p>
+ </td>
</tr>
<tr>
<td>
@@ -215,6 +239,16 @@
No
</p>
</td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ Good default method
+ </p>
+ </td>
</tr>
<tr>
<td>
@@ -237,6 +271,16 @@
Yes (Order 4)
</p>
</td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ ...
+ </p>
+ </td>
</tr>
<tr>
<td>
@@ -259,6 +303,80 @@
Yes (Order 4)
</p>
</td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ ...
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Implicit Euler
+ </p>
+ </td>
+<td>
+ <p>
+ implicit_euler
+ </p>
+ </td>
+<td>
+ <p>
+ 1
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ No
+ </p>
+ </td>
+<td>
+ <p>
+ Needs the Jacobian
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ Rosenbrock 4
+ </p>
+ </td>
+<td>
+ <p>
+ rosenbrock4
+ </p>
+ </td>
+<td>
+ <p>
+ 4
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ Yes
+ </p>
+ </td>
+<td>
+ <p>
+ Good for stiff systems
+ </p>
+ </td>
</tr>
</tbody>
</table></div>
@@ -288,16 +406,12 @@
<span class="special">)</span></code> function from odeint:
</p>
<p>
- </p>
-<p>
-
+
</p>
<pre class="programlisting"><span class="identifier">explicit_rk4</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">stepper</span><span class="special">;</span>
<span class="identifier">integrate_const</span><span class="special">(</span> <span class="identifier">stepper</span> <span class="special">,</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span>
</pre>
<p>
- </p>
-<p>
</p>
<p>
This call integrates the system defined by <code class="computeroutput"><span class="identifier">harmonic_oscillator</span></code>
@@ -308,16 +422,13 @@
method which can used directly. So, you write down the above example as
</p>
<p>
- </p>
-<p>
-
+
</p>
-<pre class="programlisting"><span class="keyword">for</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">t</span><span class="special">=</span><span class="number">0.0</span> <span class="special">;</span> <span class="identifier">t</span><span class="special"><</span><span class="number">10.0</span> <span class="special">;</span> <span class="identifier">t</span><span class="special">+=</span> <span class="identifier">dt</span> <span class="special">)</span>
+<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">dt</span> <span class="special">=</span> <span class="number">0.01</span><span class="special">;</span>
+<span class="keyword">for</span><span class="special">(</span> <span class="keyword">double</span> <span class="identifier">t</span><span class="special">=</span><span class="number">0.0</span> <span class="special">;</span> <span class="identifier">t</span><span class="special"><</span><span class="number">10.0</span> <span class="special">;</span> <span class="identifier">t</span><span class="special">+=</span> <span class="identifier">dt</span> <span class="special">)</span>
<span class="identifier">stepper</span><span class="special">.</span><span class="identifier">do_step</span><span class="special">(</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="identifier">t</span> <span class="special">,</span> <span class="identifier">dt</span> <span class="special">);</span>
</pre>
<p>
- </p>
-<p>
</p>
</div>
<div class="section" lang="en">
@@ -335,16 +446,12 @@
4th order error estimation and coefficients introduced by Cash-Karp.
</p>
<p>
- </p>
-<p>
-
+
</p>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">explicit_error_rk54_ck</span><span class="special"><</span> <span class="identifier">state_type</span> <span class="special">></span> <span class="identifier">error_stepper_type</span><span class="special">;</span>
<span class="identifier">error_stepper_type</span> <span class="identifier">rk54</span><span class="special">;</span>
</pre>
<p>
- </p>
-<p>
</p>
<p>
Given the error stepper, one still needs an instance that checks the error
@@ -368,17 +475,13 @@
stepper create by <code class="computeroutput"><span class="identifier">make_controlled_stepper_standard</span></code>.
</p>
<p>
- </p>
-<p>
-
+
</p>
-<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">controlled_error_stepper</span><span class="special"><</span> <span class="identifier">error_stepper_type</span> <span class="special">></span> <span class="identifier">controlled_stepper_type</span>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">controlled_error_stepper</span><span class="special"><</span> <span class="identifier">error_stepper_type</span> <span class="special">></span> <span class="identifier">controlled_stepper_type</span><span class="special">;</span>
<span class="identifier">controlled_stepper_type</span> <span class="identifier">controlled_stepper</span><span class="special">;</span>
-<span class="identifier">integrate_adaptive</span><span class="special">(</span> <span class="identifier">controlled_stepper</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span>
+<span class="identifier">integrate_adaptive</span><span class="special">(</span> <span class="identifier">controlled_stepper</span> <span class="special">,</span> <span class="identifier">harmonic_oscillator</span> <span class="special">,</span> <span class="identifier">x</span> <span class="special">,</span> <span class="number">0.0</span> <span class="special">,</span> <span class="number">10.0</span> <span class="special">,</span> <span class="number">0.01</span> <span class="special">);</span>
</pre>
<p>
- </p>
-<p>
</p>
<p>
As above, this integrates the system defined by <code class="computeroutput"><span class="identifier">harmonic_oscillator</span></code>
@@ -388,7 +491,7 @@
</p>
</div>
<p>
- [Some details]
+ Some details
</p>
<p>
Observers
@@ -402,6 +505,12 @@
<a name="boost_sandbox_numeric_odeint.tutorial.solar_system"></a><a class="link" href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.solar_system" title="Solar system">Solar
system</a>
</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation">Gravitation
+ and energy conservation</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.solar_system.define_the_system_function">Define
+ the system function</a></span></dt>
+</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_sandbox_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation"></a><a class="link" href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.solar_system.gravitation_and_energy_conservation" title="Gravitation and energy conservation">Gravitation
@@ -525,10 +634,13 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_sandbox_numeric_odeint.tutorial.different_steppers"></a><a class="link" href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.different_steppers" title="Different steppers">Different
- steppers</a>
+<a name="boost_sandbox_numeric_odeint.tutorial.odeint_in_detail"></a><a class="link" href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.odeint_in_detail" title="Odeint in detail">Odeint
+ in detail</a>
</h3></div></div></div>
<p>
+ Different steppers
+ </p>
+<p>
Explicit steppers
</p>
<p>
@@ -549,6 +661,30 @@
<a name="boost_sandbox_numeric_odeint.tutorial.special_topics"></a><a class="link" href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics" title="Special topics">Special
topics</a>
</h3></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.complex_state_types">Complex
+ state types</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.lattice_systems">Lattice
+ systems</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.partial_differential_equations">Partial
+ differential equations</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.using_boost__units">Using
+ boost::units</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.using_cuda_and_thrust">Using
+ Cuda and Thrust</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.using_matrices_as_state_types">Using
+ matrices as state types</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.ordinary_differential_equations_on_networks">Ordinary
+ differential equations on networks</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.pass_by_value_or_by_reference">Pass
+ by value or by reference</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.using_boost__range">Using
+ boost::range</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.using_arbitrary_precision_floating_point_types">Using
+ arbitrary precision floating point types</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.self_expanding_lattices">Self
+ expanding lattices</a></span></dt>
+</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_sandbox_numeric_odeint.tutorial.special_topics.complex_state_types"></a><a class="link" href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.complex_state_types" title="Complex state types">Complex
@@ -646,6 +782,10 @@
GMP
</p>
</div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
+<a name="boost_sandbox_numeric_odeint.tutorial.special_topics.self_expanding_lattices"></a><a class="link" href="tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics.self_expanding_lattices" title="Self expanding lattices">Self
+ expanding lattices</a>
+</h4></div></div></div></div>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
@@ -696,7 +836,7 @@
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright © 2009 Karsten Ahnert and Mario Mulansky<p>
+<td align="right"><div class="copyright-footer">Copyright © 2009 -2011 Karsten Ahnert and Mario Mulansky<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -704,7 +844,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="short_example.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="extend_odeint.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="getting_started.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="extend_odeint.html"><img src="../images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/index.html
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/index.html (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/index.html 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -5,12 +5,12 @@
<link rel="stylesheet" href="boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="index.html" title="Chapter 1. boost.sandbox.numeric.odeint">
-<link rel="next" href="odeint/overview.html" title="Overview">
+<link rel="next" href="boost_sandbox_numeric_odeint/getting_started.html" title="Getting started">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
-<div class="spirit-nav"><a accesskey="n" href="odeint/overview.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_sandbox_numeric_odeint/getting_started.html"><img src="images/next.png" alt="Next"></a></div>
<div class="chapter" lang="en">
<div class="titlepage"><div>
<div><h2 class="title">
@@ -21,9 +21,9 @@
<div><div class="author"><h3 class="author">
<span class="firstname">Mario</span> <span class="surname">Mulansky</span>
</h3></div></div>
-<div><p class="copyright">Copyright © 2009 Karsten Ahnert and Mario Mulansky</p></div>
+<div><p class="copyright">Copyright © 2009 -2011 Karsten Ahnert and Mario Mulansky</p></div>
<div><div class="legalnotice">
-<a name="id358089"></a><p>
+<a name="id549573"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -32,8 +32,14 @@
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
-<dt><span class="section">Overview</span></dt>
-<dt><span class="section">Short Example</span></dt>
+<dt><span class="section">Getting started</span></dt>
+<dd><dl>
+<dt><span class="section">Overview</span></dt>
+<dt><span class="section"><a href="boost_sandbox_numeric_odeint/getting_started.html#boost_sandbox_numeric_odeint.getting_started.usage__compilation__headers">Usage,
+ Compilation, Headers</a></span></dt>
+<dt><span class="section"><a href="boost_sandbox_numeric_odeint/getting_started.html#boost_sandbox_numeric_odeint.getting_started.short_example">Short
+ Example</a></span></dt>
+</dl></dd>
<dt><span class="section">Tutorial</span></dt>
<dd><dl>
<dt><span class="section"><a href="boost_sandbox_numeric_odeint/tutorial.html#boost_sandbox_numeric_odeint.tutorial.harmonic_oscillator">Harmonic
@@ -44,8 +50,8 @@
systems and Lyapunov exponents</a></span></dt>
<dt><span class="section"><a href="boost_sandbox_numeric_odeint/tutorial.html#boost_sandbox_numeric_odeint.tutorial.stiff_systems">Stiff
systems</a></span></dt>
-<dt><span class="section"><a href="boost_sandbox_numeric_odeint/tutorial.html#boost_sandbox_numeric_odeint.tutorial.different_steppers">Different
- steppers</a></span></dt>
+<dt><span class="section"><a href="boost_sandbox_numeric_odeint/tutorial.html#boost_sandbox_numeric_odeint.tutorial.odeint_in_detail">Odeint
+ in detail</a></span></dt>
<dt><span class="section"><a href="boost_sandbox_numeric_odeint/tutorial.html#boost_sandbox_numeric_odeint.tutorial.special_topics">Special
topics</a></span></dt>
<dt><span class="section">References</span></dt>
@@ -87,10 +93,10 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: March 17, 2011 at 15:42:07 GMT</small></p></td>
+<td align="left"><p><small>Last revised: March 17, 2011 at 19:18:46 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
-<div class="spirit-nav"><a accesskey="n" href="odeint/overview.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_sandbox_numeric_odeint/getting_started.html"><img src="images/next.png" alt="Next"></a></div>
</body>
</html>
Deleted: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/standalone_HTML.manifest
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/html/standalone_HTML.manifest 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
+++ (empty file)
@@ -1,7 +0,0 @@
-index.html
-odeint/overview.html
-boost_sandbox_numeric_odeint/short_example.html
-boost_sandbox_numeric_odeint/tutorial.html
-boost_sandbox_numeric_odeint/extend_odeint.html
-boost_sandbox_numeric_odeint/concepts.html
-boost_sandbox_numeric_odeint/reference.html
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/odeint.qbk
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/odeint.qbk (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/odeint.qbk 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -1,7 +1,7 @@
[library boost.sandbox.numeric.odeint
[quickbook 1.3]
[authors [Ahnert, Karsten], [Mulansky, Mario]]
- [copyright 2009 Karsten Ahnert and Mario Mulansky]
+ [copyright 2009-2011 Karsten Ahnert and Mario Mulansky]
[category math]
[id odeint]
[dirname odeint]
@@ -15,36 +15,7 @@
]
]
-[section Overview]
-
-Odeint is a library for solving initial value problems (IVP) of ordinary
-differential equations.
-Mathematically, these problems are formulated as follows: [*x'(t) = f(x,t)],
-[*x(0) = x0]. [*x] and [*f] can
-be vectors and the solution is some function [*x(t)] fullfilling both equations
-above.
-Numerical approximations for the solution x(t) are calculated iteratively.
-The easiest algorithm is the /Euler-Scheme/, where starting at x(0) one
-finds x(dt) = x(0) + dt*f(x(0),0).
-Now one can use x(dt) and obtain x(2dt) in a similar way and so on.
-The Euler method is of order 1, that means the error at each step is ~ dt[superscript 2].
-This is, of course, not very satisfying, which is why the Euler method is
-merely used for real life problems and serves just as illustrative example.
-In [*odeint], the following algorithms are implemented:
-
-[table Stepper Algorithms
- [[Method] [Class] [Order] [Error Estimation]]
- [[Euler] [stepper_euler] [1] [No]]
- [[Runge-Kutta 4] [stepper_rk4] [4] [No]]
- [[Runge-Kutta Cash-Karp] [stepper_rk5_ck] [5] [Yes (Order 4)]]
- [[Runge-Kutta Fehlberg] [stepper_rk78_fehlberg] [7] [Yes (Order 8)]]
- [[Midpoint] [stepper_midpoint] [variable] [No]]
- [[Bulirsch-Stoer] [controlled_stepper_bs] [variable] [Controlled]]
-]
-
-[endsect]
-
-[include short_example.qbk]
+[include getting_started.qbk]
[include tutorial.qbk]
Deleted: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/short_example.qbk
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/short_example.qbk 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
+++ (empty file)
@@ -1,55 +0,0 @@
-[section Short Example]
-This section gives a quick introduction to the most important features of the
-library using a number of instructive examples.
-Image, for example, you want to numerically integrate a harmonic oscillator
-with friction. The equations of motion are given by x'' = -x + gamma x'.
-This can be transformed to a system of two first-order differential equations
-with new variables x and p=x'. To apply numerical integration one first has to
-design the right hand side of the equation w' = f(w) where in this case
-w = (x,p):
-
-[import ../examples/harmonic_oscillator.cpp]
-[rhs_function]
-
-Here we chose [*vector<double>] as the state type, but others are also possible,
-for example [*tr1/array<double,2>]. Odeint is designed in such a way that it
-works with basically any container that can be accessed via iterators.
-The parameter structure of the function is crucial: the integration methods will
-always call them in the form [*f(x, dxdt, t)]. So even if there is no explicit
-time dependence, one has to define [*t] as a function parameter.
-
-Now, we have to define the initial state from which the integration should start:
-
-[state_initialization]
-
-For the integration itself we'll use the
-[funcref boost::numeric::odeint::integrate integrate] function, which is a
-convenient way to get quick results. It is based on the error-controlled
-[classref boost::numeric::odeint::runge_kutta_rk5_ck runge_kutta_rk5_ck] stepper
-(5th order) and uses adaptive stepsize.
-The results are stored into two InsertIterators (time and state) that must be
-provided.
-
-[integration]
-
-The integrate function expects as parameters the rhs of the ode as defined
-above, the initial state x, the start- and end-time of the integration and two
-InsertIterators for the times and states where the current time and the current
-state after each timestep is stored.
-Note, that [funcref boost::numeric::odeint::integrate integrate] uses an
-adaptive stepsize during the integration steps so the time points will not be
-equally spaced.
-The integration returns the number of steps that were applied.
-Note, that in total steps+1 elements will be inserted into times and x_t_vec as
-the initial time and state are inserted before the first step.
-
-It is, of course, also possible to implement the ode system as a class. The rhs
-must then be defined as the ()-operator:
-
-[rhs_class]
-
-which can be used via
-
-[integration_class]
-
-[endsect]
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/stepper_table.qbk
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/stepper_table.qbk (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/stepper_table.qbk 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -1,7 +1,9 @@
[table Stepper Algorithms
- [[Method] [Class] [Order] [Error Estimation]]
- [[Explicit Euler] [explicit_euler] [1] [No]]
- [[Runge-Kutta 4] [explicit_rkrk4] [4] [No]]
- [[Runge-Kutta Cash-Karp] [explicit_error_rk54_ck] [5] [Yes (Order 4)]]
- [[Dormand-Prince 5] [explicit_error_dopri5] [5] [Yes (Order 4)]]
+ [[Method] [Class] [Order] [Error Estimation] [Dense Output] [Remarks]]
+ [[Explicit Euler] [explicit_euler] [1] [No] [Yes] [Very simple, only for demonstrating purposes]]
+ [[Runge-Kutta 4] [explicit_rkrk4] [4] [No] [No] [Good default method]]
+ [[Runge-Kutta Cash-Karp] [explicit_error_rk54_ck] [5] [Yes (Order 4)] [No] [...]]
+ [[Dormand-Prince 5] [explicit_error_dopri5] [5] [Yes (Order 4)] [Yes] [...]]
+ [[Implicit Euler] [implicit_euler] [1] [No] [No] [Needs the Jacobian]]
+ [[Rosenbrock 4] [rosenbrock4] [4] [Yes] [Yes] [Good for stiff systems]]
]
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/tutorial.qbk
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/tutorial.qbk (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/tutorial.qbk 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -16,7 +16,9 @@
[endsect]
-[section Different steppers]
+[section Odeint in detail]
+
+Different steppers
Explicit steppers
@@ -99,6 +101,10 @@
[endsect]
+[section Self expanding lattices]
+
+[endsect]
+
[endsect]
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/tutorial_harmonic_oscillator.qbk
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/tutorial_harmonic_oscillator.qbk (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/doc/tutorial_harmonic_oscillator.qbk 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -107,7 +107,7 @@
[endsect]
-[Some details]
+Some details
Observers
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/examples/harmonic_oscillator.cpp
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/examples/harmonic_oscillator.cpp (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/examples/harmonic_oscillator.cpp 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -44,15 +44,13 @@
//]
-/*
//[ integration
vector<double> times;
vector<state_type> x_t_vec;
- size_t steps = integrate( harmonic_oscillator ,
- x , 0.0 , 10.0 ,
- back_inserter( times ) ,
- back_inserter( x_t_vec ) );
+ size_t steps = integrate( harmonic_oscillator ,
+ x , 0.0 , 10.0 , 0.1
+ );
//]
@@ -65,17 +63,16 @@
//[ integration_class
harm_osc ho(0.15);
- steps = integrate( ho ,
- x , 0.0 , 10.0 ,
- back_inserter( times ) ,
- back_inserter( x_t_vec ) );
+ steps = integrate( ho ,
+ x , 0.0 , 10.0 , 0.1
+ );
//]
-*/
+
//[ define_const_stepper
explicit_rk4< state_type > stepper;
- integrate( stepper , harmonic_oscillator , x , 0.0 , 10.0 , 0.01 , do_nothing_observer() );
+ integrate_const( stepper , harmonic_oscillator , x , 0.0 , 10.0 , 0.01 );
//]
//[ integrate_const_loop
Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/regression_test/integrate_functions.cpp
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/regression_test/integrate_functions.cpp (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/regression_test/integrate_functions.cpp 2011-03-17 15:24:21 EDT (Thu, 17 Mar 2011)
@@ -22,6 +22,9 @@
#include <boost/numeric/odeint/stepper/dense_output_controlled_explicit_fsal.hpp>
#include <boost/numeric/odeint/integrate/integrate.hpp>
+#include <boost/numeric/odeint/integrate/integrate_const.hpp>
+#include <boost/numeric/odeint/integrate/integrate_adaptive.hpp>
+#include <boost/numeric/odeint/integrate/integrate_n_steps.hpp>
const double sigma = 10.0;
@@ -116,7 +119,7 @@
// integrate_adaptive( rosenbrock4_controller< rosenbrock4< double > >() , make_pair( lorenz() , lorenz_jacobi() ) , x2 , 0.0 , 10.0 , 0.1 );
- integrate( explicit_euler< state_type >() , lorenz() , x1 , 0.0 , 0.1001 , 0.01 , tmp_func( cout ) );
+ integrate_const( explicit_euler< state_type >() , lorenz() , x1 , 0.0 , 0.1001 , 0.01 , tmp_func( cout ) );
// integrate_n_steps( explicit_euler< state_type >() , lorenz() , x1 , 0.0 , 0.1 , 100 , cout << _1 << "\n" );
// integrate_adaptive( explicit_euler< state_type >() , lorenz() , x1 , 0.0 , 10.0 , 0.1 , cout << _1 << "\n" );
@@ -127,7 +130,7 @@
{
// works
ofstream fout( "integrate_controlled_rk54.dat" );
- size_t num_of_steps = integrate(
+ size_t num_of_steps = integrate_const(
controlled_error_stepper< explicit_error_rk54_ck< state_type > >() ,
lorenz() , x1 , 0.0 , 50.0 , 0.1 , tmp_func( fout ) );
clog << "Integrate controlled error stepper rk54 " << num_of_steps << endl;
@@ -145,7 +148,7 @@
dopri5_type() , default_error_checker< double >( 1.0e-1 , 0.1 ) );
ofstream fout( "integrate_controlled_dopri5.dat" );
- size_t num_of_steps = integrate(
+ size_t num_of_steps = integrate_const(
stepper_type( controlled_stepper ) , lorenz() , x1 , 0.0 , 50.0 , 0.001 , tmp_func( fout ) );
clog << "Integrate denseoutput controlled dopri5 " << num_of_steps << endl;
}
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk