Skip to content

[DO NOT MERGE] JOSS Paper Draft #138

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

Draft
wants to merge 58 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
b31dba1
paper template
ranocha Feb 20, 2025
f620754
build paper draft
ranocha Feb 20, 2025
5ce654c
draft action at master
ranocha Feb 20, 2025
ff973c5
no CI when changing the paper
ranocha Feb 20, 2025
1636637
build paper draft also on PR
ranocha Feb 20, 2025
75c3c87
ignore more CI
ranocha Feb 20, 2025
29fb5ae
update
ranocha Feb 20, 2025
9961c5b
Update paper/paper.md
ranocha Feb 21, 2025
c5cb4f0
First draft summary paper.md
SKopecz Feb 24, 2025
1049275
Update paper.md
SKopecz Feb 24, 2025
43cb7d2
additional references
SKopecz Feb 24, 2025
8be7e1c
Update paper.md
SKopecz Feb 24, 2025
6baf816
Update paper.bib
SKopecz Feb 24, 2025
2f43d49
added paper by torlo, oeffner, ranocha
SKopecz Feb 24, 2025
a36614d
ref to paper by torlo, oeffner, ranocha
SKopecz Feb 24, 2025
f85f54c
added paper benz, meister, zardo
SKopecz Feb 24, 2025
2f07d93
ref to benz, meister, zardo
SKopecz Feb 24, 2025
888df07
fix rebase
ranocha Feb 27, 2025
83436d7
fix typos
ranocha Feb 27, 2025
69a1a70
Update paper.bib
SKopecz Mar 3, 2025
816b7d0
Update paper.md
SKopecz Mar 3, 2025
2a250aa
Update paper.bib
SKopecz Mar 3, 2025
b0117d7
Update paper.md
SKopecz Mar 3, 2025
094a8bc
Update paper.bib
SKopecz Mar 3, 2025
9ac3808
Update paper.md
SKopecz Mar 3, 2025
fc31c14
Update paper.md
SKopecz Mar 3, 2025
c552457
Added reference and a short text on MPDeC.
SKopecz Apr 1, 2025
a588020
corrected typo
SKopecz Apr 1, 2025
35ee35c
First thoughts on realted software
SKopecz Apr 1, 2025
b649618
First features
SKopecz Apr 1, 2025
133f320
minor changes
SKopecz Apr 1, 2025
a4ee226
First draft statement of need
SKopecz Apr 2, 2025
fc00f71
revised features sectoin
SKopecz Apr 2, 2025
0c26a5b
restructured summary and statement of need
SKopecz Apr 2, 2025
45c615d
minor changes
SKopecz Apr 2, 2025
b294e95
typo
SKopecz Apr 2, 2025
c17b4fd
minor changes
SKopecz Apr 2, 2025
dcaaaa3
Merge branch 'main' into paper-2025-joss
ranocha Apr 2, 2025
4350564
minor revisions
ranocha Apr 2, 2025
82be02f
additional references
ranocha Apr 2, 2025
7ac358d
Sigal is no typo
ranocha Apr 2, 2025
9620817
fix citation
ranocha Apr 2, 2025
fd79db1
fix citation
ranocha Apr 2, 2025
107c024
Merge branch 'main' into paper-2025-joss
JoshuaLampert Apr 2, 2025
8d77367
Apply suggestions from code review
SKopecz Apr 3, 2025
b863c6b
Merge branch 'main' into paper-2025-joss
SKopecz Apr 3, 2025
2bf926e
Additional comments from review
SKopecz Apr 3, 2025
c4cb373
less focus on MPRK
SKopecz Apr 3, 2025
540cea8
typo
SKopecz Apr 3, 2025
e9514a1
cite Ortleb & Hundsdorfer 2017
SKopecz Apr 3, 2025
fe36fb9
minor change
SKopecz Apr 3, 2025
90f436e
Update paper/paper.md
SKopecz Apr 3, 2025
51fd725
minor revisions
ranocha Apr 4, 2025
961fb86
Apply suggestions from code review
ranocha Apr 4, 2025
4ea5f25
Added tags, updated date
SKopecz Apr 22, 2025
5677f49
Update paper/paper.md
ranocha Apr 22, 2025
040ea77
Merge branch 'main' into paper-2025-joss
SKopecz Apr 22, 2025
65f6040
Added missing DOIs
SKopecz Apr 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
179 changes: 179 additions & 0 deletions paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -301,3 +301,182 @@ @book{gottlieb2011strong
publisher={World Scientific},
address={Singapore}
}

