mirror of
https://github.com/boostorg/odeint.git
synced 2026-01-26 18:52:20 +00:00
85 lines
1.3 KiB
Plaintext
85 lines
1.3 KiB
Plaintext
Iterator versions:
|
|
|
|
class XYZ_iterator
|
|
{
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* never use iterators directly, always use the generation functions
|
|
* state this clearly in the docs
|
|
|
|
|
|
* const__iterator
|
|
* stepper ->
|
|
|
|
* solver, system, state und zeit gehören zusammen. Wie kann das ausgedrueckt werden
|
|
|
|
do_step( stepper , system , x , t , dt );
|
|
do_step( stepper , system , in , t , out , dt );
|
|
|
|
* controlled stepper: solver, system, state und zeit gehören zusammen
|
|
|
|
try_step( stepper , system , x , t , dt );
|
|
try_step( stepper , system , in , t , out , dt );
|
|
|
|
* dense_output_stepper solver, system, alter state, neuer state, alte zeit, neue zeit gehören zusammen
|
|
|
|
do_step( stepper , system , x_old , t_old , x_new , t_new , dt );
|
|
|
|
|
|
* stepper, state, system
|
|
|
|
|
|
|
|
|
|
stepper s( sys , x , t );
|
|
s.do_step( dt );
|
|
do_step( s , t );
|
|
order( s );
|
|
state( s );
|
|
time( s );
|
|
initialize( sys , x , t );
|
|
|
|
Problem: wie ändert man algebra?
|
|
|
|
controlled_stepper s( sys , x , t , dt );
|
|
s.try_step();
|
|
do_step( s );
|
|
|
|
dense_output_stepper s( sys , x , t );
|
|
s.do_step( dt );
|
|
do_step( s , dt );
|
|
|
|
controlled_dense_output_stepper s( sys , x , t , dt );
|
|
s.do_step();
|
|
do_step( s );
|
|
|
|
iterator iter( s , dt );
|
|
|
|
integrate( make_xyz_stepper( stepper , sys , x , t_start ) , t_start , dt , t_end );
|
|
|
|
|
|
|
|
structure:
|
|
|
|
low-level
|
|
* steppers
|
|
* algebras
|
|
* operations
|
|
* utils
|
|
|
|
high-level sitzt auf v2
|
|
* stepper
|
|
* integrate
|
|
* iterate
|
|
* do_step
|