Skip to content

Commit 4350564

Browse files
authored
minor revisions
1 parent dcaaaa3 commit 4350564

2 files changed

Lines changed: 64 additions & 18 deletions

File tree

paper/paper.bib

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,4 +206,49 @@ @article {Shampine2005
206206
MRNUMBER = {2177561},
207207
DOI = {10.1016/j.amc.2004.12.011},
208208
URL = {https://doi.org/10.1016/j.amc.2004.12.011},
209-
}
209+
}
210+
211+
@article{rackauckas2017differentialequations,
212+
title={{DifferentialEquations.jl} {--} {A} Performant and Feature-Rich
213+
Ecosystem for Solving Differential Equations in {J}ulia},
214+
author={Rackauckas, Christopher and Nie, Qing},
215+
journal={Journal of Open Research Software},
216+
volume={5},
217+
number={1},
218+
pages={15},
219+
year={2017},
220+
publisher={Ubiquity Press},
221+
doi={10.5334/jors.151}
222+
}
223+
224+
@article{bezanson2017julia,
225+
title={Julia: {A} Fresh Approach to Numerical Computing},
226+
author={Bezanson, Jeff and Edelman, Alan and Karpinski, Stefan and
227+
Shah, Viral B},
228+
journal={SIAM Review},
229+
volume={59},
230+
number={1},
231+
pages={65--98},
232+
year={2017},
233+
publisher={SIAM},
234+
eprint={1411.1607},
235+
eprinttype={arxiv},
236+
eprintclass={cs.MS},
237+
doi={10.1137/141000671}
238+
}
239+
240+
@article{christ2023plots,
241+
author={Christ, Simon and Schwabeneder, Daniel and Rackauckas, Christopher
242+
and Borregaard, Michael Krabbe and Breloff, Thomas},
243+
title={Plots.jl --- a user extendable plotting {API} for the {J}ulia
244+
programming language},
245+
journal={Journal of Open Research Software},
246+
volume={11},
247+
number={1},
248+
pages={5},
249+
year={2023},
250+
doi={10.5334/jors.431},
251+
eprint={2204.08775},
252+
eprinttype={arxiv},
253+
eprintclass={cs.GR}
254+
}

paper/paper.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ bibliography: paper.bib
2626

2727
# Summary
2828

29-
We introduce PositiveIntegrators.jl, a Julia package that provides efficient implementations of various modified Patankar--Runge--Kutta (MPRK) schemes, making these methods accessible for users and comparable for researchers. MPRK schemes are unconditionally positive time integration schemes for the the solution of positive differential equations. In addition, the numerical solutions preserve the conservation property when applied to a conservative system.
30-
The package is fully compatible with `DifferentialEquations.jl`, which allows a direct comparison of MPRK and standard schemes.
29+
We introduce PositiveIntegrators.jl, a Julia package that provides efficient implementations of various modified Patankar--Runge--Kutta (MPRK) schemes, making these methods accessible for users and comparable for researchers. MPRK schemes are unconditionally positive time integration schemes for the solution of positive differential equations. In addition, the numerical solutions preserve the conservation property when applied to a conservative system.
30+
The package is fully compatible with DifferentialEquations.jl, which allows a direct comparison of MPRK and standard schemes.
3131

3232

3333
# Statement of need
@@ -36,17 +36,20 @@ Many systems of ordinary differential equations that model real-life application
3636
For some of these systems unconditionally positivity-preserving time integration methods are helpful or even necessary to obtain meaningful solutions.
3737

3838
Unfortunately, positivity is a property that almost all standard time integration schemes, such as Runge–Kutta methods, Rosenbrock methods, or linear multistep methods, do not preserve.
39-
The only standard scheme with which unconditional positivity can be achieved is the implicit Euler method. However, this is only first-order accurate and, in addition, the preservation of positivity within the nonlinear iteration process poses a problem.
40-
Another strategy for preserving positivity used in existing open source or commercial packages (Matlab) is to set negative solution components that are accepted by the step size control to zero. Unfortunately, this can have a negative impact on possible conservation properties. Further approaches in the literature include projections inbetween time steps, if a negative solution was computed, or it is tried to reduce the time step size as long as a non-negative solution is calculated. Finally, SSP Runge-Kutta methods can also be used to preserve positivity, but this is again subject to step size limitations.
39+
The only standard scheme with which unconditional positivity can be achieved is the implicit Euler method
40+
(assuming that the nonlinear systems are solved exactly). However, this is only first-order accurate and, in addition, the preservation of positivity within the nonlinear iteration process poses a problem.
41+
Another strategy for preserving positivity used in existing open source or commercial packages (like MATLAB) is to set negative solution components that are accepted by the step size control to zero. Unfortunately, this can have a negative impact on possible conservation properties. Further approaches in the literature include projections inbetween time steps, if a negative solution was computed, or it is tried to reduce the time step size as long as a non-negative solution is calculated. Finally, strong stability preserving (SSP) methods can also be used to preserve positivity, but this is again subject to step size limitations.
4142

4243
Consequently, various new, unconditionally positive schemes, especially modified Patankar--Runge--Kutta (MPRK) methods, have been introduced in recent years.
43-
Unfortunately, these new methods are not yet available in software packages, making them inaccessible to most users and limiting their comparability within the scientific community. `PositiveIntegrators.jl` makes these methods available and thus usable and comparable.
44+
Unfortunately, these new methods are not yet available in software packages, making them inaccessible to most users and limiting their comparability within the scientific community. PositiveIntegrators.jl makes these methods available and thus usable and comparable.
4445

4546

4647
# Features
4748