@article {Bruggeman2007,
AUTHOR = {Bruggeman, Jorn and Burchard, Hans and Kooi, Bob W. and
Sommeijer, Ben},
TITLE = {A second-order, unconditionally positive, mass-conserving
integration scheme for biochemical systems},
JOURNAL = {Applied Numerical Mathematics},
VOLUME = {57},
YEAR = {2007},
NUMBER = {1},
PAGES = {36--58},
ISSN = {0168-9274,1873-5460},
MRCLASS = {65L05 (92E20)},
MRNUMBER = {2279505},
DOI = {10.1016/j.apnum.2005.12.001},
URL = {https://doi.org/10.1016/j.apnum.2005.12.001},
}

@article {Broekhuizen2008,
AUTHOR = {Broekhuizen, N. and Rickard, Graham J. and Bruggeman, J. and
Meister, A.},
TITLE = {An improved and generalized second order, unconditionally
positive, mass conserving integration scheme for biochemical
systems},
JOURNAL = {Applied Numerical Mathematics},
VOLUME = {58},
YEAR = {2008},
NUMBER = {3},
PAGES = {319--340},
ISSN = {0168-9274,1873-5460},
MRCLASS = {65L06 (92E20)},
MRNUMBER = {2392690},
DOI = {10.1016/j.apnum.2006.12.002},
URL = {https://doi.org/10.1016/j.apnum.2006.12.002},
}

@article {Martiradonna2020,
AUTHOR = {Martiradonna, Angela and Colonna, Gianpiero and Diele, Fasma},
TITLE = {{\it {G}e{C}o}: {G}eometric {C}onservative nonstandard schemes
for biochemical systems},
JOURNAL = {Applied Numerical Mathematics},
VOLUME = {155},
YEAR = {2020},
PAGES = {38--57},
ISSN = {0168-9274,1873-5460},
MRCLASS = {92C40 (65P10)},
MRNUMBER = {4087156},
DOI = {10.1016/j.apnum.2019.12.004},
URL = {https://doi.org/10.1016/j.apnum.2019.12.004},
}

@article {Avila2021,
AUTHOR = {\'Avila, Andr\'es I. and Gonz\'alez, Galo Javier and Kopecz,
Stefan and Meister, Andreas},
TITLE = {Extension of modified {P}atankar-{R}unge-{K}utta schemes to
nonautonomous production-destruction systems based on
{O}liver's approach},
JOURNAL = {Journal of Computational and Applied Mathematics},
VOLUME = {389},
YEAR = {2021},
PAGES = {Paper No. 113350, 13},
ISSN = {0377-0427,1879-1778},
MRCLASS = {65L06},
MRNUMBER = {4194400},
DOI = {10.1016/j.cam.2020.113350},
URL = {https://doi.org/10.1016/j.cam.2020.113350},
}

@article {Avila2020,
AUTHOR = {\'Avila, Andr\'es I. and Kopecz, Stefan and Meister, Andreas},
TITLE = {A comprehensive theory on generalized {BBKS} schemes},
JOURNAL = {Applied Numerical Mathematics},
VOLUME = {157},
YEAR = {2020},
PAGES = {19--37},
ISSN = {0168-9274,1873-5460},
MRCLASS = {65L06 (65L04 65L20)},
MRNUMBER = {4109346},
DOI = {10.1016/j.apnum.2020.05.027},
URL = {https://doi.org/10.1016/j.apnum.2020.05.027},
}

@article {Formaggia2011,
AUTHOR = {Formaggia, L. and Scotti, A.},
TITLE = {Positivity and conservation properties of some integration
schemes for mass action kinetics},
JOURNAL = {SIAM Journal on Numerical Analysis},
VOLUME = {49},
YEAR = {2011},
NUMBER = {3},
PAGES = {1267--1288},
ISSN = {0036-1429,1095-7170},
MRCLASS = {65L04 (65L20 80A30 92E20)},
MRNUMBER = {2812567},
DOI = {10.1137/100789592},
URL = {https://doi.org/10.1137/100789592},
}

@article {Izzo2025,
AUTHOR = {Izzo, Giuseppe and Messina, Eleonora and Pezzella, Mario and
Vecchio, Antonia},
TITLE = {Modified {P}atankar linear multistep methods for
production-destruction systems},
JOURNAL = {Journal of Scientific Computing},
VOLUME = {102},
YEAR = {2025},
NUMBER = {3},
PAGES = {Paper No. 87, 39},
ISSN = {0885-7474,1573-7691},
MRCLASS = {65L05 (65L06)},
MRNUMBER = {4860303},
DOI = {10.1007/s10915-025-02804-5},
URL = {https://doi.org/10.1007/s10915-025-02804-5},
}

@article {Zhu2024,
AUTHOR = {Zhu, Fangyao and Huang, Juntao and Yang, Yang},
TITLE = {Bound-preserving discontinuous {G}alerkin methods with
modified {P}atankar time integrations for chemical reacting
flows},
JOURNAL = {Communications on Applied Mathematics and Computation},
VOLUME = {6},
YEAR = {2024},
NUMBER = {1},
PAGES = {190--217},
ISSN = {2096-6385,2661-8893},
MRCLASS = {65M15 (65M60 80A32)},
MRNUMBER = {4710831},
DOI = {10.1007/s42967-022-00231-z},
URL = {https://doi.org/10.1007/s42967-022-00231-z},
}

@article {Blanes2022,
AUTHOR = {Blanes, Sergio and Iserles, Arieh and Macnamara, Shev},
TITLE = {Positivity-preserving methods for ordinary differential
equations},
JOURNAL = {ESAIM. Mathematical Modelling and Numerical Analysis},
VOLUME = {56},
YEAR = {2022},
NUMBER = {6},
PAGES = {1843--1870},
ISSN = {2822-7840,2804-7214},
MRCLASS = {65L05 (65L04 65P99)},
MRNUMBER = {4467101},
DOI = {10.1051/m2an/2022042},
URL = {https://doi.org/10.1051/m2an/2022042},
}

@article {Izgin2025,
AUTHOR = {Izgin, Thomas and Ketcheson, David I. and Meister, Andreas},
TITLE = {Order conditions for {R}unge--{K}utta-like methods with
solution-dependent coefficients},
JOURNAL = {Communications in Applied Mathematics and Computational
Science},
VOLUME = {20},
YEAR = {2025},
NUMBER = {1},
PAGES = {29--66},
ISSN = {1559-3940,2157-5452},
MRCLASS = {65L06},
MRNUMBER = {4873114},
DOI = {10.2140/camcos.2025.20.29},
URL = {https://doi.org/10.2140/camcos.2025.20.29},
}

@article{Ortleb2017,
author = {Ortleb, Sigrun and Hundsdorfer, Willem},
title = {Patankar-type Runge-Kutta schemes for linear PDEs},
journal = {AIP Conference Proceedings},
volume = {1863},
number = {1},
pages = {320008},
year = {2017},
month = {07},
issn = {0094-243X},
doi = {10.1063/1.4992489},
url = {https://doi.org/10.1063/1.4992489},
eprint = {https://pubs.aip.org/aip/acp/article-pdf/doi/10.1063/1.4992489/13749027/320008\_1\_online.pdf},
}
31 changes: 16 additions & 15 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ bibliography: paper.bib

# Summary

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.
The package is fully compatible with DifferentialEquations.jl, which allows a direct comparison of MPRK and standard schemes.
We introduce PositiveIntegrators.jl, a Julia package that provides efficient implementations of various time integration schemes for the solution of positive ordinary differential equations, making these methods accessible for users and comparable for researchers. Currently, the package provides MPRK, SSP-MPRK and MPDeC schemes, all of which are unconditionally positive and also preserve the conservation property when applied to a conservative system.
The package is fully compatible with DifferentialEquations.jl, which allows a direct comparison between the provided schemes and standard methods.


# Statement of need
Expand All @@ -39,36 +39,37 @@ Unfortunately, positivity is a property that almost all standard time integratio
In particular, higher-order general linear methods cannot preserve positivity unconditionally [@bolley1978conservation].
The only standard scheme with which unconditional positivity can be achieved is the implicit Euler method
(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.
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 [@sandu2001positive; @nusslein2021positivity], 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 [@gottlieb2011strong].
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 in between time steps [@sandu2001positive; @nusslein2021positivity], 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 [@gottlieb2011strong].

Consequently, various new, unconditionally positive schemes, especially modified Patankar--Runge--Kutta (MPRK) methods, have been introduced in recent years.
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.
Consequently, various new, unconditionally positive schemes have been introduced in recent years, see @burchard2003, @Bruggeman2007, @Broekhuizen2008, @Formaggia2011, @Ortleb2017, @kopeczmeister2018order2, @kopeczmeister2018order3, @huang2019order2, @huang2019order3, @OeffnerTorlo2020, @Martiradonna2020, @Avila2020, @Avila2021, @Blanes2022, @Zhu2024, @Izzo2025, @Izgin2025. Among these, most of the literature is devoted to modified Patankar--Runge--Kutta (MPRK) methods.

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 aims at making these methods available and thus usable and comparable.


# Features

PositiveIntegrators.jl is written in Julia [@bezanson2017julia] and makes use of its strengths for scientific computing, e.g., ease of use and performance.
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].
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 the provided methods 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].

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.

The package contains several MPRK methods:
Currently, the package contains the following methods:

- The MPRK methods `MPE`, `MPRK22`, `MPRK43I` and `MPRK43II` of Kopecz and Meister are based on the classical formulation of Runge--Kutta schemes and have accuracies from first to third order.
- The MPRK methods `SSPMPRK22` and `SSPMPRK43` of Huang, Zhao and Shu are based on the SSP formulation of Runge--Kutta schemes and are of second or third order.
- The `MPDeC` methods of Öffner and Torlo combine the deferred correction approach with the idea of MPRK schemes to obtain schemes of arbitrary order. In the package methods from second up to 10th order are implemented.
- The MPRK methods `MPE`, `MPRK22`, `MPRK43I` and `MPRK43II` of Kopecz and Meister @kopeczmeister2018order2, @kopeczmeister2018order3 are based on the classical formulation of Runge--Kutta schemes and have accuracies from first to third order.
- The MPRK methods `SSPMPRK22` and `SSPMPRK43` of Huang, Zhao and Shu @huang2019order2, @huang2019order3 are based on the SSP formulation of Runge--Kutta schemes and are of second or third order.
- The `MPDeC` methods of Öffner and Torlo @OeffnerTorlo2020 combine the deferred correction approach with the idea of MPRK schemes to obtain schemes of arbitrary order. In the package methods from second up to 10th order are implemented.

In addition, all implemented MPRK methods have been extended so that non-conservative and non-autonomous PDS can be solved as well. Furthermore, adaptive step size control is available for almost all schemes.
In addition, all implemented methods have been extended so that non-conservative and non-autonomous PDS can be solved as well. Furthermore, adaptive step size control is available for almost all schemes.

# Related research and software

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.
The first MPRK methods 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` methods by @kopeczmeister2018order3.

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.
The aforementioned schemes were derived from the classical formulation of Runge-Kutta methods. 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.

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.
Starting from a low-order method, the deferred correction approach can be used to increase the method'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.

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.
The implemented methods 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.

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.

Expand Down
Loading