From a00a5fcd6d6921486aa6f52f3e47d1ed2840ae32 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Apr 2026 13:47:50 +0000 Subject: [PATCH 1/3] Initial plan From 007700dc8278ee597b90c14bfdfe273041a45172 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Apr 2026 14:42:46 +0000 Subject: [PATCH 2/3] refactor: switch OrdinaryDiffEq imports to OrdinaryDiffEqLowStorageRK Agent-Logs-Url: https://github.com/trixi-framework/TrixiParticles.jl/sessions/d24a7e72-3df6-42d0-aca0-aa1e26e32c1f Co-authored-by: efaulhaber <44124897+efaulhaber@users.noreply.github.com> --- docs/Project.toml | 4 ++-- docs/literate/src/tut_custom_kernel.jl | 4 ++-- docs/literate/src/tut_packing.jl | 4 ++-- docs/literate/src/tut_rigid_body_fsi.jl | 2 +- docs/literate/src/tut_setup.jl | 12 ++++++------ docs/src/install.md | 10 +++++----- docs/src/overview.md | 2 +- docs/src/time_integration.md | 14 +++++++------- examples/dem/collapsing_sand_pile_3d.jl | 2 +- examples/dem/rectangular_tank_2d.jl | 2 +- examples/fluid/accelerated_tank_2d.jl | 2 +- examples/fluid/dam_break_2d.jl | 2 +- examples/fluid/dam_break_2phase_2d.jl | 2 +- examples/fluid/dam_break_3d.jl | 2 +- examples/fluid/dam_break_oil_film_2d.jl | 2 +- examples/fluid/falling_water_column_2d.jl | 2 +- examples/fluid/falling_water_spheres_2d.jl | 2 +- examples/fluid/falling_water_spheres_3d.jl | 2 +- examples/fluid/hydrostatic_water_column_2d.jl | 2 +- examples/fluid/lid_driven_cavity_2d.jl | 2 +- examples/fluid/moving_wall_2d.jl | 2 +- examples/fluid/oscillating_drop_2d.jl | 2 +- examples/fluid/periodic_array_of_cylinders_2d.jl | 2 +- examples/fluid/periodic_channel_2d.jl | 2 +- examples/fluid/pipe_flow_2d.jl | 2 +- examples/fluid/poiseuille_flow_2d.jl | 2 +- examples/fluid/poiseuille_flow_3d.jl | 2 +- examples/fluid/sphere_surface_tension_2d.jl | 2 +- examples/fluid/sphere_surface_tension_3d.jl | 2 +- examples/fluid/sphere_surface_tension_wall_2d.jl | 2 +- examples/fluid/taylor_green_vortex_2d.jl | 2 +- examples/fsi/dam_break_gate_2d.jl | 2 +- examples/fsi/dam_break_plate_2d.jl | 2 +- examples/fsi/falling_rigid_spheres_2d.jl | 2 +- examples/fsi/falling_rotating_rigid_squares_2d.jl | 2 +- .../falling_rotating_rigid_squares_w_buoys_2d.jl | 2 +- examples/fsi/falling_spheres_2d.jl | 2 +- examples/fsi/falling_water_column_2d.jl | 2 +- examples/fsi/hydrostatic_water_column_2d.jl | 2 +- examples/n_body/n_body_benchmark_trixi.jl | 2 +- examples/n_body/n_body_solar_system.jl | 2 +- examples/preprocessing/packing_2d.jl | 2 +- examples/preprocessing/packing_3d.jl | 2 +- examples/structure/colliding_rigid_spheres_2d.jl | 2 +- examples/structure/oscillating_beam_2d.jl | 2 +- src/callbacks/split_integration.jl | 2 +- test/Project.toml | 7 +++++-- test/test_util.jl | 1 + .../hydrostatic_water_column_2d/validation.jl | 2 +- .../validation_oscillating_beam_2d.jl | 2 +- 50 files changed, 72 insertions(+), 68 deletions(-) diff --git a/docs/Project.toml b/docs/Project.toml index 68c8cb9d70..eb8b6dfeec 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -5,7 +5,7 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244" DocumenterMermaid = "a078cd44-4d9c-4618-b545-3ab9d77f9177" Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +OrdinaryDiffEqLowStorageRK = "b0944070-b475-4768-8dec-fb6eb410534d" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" [compat] @@ -15,5 +15,5 @@ Documenter = "1" DocumenterCitations = "1" DocumenterMermaid = "0.2" Literate = "2" -OrdinaryDiffEq = "6" +OrdinaryDiffEqLowStorageRK = "1" Plots = "1" diff --git a/docs/literate/src/tut_custom_kernel.jl b/docs/literate/src/tut_custom_kernel.jl index 053f0c74a0..375bc36b27 100644 --- a/docs/literate/src/tut_custom_kernel.jl +++ b/docs/literate/src/tut_custom_kernel.jl @@ -5,10 +5,10 @@ # without ever cloning the repository. # First, we import TrixiParticles.jl and -# [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl), which we will +# [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl), which we will # use at the very end for the time integration. using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ## Load a simulation file diff --git a/docs/literate/src/tut_packing.jl b/docs/literate/src/tut_packing.jl index b7d492779b..254488c69a 100644 --- a/docs/literate/src/tut_packing.jl +++ b/docs/literate/src/tut_packing.jl @@ -130,8 +130,8 @@ plot!(geometry, linestyle=:dash, label=nothing, showaxis=false, color=:black, # which does not represent any physical law. Instead, we only use the simulation framework to time-integrate # the packing process. -# We first need to import [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl). -using OrdinaryDiffEq +# We first need to import [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl). +using OrdinaryDiffEqLowStorageRK # Next, we set a background pressure. This can be chosen arbitrarily. # A higher value results in smaller time steps, but the final packed state diff --git a/docs/literate/src/tut_rigid_body_fsi.jl b/docs/literate/src/tut_rigid_body_fsi.jl index 5f11a3d561..34e166a29e 100644 --- a/docs/literate/src/tut_rigid_body_fsi.jl +++ b/docs/literate/src/tut_rigid_body_fsi.jl @@ -14,7 +14,7 @@ # 4. Using a different geometry. using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK using Plots # ## Resolution and basic setup diff --git a/docs/literate/src/tut_setup.jl b/docs/literate/src/tut_setup.jl index 67e54bdcd3..2c1c032077 100644 --- a/docs/literate/src/tut_setup.jl +++ b/docs/literate/src/tut_setup.jl @@ -7,10 +7,10 @@ # For different setups and physics, take a look at [our other example files](@ref examples). # First, we import TrixiParticles.jl and -# [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl), which we will +# [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl), which we will # use at the very end for the time integration. using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ## Resolution @@ -158,10 +158,10 @@ nothing # hide # ## Time integration # We use the methods provided by -# [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl), +# [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl), # but note that other packages or custom implementations can also be used. -# OrdinaryDiffEq.jl supports callbacks, which are executed during the simulation. +# OrdinaryDiffEqLowStorageRK.jl supports callbacks, which are executed during the simulation. # For this simulation, we use the [`InfoCallback`](@ref), which prints # information about the simulation setup at the beginning of the simulation, # information about the current simulation time and runtime during the simulation, @@ -169,7 +169,7 @@ nothing # hide # We also want to save the current solution in regular intervals in terms of # simulation time as VTK, so that we can [look at the solution in ParaView](@ref Visualization). # The [`SolutionSavingCallback`](@ref) provides this functionality. -# To pass the callbacks to OrdinaryDiffEq.jl, we have to bundle them into a +# To pass the callbacks to OrdinaryDiffEqLowStorageRK.jl, we have to bundle them into a # `CallbackSet`. info_callback = InfoCallback(interval=50) saving_callback = SolutionSavingCallback(dt=0.02) @@ -178,7 +178,7 @@ callbacks = CallbackSet(info_callback, saving_callback) nothing # hide # Finally, we can start the simulation by solving the `ODEProblem`. -# We use the method `RDPK3SpFSAL35` of OrdinaryDiffEq.jl, which is a Runge-Kutta +# We use the method `RDPK3SpFSAL35` of OrdinaryDiffEqLowStorageRK.jl, which is a Runge-Kutta # method with automatic (error based) time step size control. # This method is usually a good choice for prototyping, since we do not have to # worry about choosing a stable step size and can just run the simulation. diff --git a/docs/src/install.md b/docs/src/install.md index 15c6668b9c..5a4895c090 100644 --- a/docs/src/install.md +++ b/docs/src/install.md @@ -8,13 +8,13 @@ with Julia v1.10 and newer. We recommend using the latest stable release of Juli ## For users TrixiParticles.jl is a registered Julia package. You can install TrixiParticles.jl, -[OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl) (used for time integration) +[OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl) (used for time integration) and [Plots.jl](https://github.com/JuliaPlots/Plots.jl) by executing the following commands in the Julia REPL: ```julia julia> using Pkg -julia> Pkg.add(["TrixiParticles", "OrdinaryDiffEq", "Plots"]) +julia> Pkg.add(["TrixiParticles", "OrdinaryDiffEqLowStorageRK", "Plots"]) ``` ## [For developers](@id for-developers) @@ -25,7 +25,7 @@ git clone git@github.com:trixi-framework/TrixiParticles.jl.git cd TrixiParticles.jl mkdir run julia --project=run -e 'using Pkg; Pkg.develop(PackageSpec(path="."))' # Add TrixiParticles.jl to `run` project -julia --project=run -e 'using Pkg; Pkg.add(["OrdinaryDiffEq", "Plots"])' # Add additional packages +julia --project=run -e 'using Pkg; Pkg.add(["OrdinaryDiffEqLowStorageRK", "Plots"])' # Add additional packages ``` If you installed TrixiParticles.jl this way, you always have to start Julia with the @@ -36,11 +36,11 @@ julia --project=run from the TrixiParticles.jl root directory. The advantage of using a separate `run` directory is that you can also add other -related packages (e.g., OrdinaryDiffEq.jl, see above) to the project in the `run` folder +related packages (e.g., OrdinaryDiffEqLowStorageRK.jl, see above) to the project in the `run` folder and always have a reproducible environment at hand to share with others. ## Optional software/packages -- [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl) -- A Julia package of ordinary differential equation solvers that is used in the examples +- [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl) -- A Julia package of ordinary differential equation solvers that is used in the examples - [Plots.jl](https://github.com/JuliaPlots/Plots.jl) -- Julia Plotting library that is used in some examples - [PythonPlot.jl](https://github.com/JuliaPy/PythonPlot.jl) -- Plotting library that can be used instead of Plots.jl - [ParaView](https://www.paraview.org/) -- Software that can be used for visualization of results diff --git a/docs/src/overview.md b/docs/src/overview.md index a1b6a70d5a..a4be025ccc 100644 --- a/docs/src/overview.md +++ b/docs/src/overview.md @@ -10,7 +10,7 @@ The following page gives a rough overview of important parts of the code. ## Program flow To initiate a simulation, the goal is to solve an ordinary differential equation, for example, -by employing the time integration schemes provided by OrdinaryDiffEq.jl. These schemes are then +by employing the time integration schemes provided by OrdinaryDiffEqLowStorageRK.jl. These schemes are then utilized to integrate ``\mathrm{d}u/\mathrm{d}t`` and ``\mathrm{d}v/\mathrm{d}t``, where ``u`` represents the particles' positions and ``v`` their properties such as velocity and density. During a single time step or an intermediate step of the time integration scheme, the functions diff --git a/docs/src/time_integration.md b/docs/src/time_integration.md index 006c83261d..7a596338fd 100644 --- a/docs/src/time_integration.md +++ b/docs/src/time_integration.md @@ -3,8 +3,8 @@ TrixiParticles.jl uses a modular approach where time integration is just another module that can be customized and exchanged. The function [`semidiscretize`](@ref) returns an `ODEProblem` -(see [the OrdinaryDiffEq.jl docs](https://docs.sciml.ai/DiffEqDocs/stable/types/ode_types/)), -which can be integrated with [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl). +(see [the OrdinaryDiffEqLowStorageRK.jl docs](https://docs.sciml.ai/DiffEqDocs/stable/types/ode_types/)), +which can be integrated with [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl). In particular, a [`DynamicalODEProblem`](https://docs.sciml.ai/DiffEqDocs/stable/types/dynamical_types/) is returned, where the right-hand side is split into two functions, the `kick!`, which @@ -20,10 +20,10 @@ However, all integrators designed for general `ODEProblem`s can be used. ## Usage After obtaining an `ODEProblem` from [`semidiscretize`](@ref), let us call it `ode`, -we can pass it to the function `solve` of OrdinaryDiffEq.jl. +we can pass it to the function `solve` of OrdinaryDiffEqLowStorageRK.jl. For most schemes, we do the following: ```julia -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK sol = solve(ode, Euler(), dt=1.0, save_everystep=false, callback=callbacks); @@ -34,7 +34,7 @@ For callbacks, please refer to [the docs](@ref Callbacks) and the example files. In this case, we need to either set a reasonable, problem- and resolution-dependent step size `dt`, or use the [`StepsizeCallback`](@ref), which overwrites the step size dynamically during the simulation based on a CFL-number. -We always set `save_everystep=false`, or OrdinaryDiffEq.jl would return the solution vector +We always set `save_everystep=false`, or OrdinaryDiffEqLowStorageRK.jl would return the solution vector for every time step, writing massive amounts of data into the RAM for large simulations. To visualize data for every time step, [callbacks](@ref Callbacks) can be used. @@ -81,7 +81,7 @@ in the inviscid case. Once we add viscosity, ``\operatorname{kick}`` depends on both ``u`` and ``v``. Then, the calculation of ``v^1`` requires ``v^1`` and becomes implicit. -The way this scheme is implemented in OrdinaryDiffEq.jl as `VerletLeapfrog`, +The way this scheme is implemented in OrdinaryDiffEqLowStorageRK.jl as `VerletLeapfrog`, the intermediate velocity ``v^{1/2}`` is passed to ``\operatorname{kick}`` in the last stage, resulting in first-order convergence when the scheme is used in the viscid case. @@ -109,7 +109,7 @@ v^1 &= v^0 + \Delta t\, \operatorname{kick} \left( v^{1/2}, u^{1/2}, t^0 + \frac u^1 &= u^{1/2} + \frac{1}{2} \Delta t\, \operatorname{drift}(v^{1}, u^{1}, t^0 + \Delta t). \end{align*} ``` -This scheme is implemented in OrdinaryDiffEq.jl as `LeapfrogDriftKickDrift` and yields +This scheme is implemented in OrdinaryDiffEqLowStorageRK.jl as `LeapfrogDriftKickDrift` and yields the desired second order as long as ``\operatorname{drift}`` does not depend on ``u``, which is always the case. diff --git a/examples/dem/collapsing_sand_pile_3d.jl b/examples/dem/collapsing_sand_pile_3d.jl index f463ac2417..f2cdbc26ef 100644 --- a/examples/dem/collapsing_sand_pile_3d.jl +++ b/examples/dem/collapsing_sand_pile_3d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # Physical parameters gravity = -9.81 diff --git a/examples/dem/rectangular_tank_2d.jl b/examples/dem/rectangular_tank_2d.jl index 5c53f16562..2c01443699 100644 --- a/examples/dem/rectangular_tank_2d.jl +++ b/examples/dem/rectangular_tank_2d.jl @@ -7,7 +7,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK gravity = -9.81 diff --git a/examples/fluid/accelerated_tank_2d.jl b/examples/fluid/accelerated_tank_2d.jl index cb6fbfb9d1..300417dce7 100644 --- a/examples/fluid/accelerated_tank_2d.jl +++ b/examples/fluid/accelerated_tank_2d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # Resolution fluid_particle_spacing = 0.05 diff --git a/examples/fluid/dam_break_2d.jl b/examples/fluid/dam_break_2d.jl index 56303b1877..cdd4894a89 100644 --- a/examples/fluid/dam_break_2d.jl +++ b/examples/fluid/dam_break_2d.jl @@ -13,7 +13,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # Size parameters H = 0.6 diff --git a/examples/fluid/dam_break_2phase_2d.jl b/examples/fluid/dam_break_2phase_2d.jl index 6b626bf42e..b810bf63f6 100644 --- a/examples/fluid/dam_break_2phase_2d.jl +++ b/examples/fluid/dam_break_2phase_2d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # Size parameters H = 0.6 diff --git a/examples/fluid/dam_break_3d.jl b/examples/fluid/dam_break_3d.jl index a073c001ec..e45fc3668d 100644 --- a/examples/fluid/dam_break_3d.jl +++ b/examples/fluid/dam_break_3d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/dam_break_oil_film_2d.jl b/examples/fluid/dam_break_oil_film_2d.jl index ecf7bb2998..605b42111e 100644 --- a/examples/fluid/dam_break_oil_film_2d.jl +++ b/examples/fluid/dam_break_oil_film_2d.jl @@ -7,7 +7,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # Size parameters H = 0.6 diff --git a/examples/fluid/falling_water_column_2d.jl b/examples/fluid/falling_water_column_2d.jl index f712f88d93..510d587abe 100644 --- a/examples/fluid/falling_water_column_2d.jl +++ b/examples/fluid/falling_water_column_2d.jl @@ -5,7 +5,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/falling_water_spheres_2d.jl b/examples/fluid/falling_water_spheres_2d.jl index 778d404d69..f52f6ddcd4 100644 --- a/examples/fluid/falling_water_spheres_2d.jl +++ b/examples/fluid/falling_water_spheres_2d.jl @@ -7,7 +7,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/falling_water_spheres_3d.jl b/examples/fluid/falling_water_spheres_3d.jl index 78db127b5f..c02f87a691 100644 --- a/examples/fluid/falling_water_spheres_3d.jl +++ b/examples/fluid/falling_water_spheres_3d.jl @@ -8,7 +8,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/hydrostatic_water_column_2d.jl b/examples/fluid/hydrostatic_water_column_2d.jl index a62dbab249..03b0407c42 100644 --- a/examples/fluid/hydrostatic_water_column_2d.jl +++ b/examples/fluid/hydrostatic_water_column_2d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/lid_driven_cavity_2d.jl b/examples/fluid/lid_driven_cavity_2d.jl index 9849ca06f7..cc00b79e62 100644 --- a/examples/fluid/lid_driven_cavity_2d.jl +++ b/examples/fluid/lid_driven_cavity_2d.jl @@ -16,7 +16,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/moving_wall_2d.jl b/examples/fluid/moving_wall_2d.jl index 85663188ea..8bb489769b 100644 --- a/examples/fluid/moving_wall_2d.jl +++ b/examples/fluid/moving_wall_2d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/oscillating_drop_2d.jl b/examples/fluid/oscillating_drop_2d.jl index fb96050f42..879a3dcc10 100644 --- a/examples/fluid/oscillating_drop_2d.jl +++ b/examples/fluid/oscillating_drop_2d.jl @@ -12,7 +12,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/periodic_array_of_cylinders_2d.jl b/examples/fluid/periodic_array_of_cylinders_2d.jl index b2dad5bca6..d1473d862b 100644 --- a/examples/fluid/periodic_array_of_cylinders_2d.jl +++ b/examples/fluid/periodic_array_of_cylinders_2d.jl @@ -13,7 +13,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/periodic_channel_2d.jl b/examples/fluid/periodic_channel_2d.jl index 5dab8cfc4a..db328e1732 100644 --- a/examples/fluid/periodic_channel_2d.jl +++ b/examples/fluid/periodic_channel_2d.jl @@ -8,7 +8,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/pipe_flow_2d.jl b/examples/fluid/pipe_flow_2d.jl index d81b72b094..fa1bb65f7e 100644 --- a/examples/fluid/pipe_flow_2d.jl +++ b/examples/fluid/pipe_flow_2d.jl @@ -8,7 +8,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/poiseuille_flow_2d.jl b/examples/fluid/poiseuille_flow_2d.jl index d808b1be71..91da9566e6 100644 --- a/examples/fluid/poiseuille_flow_2d.jl +++ b/examples/fluid/poiseuille_flow_2d.jl @@ -11,7 +11,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/poiseuille_flow_3d.jl b/examples/fluid/poiseuille_flow_3d.jl index c49e7f66bb..8d66bd8250 100644 --- a/examples/fluid/poiseuille_flow_3d.jl +++ b/examples/fluid/poiseuille_flow_3d.jl @@ -10,7 +10,7 @@ # including open boundary conditions. # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/sphere_surface_tension_2d.jl b/examples/fluid/sphere_surface_tension_2d.jl index ca33941ee3..8109a89944 100644 --- a/examples/fluid/sphere_surface_tension_2d.jl +++ b/examples/fluid/sphere_surface_tension_2d.jl @@ -7,7 +7,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK fluid_density = 1000.0 diff --git a/examples/fluid/sphere_surface_tension_3d.jl b/examples/fluid/sphere_surface_tension_3d.jl index 77eacb0ece..6744ef1db2 100644 --- a/examples/fluid/sphere_surface_tension_3d.jl +++ b/examples/fluid/sphere_surface_tension_3d.jl @@ -8,7 +8,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK fluid_density = 1000.0 diff --git a/examples/fluid/sphere_surface_tension_wall_2d.jl b/examples/fluid/sphere_surface_tension_wall_2d.jl index 3df25ae986..44a81e601c 100644 --- a/examples/fluid/sphere_surface_tension_wall_2d.jl +++ b/examples/fluid/sphere_surface_tension_wall_2d.jl @@ -8,7 +8,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fluid/taylor_green_vortex_2d.jl b/examples/fluid/taylor_green_vortex_2d.jl index 0e13d3738d..a7918b10a8 100644 --- a/examples/fluid/taylor_green_vortex_2d.jl +++ b/examples/fluid/taylor_green_vortex_2d.jl @@ -12,7 +12,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fsi/dam_break_gate_2d.jl b/examples/fsi/dam_break_gate_2d.jl index 4667b1af42..89a7362ea8 100644 --- a/examples/fsi/dam_break_gate_2d.jl +++ b/examples/fsi/dam_break_gate_2d.jl @@ -17,7 +17,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fsi/dam_break_plate_2d.jl b/examples/fsi/dam_break_plate_2d.jl index 44d86c5317..c7248fe93c 100644 --- a/examples/fsi/dam_break_plate_2d.jl +++ b/examples/fsi/dam_break_plate_2d.jl @@ -12,7 +12,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fsi/falling_rigid_spheres_2d.jl b/examples/fsi/falling_rigid_spheres_2d.jl index 026e35793e..958bb913cf 100644 --- a/examples/fsi/falling_rigid_spheres_2d.jl +++ b/examples/fsi/falling_rigid_spheres_2d.jl @@ -5,7 +5,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fsi/falling_rotating_rigid_squares_2d.jl b/examples/fsi/falling_rotating_rigid_squares_2d.jl index 5eb1160ea0..1e42ba6f3c 100644 --- a/examples/fsi/falling_rotating_rigid_squares_2d.jl +++ b/examples/fsi/falling_rotating_rigid_squares_2d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fsi/falling_rotating_rigid_squares_w_buoys_2d.jl b/examples/fsi/falling_rotating_rigid_squares_w_buoys_2d.jl index 37efb627a9..5ce88f6624 100644 --- a/examples/fsi/falling_rotating_rigid_squares_w_buoys_2d.jl +++ b/examples/fsi/falling_rotating_rigid_squares_w_buoys_2d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK tspan = (0.0, 2.0) diff --git a/examples/fsi/falling_spheres_2d.jl b/examples/fsi/falling_spheres_2d.jl index e938cbf6f8..a5fe6aa007 100644 --- a/examples/fsi/falling_spheres_2d.jl +++ b/examples/fsi/falling_spheres_2d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fsi/falling_water_column_2d.jl b/examples/fsi/falling_water_column_2d.jl index 210806213d..32a6520b19 100644 --- a/examples/fsi/falling_water_column_2d.jl +++ b/examples/fsi/falling_water_column_2d.jl @@ -7,7 +7,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/fsi/hydrostatic_water_column_2d.jl b/examples/fsi/hydrostatic_water_column_2d.jl index 22a132fd3e..07c062e949 100644 --- a/examples/fsi/hydrostatic_water_column_2d.jl +++ b/examples/fsi/hydrostatic_water_column_2d.jl @@ -9,7 +9,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK using JSON # ========================================================================================== diff --git a/examples/n_body/n_body_benchmark_trixi.jl b/examples/n_body/n_body_benchmark_trixi.jl index 828f046bf2..85eb52e843 100644 --- a/examples/n_body/n_body_benchmark_trixi.jl +++ b/examples/n_body/n_body_benchmark_trixi.jl @@ -79,7 +79,7 @@ particle_system = NBodySystem(initial_condition, G) semi = Semidiscretization(particle_system, neighborhood_search=nothing) -# This is significantly faster than using OrdinaryDiffEq. +# This is significantly faster than using OrdinaryDiffEqLowStorageRK. function symplectic_euler!(velocity, coordinates, semi) v = vec(velocity) u = vec(coordinates) diff --git a/examples/n_body/n_body_solar_system.jl b/examples/n_body/n_body_solar_system.jl index 060eab5330..2418d4e57a 100644 --- a/examples/n_body/n_body_solar_system.jl +++ b/examples/n_body/n_body_solar_system.jl @@ -4,7 +4,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK using Printf include("n_body_system.jl") diff --git a/examples/preprocessing/packing_2d.jl b/examples/preprocessing/packing_2d.jl index 0975b6e2ad..f91d5e8399 100644 --- a/examples/preprocessing/packing_2d.jl +++ b/examples/preprocessing/packing_2d.jl @@ -13,7 +13,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq, Plots +using OrdinaryDiffEqLowStorageRK, Plots filename = "circle" file = pkgdir(TrixiParticles, "examples", "preprocessing", "data", filename * ".asc") diff --git a/examples/preprocessing/packing_3d.jl b/examples/preprocessing/packing_3d.jl index ede3433b38..10622cb907 100644 --- a/examples/preprocessing/packing_3d.jl +++ b/examples/preprocessing/packing_3d.jl @@ -8,7 +8,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK filename = "sphere" file = pkgdir(TrixiParticles, "examples", "preprocessing", "data", filename * ".stl") diff --git a/examples/structure/colliding_rigid_spheres_2d.jl b/examples/structure/colliding_rigid_spheres_2d.jl index 6bfa1877d1..3359a65a49 100644 --- a/examples/structure/colliding_rigid_spheres_2d.jl +++ b/examples/structure/colliding_rigid_spheres_2d.jl @@ -6,7 +6,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/examples/structure/oscillating_beam_2d.jl b/examples/structure/oscillating_beam_2d.jl index b48a10bcbf..e078649d3c 100644 --- a/examples/structure/oscillating_beam_2d.jl +++ b/examples/structure/oscillating_beam_2d.jl @@ -14,7 +14,7 @@ # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # ========================================================================================== # ==== Resolution diff --git a/src/callbacks/split_integration.jl b/src/callbacks/split_integration.jl index feff7e26bf..39939a837e 100644 --- a/src/callbacks/split_integration.jl +++ b/src/callbacks/split_integration.jl @@ -32,7 +32,7 @@ of fluid to solid particles is large enough (e.g. 100:1 or more). # Examples ```jldoctest; output=false -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK # Low-storage RK method with fixed step size callback = SplitIntegrationCallback(CarpenterKennedy2N54(williamson_condition=false), diff --git a/test/Project.toml b/test/Project.toml index 583f367bc9..18a5e1aafa 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -6,13 +6,15 @@ GLM = "38e38edf-8417-5370-95a0-9cbb8c7f171a" Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +OrdinaryDiffEqLowStorageRK = "b0944070-b475-4768-8dec-fb6eb410534d" +OrdinaryDiffEqSymplecticRK = "fa646aed-7ef9-47eb-84c4-9443fc8cbfa8" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +TrixiParticles = "66699cd8-9c01-4e9d-a059-b96c86d16b3a" TrixiTest = "0a316866-cbd0-4425-8bcb-08103b2c1f26" [compat] @@ -22,7 +24,8 @@ DataFrames = "1.6" GLM = "1.9" Glob = "1.3" JSON = "1" -OrdinaryDiffEq = "6.49" +OrdinaryDiffEqLowStorageRK = "1" +OrdinaryDiffEqSymplecticRK = "1" Plots = "1" Polyester = "0.7" QuadGK = "2" diff --git a/test/test_util.jl b/test/test_util.jl index 12ead6e7a9..8671255506 100644 --- a/test/test_util.jl +++ b/test/test_util.jl @@ -8,6 +8,7 @@ using Printf using CSV: CSV using DataFrames: DataFrame using JSON: JSON +using OrdinaryDiffEqSymplecticRK # Required to load extension that provides `SymplecticPositionVerlet` using QuadGK: quadgk # For integration in smoothing kernel tests using Random: Random # For rectangular patch using Polyester: disable_polyester_threads # For `count_rhs_allocations` diff --git a/validation/hydrostatic_water_column_2d/validation.jl b/validation/hydrostatic_water_column_2d/validation.jl index 81fe978cc8..a0e94a34ac 100644 --- a/validation/hydrostatic_water_column_2d/validation.jl +++ b/validation/hydrostatic_water_column_2d/validation.jl @@ -11,7 +11,7 @@ include("../validation_util.jl") # ========================================================================================== using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK using JSON # ========================================================================================== diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index f5f96111ca..8d47d82ff3 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -12,7 +12,7 @@ include("../validation_util.jl") using TrixiParticles -using OrdinaryDiffEq +using OrdinaryDiffEqLowStorageRK using JSON tspan = (0, 10) From a7a97cd34d0b429c35356a2c355f679eb40a24ec Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Apr 2026 15:21:58 +0000 Subject: [PATCH 3/3] docs: restore OrdinaryDiffEq prose links and comments Agent-Logs-Url: https://github.com/trixi-framework/TrixiParticles.jl/sessions/3466007f-0db7-48f1-b1cc-9f56330bf336 Co-authored-by: efaulhaber <44124897+efaulhaber@users.noreply.github.com> --- docs/literate/src/tut_custom_kernel.jl | 2 +- docs/literate/src/tut_packing.jl | 2 +- docs/literate/src/tut_setup.jl | 10 +++++----- docs/src/install.md | 10 +++++++--- docs/src/overview.md | 2 +- docs/src/time_integration.md | 12 ++++++------ examples/n_body/n_body_benchmark_trixi.jl | 2 +- 7 files changed, 22 insertions(+), 18 deletions(-) diff --git a/docs/literate/src/tut_custom_kernel.jl b/docs/literate/src/tut_custom_kernel.jl index 375bc36b27..56f49e6d3b 100644 --- a/docs/literate/src/tut_custom_kernel.jl +++ b/docs/literate/src/tut_custom_kernel.jl @@ -5,7 +5,7 @@ # without ever cloning the repository. # First, we import TrixiParticles.jl and -# [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl), which we will +# [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl), which we will # use at the very end for the time integration. using TrixiParticles using OrdinaryDiffEqLowStorageRK diff --git a/docs/literate/src/tut_packing.jl b/docs/literate/src/tut_packing.jl index 254488c69a..e380789ad7 100644 --- a/docs/literate/src/tut_packing.jl +++ b/docs/literate/src/tut_packing.jl @@ -130,7 +130,7 @@ plot!(geometry, linestyle=:dash, label=nothing, showaxis=false, color=:black, # which does not represent any physical law. Instead, we only use the simulation framework to time-integrate # the packing process. -# We first need to import [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl). +# We first need to import [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl). using OrdinaryDiffEqLowStorageRK # Next, we set a background pressure. This can be chosen arbitrarily. diff --git a/docs/literate/src/tut_setup.jl b/docs/literate/src/tut_setup.jl index 2c1c032077..9ba978d5cf 100644 --- a/docs/literate/src/tut_setup.jl +++ b/docs/literate/src/tut_setup.jl @@ -7,7 +7,7 @@ # For different setups and physics, take a look at [our other example files](@ref examples). # First, we import TrixiParticles.jl and -# [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl), which we will +# [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl), which we will # use at the very end for the time integration. using TrixiParticles using OrdinaryDiffEqLowStorageRK @@ -158,10 +158,10 @@ nothing # hide # ## Time integration # We use the methods provided by -# [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl), +# [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl), # but note that other packages or custom implementations can also be used. -# OrdinaryDiffEqLowStorageRK.jl supports callbacks, which are executed during the simulation. +# OrdinaryDiffEq.jl supports callbacks, which are executed during the simulation. # For this simulation, we use the [`InfoCallback`](@ref), which prints # information about the simulation setup at the beginning of the simulation, # information about the current simulation time and runtime during the simulation, @@ -169,7 +169,7 @@ nothing # hide # We also want to save the current solution in regular intervals in terms of # simulation time as VTK, so that we can [look at the solution in ParaView](@ref Visualization). # The [`SolutionSavingCallback`](@ref) provides this functionality. -# To pass the callbacks to OrdinaryDiffEqLowStorageRK.jl, we have to bundle them into a +# To pass the callbacks to OrdinaryDiffEq.jl, we have to bundle them into a # `CallbackSet`. info_callback = InfoCallback(interval=50) saving_callback = SolutionSavingCallback(dt=0.02) @@ -178,7 +178,7 @@ callbacks = CallbackSet(info_callback, saving_callback) nothing # hide # Finally, we can start the simulation by solving the `ODEProblem`. -# We use the method `RDPK3SpFSAL35` of OrdinaryDiffEqLowStorageRK.jl, which is a Runge-Kutta +# We use the method `RDPK3SpFSAL35` of OrdinaryDiffEq.jl, which is a Runge-Kutta # method with automatic (error based) time step size control. # This method is usually a good choice for prototyping, since we do not have to # worry about choosing a stable step size and can just run the simulation. diff --git a/docs/src/install.md b/docs/src/install.md index 5a4895c090..595facbe1d 100644 --- a/docs/src/install.md +++ b/docs/src/install.md @@ -8,7 +8,8 @@ with Julia v1.10 and newer. We recommend using the latest stable release of Juli ## For users TrixiParticles.jl is a registered Julia package. You can install TrixiParticles.jl, -[OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl) (used for time integration) +time integration sub-packages of [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl) +(e.g., `OrdinaryDiffEqLowStorageRK.jl`) and [Plots.jl](https://github.com/JuliaPlots/Plots.jl) by executing the following commands in the Julia REPL: ```julia @@ -36,11 +37,14 @@ julia --project=run from the TrixiParticles.jl root directory. The advantage of using a separate `run` directory is that you can also add other -related packages (e.g., OrdinaryDiffEqLowStorageRK.jl, see above) to the project in the `run` folder +related packages (e.g., time integration sub-packages of OrdinaryDiffEq.jl, see above) +to the project in the `run` folder and always have a reproducible environment at hand to share with others. ## Optional software/packages -- [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl) -- A Julia package of ordinary differential equation solvers that is used in the examples +- [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl) sub-packages + (e.g., `OrdinaryDiffEqLowStorageRK.jl`) -- Julia packages of ordinary differential + equation solvers that are used in the examples - [Plots.jl](https://github.com/JuliaPlots/Plots.jl) -- Julia Plotting library that is used in some examples - [PythonPlot.jl](https://github.com/JuliaPy/PythonPlot.jl) -- Plotting library that can be used instead of Plots.jl - [ParaView](https://www.paraview.org/) -- Software that can be used for visualization of results diff --git a/docs/src/overview.md b/docs/src/overview.md index a4be025ccc..a1b6a70d5a 100644 --- a/docs/src/overview.md +++ b/docs/src/overview.md @@ -10,7 +10,7 @@ The following page gives a rough overview of important parts of the code. ## Program flow To initiate a simulation, the goal is to solve an ordinary differential equation, for example, -by employing the time integration schemes provided by OrdinaryDiffEqLowStorageRK.jl. These schemes are then +by employing the time integration schemes provided by OrdinaryDiffEq.jl. These schemes are then utilized to integrate ``\mathrm{d}u/\mathrm{d}t`` and ``\mathrm{d}v/\mathrm{d}t``, where ``u`` represents the particles' positions and ``v`` their properties such as velocity and density. During a single time step or an intermediate step of the time integration scheme, the functions diff --git a/docs/src/time_integration.md b/docs/src/time_integration.md index 7a596338fd..abe3e01a90 100644 --- a/docs/src/time_integration.md +++ b/docs/src/time_integration.md @@ -3,8 +3,8 @@ TrixiParticles.jl uses a modular approach where time integration is just another module that can be customized and exchanged. The function [`semidiscretize`](@ref) returns an `ODEProblem` -(see [the OrdinaryDiffEqLowStorageRK.jl docs](https://docs.sciml.ai/DiffEqDocs/stable/types/ode_types/)), -which can be integrated with [OrdinaryDiffEqLowStorageRK.jl](https://github.com/SciML/OrdinaryDiffEqLowStorageRK.jl). +(see [the OrdinaryDiffEq.jl docs](https://docs.sciml.ai/DiffEqDocs/stable/types/ode_types/)), +which can be integrated with [OrdinaryDiffEq.jl](https://github.com/SciML/OrdinaryDiffEq.jl). In particular, a [`DynamicalODEProblem`](https://docs.sciml.ai/DiffEqDocs/stable/types/dynamical_types/) is returned, where the right-hand side is split into two functions, the `kick!`, which @@ -20,7 +20,7 @@ However, all integrators designed for general `ODEProblem`s can be used. ## Usage After obtaining an `ODEProblem` from [`semidiscretize`](@ref), let us call it `ode`, -we can pass it to the function `solve` of OrdinaryDiffEqLowStorageRK.jl. +we can pass it to the function `solve` of OrdinaryDiffEq.jl. For most schemes, we do the following: ```julia using OrdinaryDiffEqLowStorageRK @@ -34,7 +34,7 @@ For callbacks, please refer to [the docs](@ref Callbacks) and the example files. In this case, we need to either set a reasonable, problem- and resolution-dependent step size `dt`, or use the [`StepsizeCallback`](@ref), which overwrites the step size dynamically during the simulation based on a CFL-number. -We always set `save_everystep=false`, or OrdinaryDiffEqLowStorageRK.jl would return the solution vector +We always set `save_everystep=false`, or OrdinaryDiffEq.jl would return the solution vector for every time step, writing massive amounts of data into the RAM for large simulations. To visualize data for every time step, [callbacks](@ref Callbacks) can be used. @@ -81,7 +81,7 @@ in the inviscid case. Once we add viscosity, ``\operatorname{kick}`` depends on both ``u`` and ``v``. Then, the calculation of ``v^1`` requires ``v^1`` and becomes implicit. -The way this scheme is implemented in OrdinaryDiffEqLowStorageRK.jl as `VerletLeapfrog`, +The way this scheme is implemented in OrdinaryDiffEq.jl as `VerletLeapfrog`, the intermediate velocity ``v^{1/2}`` is passed to ``\operatorname{kick}`` in the last stage, resulting in first-order convergence when the scheme is used in the viscid case. @@ -109,7 +109,7 @@ v^1 &= v^0 + \Delta t\, \operatorname{kick} \left( v^{1/2}, u^{1/2}, t^0 + \frac u^1 &= u^{1/2} + \frac{1}{2} \Delta t\, \operatorname{drift}(v^{1}, u^{1}, t^0 + \Delta t). \end{align*} ``` -This scheme is implemented in OrdinaryDiffEqLowStorageRK.jl as `LeapfrogDriftKickDrift` and yields +This scheme is implemented in OrdinaryDiffEq.jl as `LeapfrogDriftKickDrift` and yields the desired second order as long as ``\operatorname{drift}`` does not depend on ``u``, which is always the case. diff --git a/examples/n_body/n_body_benchmark_trixi.jl b/examples/n_body/n_body_benchmark_trixi.jl index 85eb52e843..828f046bf2 100644 --- a/examples/n_body/n_body_benchmark_trixi.jl +++ b/examples/n_body/n_body_benchmark_trixi.jl @@ -79,7 +79,7 @@ particle_system = NBodySystem(initial_condition, G) semi = Semidiscretization(particle_system, neighborhood_search=nothing) -# This is significantly faster than using OrdinaryDiffEqLowStorageRK. +# This is significantly faster than using OrdinaryDiffEq. function symplectic_euler!(velocity, coordinates, semi) v = vec(velocity) u = vec(coordinates)