mirror of
https://github.com/boostorg/odeint.git
synced 2025-05-09 15:14:02 +00:00
fixing broken links to github examples
This commit is contained in:
parent
109e9112a8
commit
56850b94e5
@ -37,7 +37,7 @@ if --enable-index in [ modules.peek : ARGV ]
|
||||
# PDF native index support is probably better for PDFs as then you actually get page numbers.
|
||||
|
||||
<auto-index-script>odeint.idx # Specifies the name of the index script to load.
|
||||
<auto-index-prefix>../../../..
|
||||
<auto-index-prefix>../include
|
||||
|
||||
# Inform Quickbook that there is to be an index(es).
|
||||
<quickbook-define>enable_index
|
||||
|
@ -124,7 +124,7 @@ If we wouldn't specialize the `is_resizeable` template, the code would still
|
||||
compile but odeint would not adjust the size of temporary internal instances
|
||||
of my_vector and hence try to fill zero-sized vectors resulting in
|
||||
segmentation faults!
|
||||
The full example can be found in [github_link libs/numeric/odeint/examples/my_vector.cpp my_vector.cpp]
|
||||
The full example can be found in [github_link examples/my_vector.cpp my_vector.cpp]
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -152,7 +152,7 @@ The following code shows the required template specializations:
|
||||
|
||||
With these definitions odeint knows how to resize `std::list`s and so they can
|
||||
be used as state types.
|
||||
A complete example can be found in [github_link libs/numeric/odeint/examples/list_lattice.cpp list_lattice.cpp].
|
||||
A complete example can be found in [github_link examples/list_lattice.cpp list_lattice.cpp].
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -407,7 +407,7 @@ The following code shows the corresponding definitions:
|
||||
Note again, that we haven't supported the requirements for controlled steppers,
|
||||
but only for simple Runge-Kutta methods.
|
||||
You can find the full example in [github_link
|
||||
libs/numeric/odeint/examples/ublas/lorenz_ublas.cpp lorenz_ublas.cpp].
|
||||
examples/ublas/lorenz_ublas.cpp lorenz_ublas.cpp].
|
||||
|
||||
[endsect]
|
||||
/]
|
||||
@ -453,7 +453,7 @@ template argument list:
|
||||
[point3D_main]
|
||||
|
||||
The whole example can be found in [github_link
|
||||
libs/numeric/odeint/examples/lorenz_point.cpp lorenz_point.cpp]
|
||||
examples/lorenz_point.cpp lorenz_point.cpp]
|
||||
|
||||
[note For the most `state_types`, odeint is able to automatically determine
|
||||
the correct algebra and operations. But if you want to use your own `state_type`, as in this
|
||||
|
@ -15,128 +15,128 @@
|
||||
[table Examples Overview
|
||||
[[File] [Brief Description]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/bind_member_functions.cpp bind_member_functions.cpp]]
|
||||
[[[github_link examples/bind_member_functions.cpp bind_member_functions.cpp]]
|
||||
[This examples shows how member functions can be used as system functions in odeint.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/bind_member_functions.cpp bind_member_functions_cpp11.cpp]]
|
||||
[[[github_link examples/bind_member_functions.cpp bind_member_functions_cpp11.cpp]]
|
||||
[This examples shows how member functions can be used as system functions in odeint with `std::bind` in C++11.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/bulirsch_stoer.cpp bulirsch_stoer.cpp]]
|
||||
[[[github_link examples/bulirsch_stoer.cpp bulirsch_stoer.cpp]]
|
||||
[Shows the usage of the Bulirsch-Stoer method.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/chaotic_system.cpp chaotic_system.cpp]]
|
||||
[[[github_link examples/chaotic_system.cpp chaotic_system.cpp]]
|
||||
[The chaotic system examples integrates the Lorenz system and calculates the Lyapunov exponents.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/elliptic_functions.cpp elliptic_functions.cpp]]
|
||||
[[[github_link examples/elliptic_functions.cpp elliptic_functions.cpp]]
|
||||
[Example calculating the elliptic functions using Bulirsch-Stoer and Runge-Kutta-Dopri5 Steppers with dense output.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/fpu.cpp fpu.cpp]]
|
||||
[[[github_link examples/fpu.cpp fpu.cpp]]
|
||||
[The Fermi-Pasta-Ulam (FPU) example shows how odeint can be used to integrate lattice systems.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/generation_functions.cpp generation_functions.cpp]]
|
||||
[[[github_link examples/generation_functions.cpp generation_functions.cpp]]
|
||||
[Shows skeletal code on how to implement own factory functions.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/harmonic_oscillator.cpp harmonic_oscillator.cpp]]
|
||||
[[[github_link examples/harmonic_oscillator.cpp harmonic_oscillator.cpp]]
|
||||
[The harmonic oscillator examples gives a brief introduction to odeint and shows the usage of the classical Runge-Kutta-solvers.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/harmonic_oscillator_units.cpp harmonic_oscillator_units.cpp]]
|
||||
[[[github_link examples/harmonic_oscillator_units.cpp harmonic_oscillator_units.cpp]]
|
||||
[This examples shows how __boost_units can be used with odeint.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/heun.cpp heun.cpp]]
|
||||
[[[github_link examples/heun.cpp heun.cpp]]
|
||||
[The Heun example shows how an custom Runge-Kutta stepper can be created with odeint generic Runge-Kutta method.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/list_lattice.cpp list_lattice.cpp]]
|
||||
[[[github_link examples/list_lattice.cpp list_lattice.cpp]]
|
||||
[Example of a phase lattice integration using `std::list` as state type.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/lorenz_point.cpp lorenz_point.cpp]]
|
||||
[[[github_link examples/lorenz_point.cpp lorenz_point.cpp]]
|
||||
[Alternative way of integrating lorenz by using a self defined point3d data type as state type.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/my_vector.cpp my_vector.cpp]]
|
||||
[[[github_link examples/my_vector.cpp my_vector.cpp]]
|
||||
[Simple example showing how to get odeint to work with a self-defined vector type.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/phase_oscillator_ensemble.cpp phase_oscillator_ensemble.cpp]]
|
||||
[[[github_link examples/phase_oscillator_ensemble.cpp phase_oscillator_ensemble.cpp]]
|
||||
[The phase oscillator ensemble example shows how globally coupled oscillators can be analyzed and how statistical measures can be computed during integration.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/resizing_lattice.cpp resizing_lattice.cpp]]
|
||||
[[[github_link examples/resizing_lattice.cpp resizing_lattice.cpp]]
|
||||
[Shows the strength of odeint's memory management by simulating a Hamiltonian system on an expanding lattice.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/simple1d.cpp simple1d.cpp]]
|
||||
[[[github_link examples/simple1d.cpp simple1d.cpp]]
|
||||
[Integrating a simple, one-dimensional ODE showing the usage of integrate- and generate-functions.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/solar_system.cpp solar_system.cpp]]
|
||||
[[[github_link examples/solar_system.cpp solar_system.cpp]]
|
||||
[The solar system example shows the usage of the symplectic solvers.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/stepper_details.cpp stepper_details.cpp]]
|
||||
[[[github_link examples/stepper_details.cpp stepper_details.cpp]]
|
||||
[Trivial example showing the usability of the several stepper classes.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/stiff_system.cpp stiff_system.cpp]]
|
||||
[[[github_link examples/stiff_system.cpp stiff_system.cpp]]
|
||||
[The stiff system example shows the usage of the stiff solvers using the Jacobian of the system function.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/stochastic_euler.cpp stochastic_euler.cpp]]
|
||||
[[[github_link examples/stochastic_euler.cpp stochastic_euler.cpp]]
|
||||
[Implementation of a custom stepper - the stochastic euler - for solving stochastic differential equations.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/stuart_landau.cpp stuart_landau.cpp]]
|
||||
[[[github_link examples/stuart_landau.cpp stuart_landau.cpp]]
|
||||
[The Stuart-Landau example shows how odeint can be used with complex state types.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/two_dimensional_phase_lattice.cpp two_dimensional_phase_lattice.cpp]]
|
||||
[[[github_link examples/two_dimensional_phase_lattice.cpp two_dimensional_phase_lattice.cpp]]
|
||||
[The 2D phase oscillator example shows how a two-dimensional lattice works with odeint and how matrix types can be used as state types in odeint.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/van_der_pol_stiff.cpp van_der_pol_stiff.cpp]]
|
||||
[[[github_link examples/van_der_pol_stiff.cpp van_der_pol_stiff.cpp]]
|
||||
[This stiff system example again shows the usage of the stiff solvers by integrating the van der Pol oscillator.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/gmpxx/lorenz_gmpxx.cpp gmpxx/lorenz_gmpxx.cpp]]
|
||||
[[[github_link examples/gmpxx/lorenz_gmpxx.cpp gmpxx/lorenz_gmpxx.cpp]]
|
||||
[This examples integrates the Lorenz system by means of an arbitrary precision type.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/mtl/gauss_packet.cpp mtl/gauss_packet.cpp]]
|
||||
[[[github_link examples/mtl/gauss_packet.cpp mtl/gauss_packet.cpp]]
|
||||
[The MTL-Gauss-packet example shows how the MTL can be easily used with odeint.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/mtl/implicit_euler_mtl.cpp mtl/implicit_euler_mtl.cpp]]
|
||||
[[[github_link examples/mtl/implicit_euler_mtl.cpp mtl/implicit_euler_mtl.cpp]]
|
||||
[This examples shows the usage of the MTL implicit Euler method with a sparse matrix type.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/thrust/phase_oscillator_ensemble.cu thrust/phase_oscillator_ensemble.cu]]
|
||||
[[[github_link examples/thrust/phase_oscillator_ensemble.cu thrust/phase_oscillator_ensemble.cu]]
|
||||
[The Thrust phase oscillator ensemble example shows how globally coupled oscillators can be analyzed with Thrust and CUDA, employing the power of modern graphic devices.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/thrust/phase_oscillator_chain.cu thrust/phase_oscillator_chain.cu]]
|
||||
[[[github_link examples/thrust/phase_oscillator_chain.cu thrust/phase_oscillator_chain.cu]]
|
||||
[The Thrust phase oscillator chain example shows how chains of nearest neighbor coupled oscillators can be integrated with Thrust and odeint.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/thrust/lorenz_parameters.cu thrust/lorenz_parameters.cu]]
|
||||
[[[github_link examples/thrust/lorenz_parameters.cu thrust/lorenz_parameters.cu]]
|
||||
[The Lorenz parameters examples show how ensembles of ordinary differential equations can be solved by means of Thrust to study
|
||||
the dependence of an ODE on some parameters.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/thrust/relaxation.cu thrust/relaxation.cu]]
|
||||
[[[github_link examples/thrust/relaxation.cu thrust/relaxation.cu]]
|
||||
[Another examples for the usage of Thrust.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/ublas/lorenz_ublas.cpp ublas/lorenz_ublas.cpp]]
|
||||
[[[github_link examples/ublas/lorenz_ublas.cpp ublas/lorenz_ublas.cpp]]
|
||||
[This example shows how the ublas vector types can be used with odeint.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/vexcl/lorenz_ensemble.cpp vexcl/lorenz_ensemble.cpp]]
|
||||
[[[github_link examples/vexcl/lorenz_ensemble.cpp vexcl/lorenz_ensemble.cpp]]
|
||||
[This example shows how the VexCL - a framework for OpenCL computation - can be used with odeint.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/openmp/lorenz_ensemble_simple.cpp openmp/lorenz_ensemble_simple.cpp]]
|
||||
[[[github_link examples/openmp/lorenz_ensemble_simple.cpp openmp/lorenz_ensemble_simple.cpp]]
|
||||
[OpenMP Lorenz attractor parameter study with continuous data.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/openmp/lorenz_ensemble.cpp openmp/lorenz_ensemble.cpp]]
|
||||
[[[github_link examples/openmp/lorenz_ensemble.cpp openmp/lorenz_ensemble.cpp]]
|
||||
[OpenMP Lorenz attractor parameter study with split data.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/openmp/lorenz_ensemble.cpp openmp/lorenz_ensemble_nested.cpp]]
|
||||
[[[github_link examples/openmp/lorenz_ensemble.cpp openmp/lorenz_ensemble_nested.cpp]]
|
||||
[OpenMP Lorenz attractor parameter study with nested `vector_space_algebra`.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/openmp/phase_chain.cpp openmp/phase_chain.cpp]]
|
||||
[[[github_link examples/openmp/phase_chain.cpp openmp/phase_chain.cpp]]
|
||||
[OpenMP nearest neighbour coupled phase chain with continuous state.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/openmp/phase_chain_omp_state.cpp openmp/phase_chain_omp_state.cpp]]
|
||||
[[[github_link examples/openmp/phase_chain_omp_state.cpp openmp/phase_chain_omp_state.cpp]]
|
||||
[OpenMP nearest neighbour coupled phase chain with split state.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/mpi/phase_chain.cpp mpi/phase_chain.cpp]]
|
||||
[[[github_link examples/mpi/phase_chain.cpp mpi/phase_chain.cpp]]
|
||||
[MPI nearest neighbour coupled phase chain.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/2d_lattice/spreading.cpp 2d_lattice/spreading.cpp]]
|
||||
[[[github_link examples/2d_lattice/spreading.cpp 2d_lattice/spreading.cpp]]
|
||||
[This examples shows how a `vector< vector< T > >` can be used a state type for odeint and how a resizing mechanism of this state can be implemented.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/quadmath/black_hole.cpp quadmath/black_hole.cpp]]
|
||||
[[[github_link examples/quadmath/black_hole.cpp quadmath/black_hole.cpp]]
|
||||
[This examples shows how gcc libquadmath can be used with odeint. It provides a high precision floating point type which is adapted to odeint in this example.]]
|
||||
|
||||
[[[github_link libs/numeric/odeint/examples/molecular_dynamics.cpp molecular_dynamics.cpp]]
|
||||
[[[github_link examples/molecular_dynamics.cpp molecular_dynamics.cpp]]
|
||||
[A very basic molecular dynamics simulation with the Velocity-Verlet method.]]
|
||||
|
||||
]
|
||||
|
@ -133,7 +133,7 @@ to pass this container to the integration function:
|
||||
|
||||
That is all. You can use functional libraries like __boost_lambda or __boost_phoenix to ease the creation of observer functions.
|
||||
|
||||
The full cpp file for this example can be found here: [github_link libs/numeric/odeint/examples/harmonic_oscillator.cpp harmonic_oscillator.cpp]
|
||||
The full cpp file for this example can be found here: [github_link examples/harmonic_oscillator.cpp harmonic_oscillator.cpp]
|
||||
|
||||
|
||||
|
||||
|
@ -181,7 +181,7 @@
|
||||
[template sub[x]'''<subscript>'''[x]'''</subscript>''']
|
||||
[template subl[x]'''<subscript>'''__space[x]'''</subscript>''']
|
||||
|
||||
[template github_link[url text]'''<ulink url="https://github.com/headmyshoulder/odeint-v2/tree/master/'''[url]'''" target="_blank">'''[text]'''</ulink>''']
|
||||
[template github_link[url text]'''<ulink url="https://github.com/headmyshoulder/odeint-v2/blob/master/'''[url]'''" target="_blank">'''[text]'''</ulink>''']
|
||||
[/ [template github_link[url text]'''<ulink url="../../../../../'''[url]'''" target="_blank">'''[text]'''</ulink>''']]
|
||||
|
||||
|
||||
|
@ -157,6 +157,6 @@ Having integrated a sufficient number of transients steps we are now able to cal
|
||||
|
||||
[lyapunov_full_code]
|
||||
|
||||
The full code can be found here: [github_link libs/numeric/odeint/examples/chaotic_system.cpp chaotic_system.cpp]
|
||||
The full code can be found here: [github_link examples/chaotic_system.cpp chaotic_system.cpp]
|
||||
|
||||
[endsect]
|
||||
|
@ -117,7 +117,7 @@ odeint supports iterators for solving ODEs. That is, you instantiate a pair of i
|
||||
|
||||
[endsect]
|
||||
|
||||
The full source file for this example can be found here: [github_link libs/numeric/odeint/examples/harmonic_oscillator.cpp harmonic_oscillator.cpp]
|
||||
The full source file for this example can be found here: [github_link examples/harmonic_oscillator.cpp harmonic_oscillator.cpp]
|
||||
|
||||
|
||||
[endsect]
|
||||
|
@ -70,7 +70,7 @@ Note, that you can specify the OpenMP scheduling by calling `omp_set_schedule`
|
||||
in the beginning of your program:
|
||||
[phase_chain_scheduling]
|
||||
|
||||
See [github_link libs/numeric/odeint/examples/openmp/phase_chain.cpp
|
||||
See [github_link examples/openmp/phase_chain.cpp
|
||||
openmp/phase_chain.cpp] for the complete example.
|
||||
|
||||
[heading Split state]
|
||||
@ -109,7 +109,7 @@ back together into a single vector.
|
||||
and supports any model of Random Access Range as the outer, parallel state type,
|
||||
and will use the given algebra on its elements.]
|
||||
|
||||
See [github_link libs/numeric/odeint/examples/openmp/phase_chain_omp_state.cpp
|
||||
See [github_link examples/openmp/phase_chain_omp_state.cpp
|
||||
openmp/phase_chain_omp_state.cpp] for the complete example.
|
||||
|
||||
[endsect]
|
||||
@ -165,7 +165,7 @@ guarded by any barriers either, so if you don't manually place any (for example
|
||||
in parameter studies cases where the elements are completely independent) you
|
||||
might see the nodes diverging, returning from this call at different times.]
|
||||
|
||||
See [github_link libs/numeric/odeint/examples/mpi/phase_chain.cpp
|
||||
See [github_link examples/mpi/phase_chain.cpp
|
||||
mpi/phase_chain.cpp] for the complete example.
|
||||
|
||||
[endsect]
|
||||
|
@ -102,7 +102,7 @@ These integration routine was used to produce the above sketch of the solar syst
|
||||
|
||||
[tip You can use C++11 lambda to create the observers]
|
||||
|
||||
The full example can be found here: [github_link libs/numeric/odeint/examples/solar_system.cpp solar_system.cpp]
|
||||
The full example can be found here: [github_link examples/solar_system.cpp solar_system.cpp]
|
||||
|
||||
[endsect]
|
||||
|
||||
|
@ -46,7 +46,7 @@ found in the section __adapt_state_types.
|
||||
[stuart_landau_integration]
|
||||
|
||||
The full cpp file for the Stuart-Landau example can be found here [github_link
|
||||
libs/numeric/odeint/examples/stuart_landau.cpp stuart_landau.cpp]
|
||||
examples/stuart_landau.cpp stuart_landau.cpp]
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -75,7 +75,7 @@ The observer uses a reference to the system object to calculate the local energi
|
||||
|
||||
[fpu_observer]
|
||||
|
||||
The full cpp file for this FPU example can be found here [github_link libs/numeric/odeint/examples/fpu.cpp fpu.cpp]
|
||||
The full cpp file for this FPU example can be found here [github_link examples/fpu.cpp fpu.cpp]
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -103,7 +103,7 @@ Now, we do several integrations for different values of ['__epsilon] and record
|
||||
|
||||
[phase_oscillator_ensemble_integration]
|
||||
|
||||
The full cpp file for this example can be found here [github_link libs/numeric/odeint/examples/phase_oscillator_ensemble.cpp phase_oscillator_ensemble.cpp]
|
||||
The full cpp file for this example can be found here [github_link examples/phase_oscillator_ensemble.cpp phase_oscillator_ensemble.cpp]
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -159,7 +159,7 @@ It is quite easy but the compilation time might take very long. Furthermore, the
|
||||
memory consuming. For example the unit test for the usage of __boost_units in odeint take up to 4 GB
|
||||
of memory at compilation.]
|
||||
|
||||
The full cpp file for this example can be found here [github_link libs/numeric/odeint/examples/harmonic_oscillator_units.cpp harmonic_oscillator_units.cpp].
|
||||
The full cpp file for this example can be found here [github_link examples/harmonic_oscillator_units.cpp harmonic_oscillator_units.cpp].
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -179,7 +179,7 @@ In principle this is all. Please note, that the above code is far from being opt
|
||||
|
||||
[$phase_lattice_2d_0000.jpg] [$phase_lattice_2d_0100.jpg] [$phase_lattice_2d_1000.jpg]
|
||||
|
||||
The full cpp for this example can be found here [github_link libs/numeric/odeint/examples/two_dimensional_phase_lattice.cpp two_dimensional_phase_lattice.cpp].
|
||||
The full cpp for this example can be found here [github_link examples/two_dimensional_phase_lattice.cpp two_dimensional_phase_lattice.cpp].
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -224,13 +224,13 @@ The actual integration then is straight forward:
|
||||
|
||||
[mp_lorenz_int]
|
||||
|
||||
The full example can be found at [github_link libs/numeric/odeint/examples/multiprecision/lorenz_mp.cpp lorenz_mp.cpp].
|
||||
The full example can be found at [github_link examples/multiprecision/lorenz_mp.cpp lorenz_mp.cpp].
|
||||
Another example that compares the accuracy of the high precision type with
|
||||
standard double can be found at [github_link libs/numeric/odeint/examples/multiprecision/cmp_precision.cpp cmp_precision.cpp].
|
||||
standard double can be found at [github_link examples/multiprecision/cmp_precision.cpp cmp_precision.cpp].
|
||||
|
||||
Furthermore, odeint can also be run with other multiprecision libraries,
|
||||
e.g. [@http://gmplib.org/ gmp].
|
||||
An example for this is given in [github_link libs/numeric/odeint/examples/gmpxx/lorenz_gmpxx.cpp lorenz_gmpxx.cpp].
|
||||
An example for this is given in [github_link examples/gmpxx/lorenz_gmpxx.cpp lorenz_gmpxx.cpp].
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -267,7 +267,7 @@ The `do_resize` function simply calls `vector.resize` of `q` , `p` and `distr`.
|
||||
|
||||
[resizing_lattice_resize_function]
|
||||
|
||||
The full example can be found in [github_link libs/numeric/odeint/examples/resizing_lattice.cpp resizing_lattice.cpp]
|
||||
The full example can be found in [github_link examples/resizing_lattice.cpp resizing_lattice.cpp]
|
||||
|
||||
[endsect]
|
||||
|
||||
|
@ -56,7 +56,7 @@ During the integration 71 steps have been done. Comparing to a classical Runge-K
|
||||
|
||||
Note, that we have used __boost_phoenix, a great functional programming library, to create and compose the observer.
|
||||
|
||||
The full example can be found here: [github_link libs/numeric/odeint/examples/stiff_system.cpp stiff_system.cpp]
|
||||
The full example can be found here: [github_link examples/stiff_system.cpp stiff_system.cpp]
|
||||
|
||||
|
||||
[endsect]
|
||||
|
@ -107,7 +107,7 @@ Then, it is straightforward to integrate the phase ensemble by creating an insta
|
||||
|
||||
We have to use `boost::ref` here in order to pass the rhs class as reference and not by value. This ensures that the natural frequencies of each oscillator are not copied when calling `integrate_const`. In the full example the performance and results of the Runge-Kutta-4 and the Dopri5 solver are compared.
|
||||
|
||||
The full example can be found at [github_link libs/numeric/odeint/examples/thrust/phase_oscillator_ensemble.cu phase_oscillator_example.cu].
|
||||
The full example can be found at [github_link examples/thrust/phase_oscillator_ensemble.cu phase_oscillator_example.cu].
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -130,7 +130,7 @@ Now we put everything together. We create random initial conditions and decreasi
|
||||
|
||||
[thrust_phase_chain_integration]
|
||||
|
||||
The full example can be found at [github_link libs/numeric/odeint/examples/thrust/phase_oscillator_chain.cu phase_oscillator_chain.cu].
|
||||
The full example can be found at [github_link examples/thrust/phase_oscillator_chain.cu phase_oscillator_chain.cu].
|
||||
|
||||
[endsect]
|
||||
|
||||
@ -153,7 +153,7 @@ The next thing we have to implement is the Lorenz system without perturbations.
|
||||
|
||||
As `state_type` a `thrust::device_vector` or a __boost_range of a `device_vector` is used. The length of the state is ['3N] where ['N] is the number of systems. The system is encoded into this vector such that all ['x] components come first, then every ['y] components and finally every ['z] components. Implementing the device function is then a simple task, you only have to decompose the tuple originating from the zip iterators.
|
||||
|
||||
Besides the system without perturbations we furthermore need to calculate the system including linearized equations governing the time evolution of small perturbations. Using the method from above this is straightforward, with a small difficulty that Thrust's tuples have a maximal arity of 10. But this is only a small problem since we can create a zip iterator packed with zip iterators. So the top level zip iterator contains one zip iterator for the state, one normal iterator for the parameter, and one zip iterator for the derivative. Accessing the elements of this tuple in the system function is then straightforward, you unpack the tuple with `thrust::get<>()`. We will not show the code here, it is to large. It can be found [github_link libs/numeric/odeint/examples/thrust/lorenz_parameters.cu here] and is easy to understand.
|
||||
Besides the system without perturbations we furthermore need to calculate the system including linearized equations governing the time evolution of small perturbations. Using the method from above this is straightforward, with a small difficulty that Thrust's tuples have a maximal arity of 10. But this is only a small problem since we can create a zip iterator packed with zip iterators. So the top level zip iterator contains one zip iterator for the state, one normal iterator for the parameter, and one zip iterator for the derivative. Accessing the elements of this tuple in the system function is then straightforward, you unpack the tuple with `thrust::get<>()`. We will not show the code here, it is to large. It can be found [github_link examples/thrust/lorenz_parameters.cu here] and is easy to understand.
|
||||
|
||||
Furthermore, we need an observer which determines the norm of the perturbations, normalizes them and averages the logarithm of the norm. The device functor which is used within this observer is defined
|
||||
|
||||
@ -165,7 +165,7 @@ Now we complete the whole code to calculate the Lyapunov exponents. First, we ha
|
||||
|
||||
[thrust_lorenz_parameters_integration]
|
||||
|
||||
The full example can be found at [github_link libs/numeric/odeint/examples/thrust/lorenz_parameters.cu lorenz_parameters.cu].
|
||||
The full example can be found at [github_link examples/thrust/lorenz_parameters.cu lorenz_parameters.cu].
|
||||
|
||||
[endsect]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user