48-
The package is fully compatible with `DifferentialEquations.jl` and therefore many features that are available there can be used directly. In particular, this allows a direct comparison of MPRK and standard schemes.
49-
The package offers implementations of conservative as well as non-conservative production-destruction systems (PDS), which are the building blocks for the solution of differential equations with MPRK schemes. Furthermore, conversions of these PDS to standard `ODEProblem`s from `DifferentialEquations.jl` are provided.
49+
PositiveIntegrators.jl is written in Julia [@bezanson2017julia] and makes use of its strengths for scientific computing, e.g., ease of use and performance.
50+
The package is fully compatible with DifferentialEquations.jl [@rackauckas2017differentialequations] and therefore many features that are available there can be used directly. In particular, this allows a direct comparison of MPRK and standard schemes. Moreover, it integrates well with the Julia ecosystem, e.g., by making it simple to visualize numerical solutions using dense output in Plots.jl [christ2023plots].
51+
52+
The package offers implementations of conservative as well as non-conservative production-destruction systems (PDS), which are the building blocks for the solution of differential equations with MPRK schemes. Furthermore, conversions of these PDS to standard `ODEProblem`s from DifferentialEquations.jl are provided.
5053

5154
The package contains several MPRK methods:
5255

@@ -58,26 +61,24 @@ In addition, all implemented MPRK methods have been extended so that non-conserv
5861

5962
# Related research and software
6063

61-
The first MPRK schemes were introduced in @burchard2003. These are the first order scheme `MPE` and a second order scheme based on Heun's method. To avoid the restriction to Heun's method, the second order `MPRK22` schemes were developed in @kopeczmeister2018order2. The techniques developed therein, also enabled a generalization to third order schemes and thus the introduction of `MPRK43I` and `MPRK43II` schemes in @kopeczmeister2018order3.
64+
The first MPRK schemes were introduced by @burchard2003. These are the first-order scheme `MPE` and a second-order scheme based on Heun's method. To avoid the restriction to Heun's method, the second-order `MPRK22` schemes were developed by @kopeczmeister2018order2. The techniques developed therein also enabled a generalization to third-order schemes and thus the introduction of `MPRK43I` and `MPRK43II` schemes by @kopeczmeister2018order3.
6265

63-
The aforementioned schemes were derived from the classical formulation of Runge-Kutta schemes. Using the Shu-Osher formulation instead lead to the introduction of the second order schemes `SSPMPRK22` in @huang2019order2 and the third order scheme `SSPMPRK43` in @huang2019order3.
66+
The aforementioned schemes were derived from the classical formulation of Runge-Kutta schemes. Using the Shu-Osher formulation instead lead to the introduction of the second-order schemes `SSPMPRK22` by @huang2019order2 and the third-order scheme `SSPMPRK43` by @huang2019order3.
6467

65-
Starting from a low order scheme, the deferred correction approach can be used to increase the scheme's approximation order iteratively. In @OeffnerTorlo2020 deferred correction was combined with the MPRK idea to devise MPRK schemes of arbitrary order. These are implemented as `MPDeC` schemes for order 2 up to 10.
68+
Starting from a low-order scheme, the deferred correction approach can be used to increase the scheme's approximation order iteratively. @OeffnerTorlo2020 combined deferred correction with the MPRK idea to devise MPRK schemes of arbitrary order. These are implemented as `MPDeC` schemes for orders 2 up to 10.
6669

67-
The implemented schemes were originally introduced for conservative production-destruction systems only. An extension to non-conservative production-destruction-systems was presented in @benzmeister2015. We implemented a modification of this algorithm, by treating the non-conservative production and destruction terms separately, weighting the destruction terms and leaving the production terms unweighted.
70+
The implemented schemes were originally introduced for conservative production-destruction systems only. An extension to non-conservative production-destruction-systems was presented by @benzmeister2015. We implemented a modification of this algorithm, by treating the non-conservative production and destruction terms separately, weighting the destruction terms and leaving the production terms unweighted.
6871

69-
Readers interested in additional theoretical background and further properties of the implemented schemes are referred to the following papers: @kopeczmeister2019, @izgin2022stability1, @izgin2022stability2, @huang2023, @torlo2022, @izginoeffner2023
72+
Readers interested in additional theoretical background and further properties of the implemented schemes are referred to the publications of @kopeczmeister2019, @izgin2022stability1, @izgin2022stability2, @huang2023, @torlo2022, @izginoeffner2023.
7073

7174
Existing software libraries do not have a strong focus on unconditional positivity and, to the authors' knowledge, there is no other software library which offers MPRK schemes.
72-
A common strategy to obtain nonnegative solutions used in the `PositiveDomain` callback of `Differentialequtions.jl` or the commercial package `Matlab` is described by @Shampine2005. In this approach negative components of approximate solutions that have been accepted by the adaptive time stepping algorithm are set to zero.
73-
Another possibility is to reduce the chosen time step size beyond accuracy considerations until a non-negative approximation is calculated. This can be achieved in `DifferentialEquations.jl` using the solver option `isoutofdomain`.
75+
A common strategy to obtain nonnegative solutions used in the `PositiveDomain` callback of Differentialequtions.jl or the commercial package MATLAB is described by @Shampine2005. In this approach negative components of approximate solutions that have been accepted by the adaptive time stepping algorithm are set to zero.
76+
Another possibility is to reduce the chosen time step size beyond accuracy considerations until a non-negative approximation is calculated. This can be achieved in DifferentialEquations.jl using the solver option `isoutofdomain`.
7477

7578
We also mention that some papers on MPRK schemes offer supplementary codes. However, these are mainly small scripts for the reproduction of results shown in the papers and are not intended as software libraries.
7679

7780

78-
TODO
79-
80-
@bartel2024structure
81+
TODO: @bartel2024structure
8182

8283

8384
# Acknowledgements

0 commit comments

Comments
 (0)