-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge develop into master #36
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Provide algebra dispatcher for boost::multi_array
Added Controlled Adams Bashforth Moulton Stepper
- controlled_adams_bashforth_moulton.hpp, adaptive_adams_coefficients.hpp and pid_step_adjuster.hpp extract absolute values using fabs() without a namespace qualifier - if the integration value type is not double then this can cause problems, since fabs() is not required to have a long double overload. In such cases it is safer to use std::abs, and also this matches the rest of the odeint-v2 codebase
Switch fabs for std::abs in new adaptive Adams-Bashforth-Moulton stepper
…r (#218) * improves the order selection and modifies the error estimation accordingly - assumes constant stepsize for the next step to approximate error - moves the complete order adjustment to the class order_adjustment - slight changes to adaptive_adams_coefficients * changed the commit according to the requests and comments
Adding an additional template parameter which defaults to void allows for template specialization using SFINAE.
- time was not increased over the iterations - prediction of dxdt was taken before integrating with the supplied stepper instead of after
add template parameter to vector_space_norm_inf
- errors might already occur during the first few steps if the stepsize is chosen too big - initialize_controlled takes advantage of controlled steppers to initialize the controlled abm stepper
Remove deprecated std::unary_function from molecular_dynamics_cells.cpp
…224) do_step must return the pair (t, t+dt) but (t, dt) is returned. Note that dense_output_runge_kutta<Stepper, explicit_controlled_stepper_fsal_tag>::do_step(...) works correctly.
…. (#225) * Enable the adaption of the maximal step size of dense output steppers. For efficient simulation of "hybrid" systems the integrator must approach the sample points where the discrete variables change their value. (hybrid systems = systems of ODEs which include discrete variables, beeing internal variables of the system which only change their value at discrete sample points) Approaching sample points can be done by adapting the maximal integrator step size to min(max_step_size, next_sample_point_time - current_time) before each do_step. To achive this in odeint for all dense output steppers the following changes must be done (which does not change the existing API): - make private members in bulirsch_stoer_dense_out, default_step_adjuster, rosenbrock4_controller protected. - allow std::ref/boost::ref for step_adjuster in controlled_runge_kutta and controlled_runge_kutta and for stepper in rosenbrock4_dense_output by unwrapping these before use. This allows to pass the step adjusters by reference to the dense output steppers which than allows to change the maximal step size (in the step adjuster) before each call to do_step. * Added test for a reference controller in the Rosenbrock4 dense output stepper. * Make in bulirsch_stoer_dense_out only the required m_max_dt member protected not all. Extend the test in rosenbrock4.cpp to test that the controller is a reference and the maximal step size is applied. * Fixed build with gcc-4.8
…r tableau. (#235)" (#236) This reverts commit 75fe4e1.
* Change eigen algebra to support Eigen>=3.3 An internal change in Eigen made odeint incompatible with Eigen versions >=3.3. This commit changes odeint in such a way that it does not rely on the changed behvior, so it is now compatible with old and new Eigen. Fixes #194 * Remove obsolete Eigen fail compile test * Remove compile-fail test for C++98 unwrap_reference
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Merge to master for Boost 1.71 release