From 3fd40b25a9e2589edc1ea69b33aa6dacb79cbdb5 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Fri, 1 Aug 2025 15:51:22 +0200 Subject: [PATCH 01/39] FIX: typos --- docs/source/cpp/interfaces.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/cpp/interfaces.rst b/docs/source/cpp/interfaces.rst index d4ca67d3ef..338f6e4ef8 100644 --- a/docs/source/cpp/interfaces.rst +++ b/docs/source/cpp/interfaces.rst @@ -3,7 +3,7 @@ Extensions MEmilio provides several extensions to interact with external data structures or software. -- :doc:The `Systems Biology Markup Language `_ (`SBML `) can be used to semi-automatically create (or load) models in MEmilio from a given model description in SBML format. +- The :doc:`SBML importer ` can be used to semi-automatically create (or load) models in MEmilio from a given model description in `Systems Biology Markup Language `_ (SBML) format. **Further advice:** From 7739369a5dd61c8a930379d884404fcb00e3faf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChn?= Date: Fri, 1 Aug 2025 19:51:12 +0200 Subject: [PATCH 02/39] . --- docs/source/team.rst | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/source/team.rst b/docs/source/team.rst index cfae96b289..5e80d501d5 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -264,10 +264,16 @@ He is interested in the development of agent-based models for infectious disease * `ORCID Profile: 0009-0007-9109-096X `_ + +.. _former_core_developers: + +Former Core Developers +---------------------- + .. _contributors: -Contributors ------------- +Further Active or Former Contributors +-------------------------------------- We thank all contributors, who have contributed to MEmilio. For a complete list of contributors, please see our `GitHub Contributors page `_. From 7ca453816ce7ccf071f9401e173b2bca3a1d4912 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Tue, 5 Aug 2025 13:16:31 +0200 Subject: [PATCH 03/39] FIX: some typos --- docs/source/cpp/lct.rst | 2 +- docs/source/getting_started.rst | 2 +- docs/source/python/m-simulation_common_patterns.rst | 2 +- docs/source/references.rst | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/source/cpp/lct.rst b/docs/source/cpp/lct.rst index 56cf4a8a98..d1c9d3c7ba 100644 --- a/docs/source/cpp/lct.rst +++ b/docs/source/cpp/lct.rst @@ -45,7 +45,7 @@ We use different types of parameters to represent epidemiological parameters suc compartment or the contact rates between different age groups. Most model parameters are constants that describe pathogen-specific characteristics (possibly resolved by sociodemographic groups) and are represented by a vector with a value for each sociodemographic group. To model different contact rates between different sociodemographic groups, we use a parameter denoted **ContactPatterns** of type **UncertainContactMatrix**. -The **UncertainContactMatrix** contains anmarbitrary large set of contact matrices which can represent the different contact locations in the model like +The **UncertainContactMatrix** contains an arbitrary large set of contact matrices which can represent the different contact locations in the model like schools, workplaces, or homes. The matrices can be loaded or stored in the particular example. In the **ContactPatterns**, each matrix element stores baseline contact rates :math:`c_{i,j}` between sociodemographic group :math:`i` to group :math:`j`. The dimension of the matrix is automatically defined by the model initialization and is reduced to one value if no stratification is used. diff --git a/docs/source/getting_started.rst b/docs/source/getting_started.rst index 076a6c93cd..99161fe24b 100644 --- a/docs/source/getting_started.rst +++ b/docs/source/getting_started.rst @@ -207,4 +207,4 @@ For the latter, no regular testing is conducted. If you encounter errors, please Further questions ~~~~~~~~~~~~~~~~~~~~~ -If you have any further questions, please take a look at our :doc:`faq` and feel free to contact us via `e-mail `_ or open an issue or discusion on `github `_. +If you have any further questions, please take a look at our :doc:`faq` and feel free to contact us via `e-mail `_ or open an issue or discussion on `github `_. diff --git a/docs/source/python/m-simulation_common_patterns.rst b/docs/source/python/m-simulation_common_patterns.rst index eeaabf4e9b..8bb10cf38c 100644 --- a/docs/source/python/m-simulation_common_patterns.rst +++ b/docs/source/python/m-simulation_common_patterns.rst @@ -1,4 +1,4 @@ -How to: Common patterns and guidlines +How to: Common patterns and guidelines ========================================== We want to look at some common patterns developers will encounter when extending the ``memilio.simulation`` package and explain how to handle them. diff --git a/docs/source/references.rst b/docs/source/references.rst index 79fa35e2f2..4848e63691 100644 --- a/docs/source/references.rst +++ b/docs/source/references.rst @@ -6,7 +6,7 @@ The following gives an overview on (peer-reviewed) publications extending or usi Recently submitted publications -------------------------------------- -- Schmidt A, Zunker H, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. arXiv. `arXiv:2411.06500 `_ +- Schmidt A, Zunker H, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. arXiv. `arXiv:2411.06500 `_ - Plötzke L, Wendler A, Schmieding R, Kühn MJ. (2024). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Accepted for publication. `DOI:10.48550/arXiv.2412.09140 `_ @@ -15,7 +15,7 @@ Peer-reviewed publications **2026** -- Wendler A, Plötzke L, Tritzschak H, Kühn MJ. (2026). *A nonstandard numerical scheme for a novel SECIR integro differential equation-based model with nonexponentially distributed stay times*. *Applied Mathematics and Cmputation* 509: 129636. `DOI:10.1016/j.amc.2025.129636 `_ +- Wendler A, Plötzke L, Tritzschak H, Kühn MJ. (2026). *A nonstandard numerical scheme for a novel SECIR integro differential equation-based model with nonexponentially distributed stay times*. *Applied Mathematics and Computation* 509: 129636. `DOI:10.1016/j.amc.2025.129636 `_ **2025** From 69bb05b788b383fa48f2d8e68ba04251cc7a2357 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Thu, 7 Aug 2025 15:27:54 +0200 Subject: [PATCH 04/39] FIX: wrong documentation link --- cpp/models/smm/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/models/smm/README.md b/cpp/models/smm/README.md index 653bf36e97..c86ff11e38 100644 --- a/cpp/models/smm/README.md +++ b/cpp/models/smm/README.md @@ -1,5 +1,5 @@ # Stochastic Metapopulation Model This directory contains a model implementation based on a stochastic metapopulation model formulation. -To get started, check out the [official documentation](https://memilio.readthedocs.io/en/latest/cpp/models/isecir.html) +To get started, check out the [official documentation](https://memilio.readthedocs.io/en/latest/cpp/smm.html) or the [code example](../../examples/smm.cpp). \ No newline at end of file From ccca0d408c62787e00b7a72b50a8a8b5bd3927e2 Mon Sep 17 00:00:00 2001 From: AgathaSchmidt <62878663+AgathaSchmidt@users.noreply.github.com> Date: Thu, 7 Aug 2025 15:51:41 +0200 Subject: [PATCH 05/39] Update team.rst Agatha --- docs/source/team.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/source/team.rst b/docs/source/team.rst index 5e80d501d5..bd1fd9d458 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -272,6 +272,23 @@ Former Core Developers .. _contributors: +Agatha Schmidt +^^^^^^^^^^^^^ + +**Research Focus:** Machine Learning, Surrogate Modelling, Graph Neural Networks, High-Performance Computing + +Agatha Schmidt completed her Master's degree at the University of Cologne in collaboration with the German Aerospace Center (DLR), where she worked on machine learning-based surrogate models for ODE-based systems. After graduating, she continued her research by writing a paper focused on the application of graph neural networks as surrogate models. She was part of the team from May 2022 to December 2024. + +.. dropdown:: Selected Publications + :animate: fade-in-slide-down + + * **Schmidt A**, Zunker H, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. Submitted for publication. `arXiv:2411.06500 `_ + +.. dropdown:: Links + :animate: fade-in-slide-down + + * `ORCID Profile: 0009-0006-5766-8804 `_ + Further Active or Former Contributors -------------------------------------- From 66b9b93228612e7512ce8d50916a6ad3740e7b23 Mon Sep 17 00:00:00 2001 From: "Abele, Daniel" Date: Fri, 8 Aug 2025 12:00:25 +0200 Subject: [PATCH 06/39] update team.rst Daniel --- docs/source/team.rst | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/source/team.rst b/docs/source/team.rst index bd1fd9d458..3235a05a7a 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -270,7 +270,23 @@ He is interested in the development of agent-based models for infectious disease Former Core Developers ---------------------- -.. _contributors: +Daniel Abele +^^^^^^^^^^^^ + +**Research Focus:** Scientific Computing, Software Architecture, Ordinary and Partial Differential Equations + +Daniel Abele is a research software engineer at the Institute of Software Technology at the German Aerospace Center (DLR) and was part of the MEmilio team from its beginnings in 2020 until 2024. As one of its leading software engineers, he contributed to the early architecture of the code, including ODE and agent based models, as well as to the development processes and infrastructure. He left the project to focus on his PhD in numerical simulation of continental ice sheets. + +.. dropdown:: Selected Publications + :animate: fade-in-slide-down + + * Kühn MJ, **Abele D**, Mitra T, Koslow W, Abedi M, et al. (2021). *Assessment of effective mitigation and prediction of the spread of SARS-CoV-2 in Germany using demographic information and spatial resolution*. *Mathematical Biosciences*. https://doi.org/10.1016/j.mbs.2021.108648 + +.. dropdown:: Links + :animate: fade-in-slide-down + + * `ORCID Profile: 0000-0001-7021-1573 `_ + Agatha Schmidt ^^^^^^^^^^^^^ @@ -289,6 +305,9 @@ Agatha Schmidt completed her Master's degree at the University of Cologne in col * `ORCID Profile: 0009-0006-5766-8804 `_ + +.. _contributors: + Further Active or Former Contributors -------------------------------------- From d3504377b3166bfc5305220740b47c53d9ddc06f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChn?= Date: Mon, 11 Aug 2025 16:29:28 +0200 Subject: [PATCH 07/39] photo agatha --- docs/source/team.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/source/team.rst b/docs/source/team.rst index 3235a05a7a..e6850307cc 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -291,6 +291,12 @@ Daniel Abele is a research software engineer at the Institute of Software Techno Agatha Schmidt ^^^^^^^^^^^^^ +.. image:: https://martinkuehn.eu/research/images/agatha.png + :alt: Agatha Schmidt + :width: 150px + :align: left + :class: developer-photo + **Research Focus:** Machine Learning, Surrogate Modelling, Graph Neural Networks, High-Performance Computing Agatha Schmidt completed her Master's degree at the University of Cologne in collaboration with the German Aerospace Center (DLR), where she worked on machine learning-based surrogate models for ODE-based systems. After graduating, she continued her research by writing a paper focused on the application of graph neural networks as surrogate models. She was part of the team from May 2022 to December 2024. From 18e4ab309107f96c50e7b52874be72f583d8ee04 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Tue, 12 Aug 2025 14:33:54 +0200 Subject: [PATCH 08/39] FIX: broken link in references --- docs/source/references.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/references.rst b/docs/source/references.rst index 4848e63691..27175d8233 100644 --- a/docs/source/references.rst +++ b/docs/source/references.rst @@ -1,7 +1,7 @@ References =========== -The following gives an overview on (peer-reviewed) publications extending or using MEmilio. If you would like to add a publication, `contact us `. +The following gives an overview on (peer-reviewed) publications extending or using MEmilio. If you would like to add a publication, `contact us `_. Recently submitted publications -------------------------------------- From c9d1e2d0b29d53d669496402342c7fc80bd9d958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChn?= Date: Wed, 13 Aug 2025 10:21:34 +0200 Subject: [PATCH 09/39] paul --- docs/source/team.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/source/team.rst b/docs/source/team.rst index e6850307cc..6f2090ad34 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -317,6 +317,14 @@ Agatha Schmidt completed her Master's degree at the University of Cologne in col Further Active or Former Contributors -------------------------------------- +Paul Johannssen +^^^^^^^^^^^^^^^ + +**Research Focus:** ODE models, Runge-Kutta methods, reproduction numbers. + +Paul Johannssen studied mathematics at the University of Bonn. He worked on the MEmilio project from March 2023 to March 2024 as a working student. In this time, he manually derived and implemented formulas in closed form for the computation of reproduction numbers in the ODE-based SEIR, SECIR, and SECIRVVS models + + We thank all contributors, who have contributed to MEmilio. For a complete list of contributors, please see our `GitHub Contributors page `_. .. _collaboration: From 4549237a745315324bef2c1b8406a706d69b52d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChn?= Date: Wed, 13 Aug 2025 10:22:30 +0200 Subject: [PATCH 10/39] paul --- docs/source/team.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/team.rst b/docs/source/team.rst index 6f2090ad34..38be814c2f 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -322,7 +322,7 @@ Paul Johannssen **Research Focus:** ODE models, Runge-Kutta methods, reproduction numbers. -Paul Johannssen studied mathematics at the University of Bonn. He worked on the MEmilio project from March 2023 to March 2024 as a working student. In this time, he manually derived and implemented formulas in closed form for the computation of reproduction numbers in the ODE-based SEIR, SECIR, and SECIRVVS models +Paul Johannssen studied mathematics at the University of Bonn. He worked on the MEmilio project from March 2023 to March 2024 as a working student. In this time, he manually derived and implemented formulas in closed form for the computation of reproduction numbers in the ODE-based SEIR, SECIR, and SECIRVVS models. We thank all contributors, who have contributed to MEmilio. For a complete list of contributors, please see our `GitHub Contributors page `_. From 69cb3f84fdeb69bd2519d7829d4f7b17eb3bb2f3 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Wed, 13 Aug 2025 15:40:37 +0200 Subject: [PATCH 11/39] FIX: typos --- cpp/models/lct_secir/README.md | 2 +- docs/source/cpp/model_creation.rst | 2 +- docs/source/python/m-simulation_model_usage.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cpp/models/lct_secir/README.md b/cpp/models/lct_secir/README.md index 4c6b599418..155948877c 100644 --- a/cpp/models/lct_secir/README.md +++ b/cpp/models/lct_secir/README.md @@ -1,5 +1,5 @@ # LCT SECIR model This directory contains a model implementation based on an ODE formulation using the linear chain trick. -To get started, check out the [official documentation](https://memilio.readthedocs.io/en/latest/cpp/models/lctsecir.html) +To get started, check out the [official documentation](https://memilio.readthedocs.io/en/latest/cpp/models/lsecir.html) or the [code example](../../examples/lct_secir.cpp). \ No newline at end of file diff --git a/docs/source/cpp/model_creation.rst b/docs/source/cpp/model_creation.rst index 7fd2907130..9eb3b7735e 100644 --- a/docs/source/cpp/model_creation.rst +++ b/docs/source/cpp/model_creation.rst @@ -1,7 +1,7 @@ Model creation ============== -While MEmilio already preimplements many different models, it is possible to create new models. This section describes how to create a new model in MEmilio. All of MEmilio's models have been designed to share a maximum of structure and functionality, however, the creation of a new aggregated model differs fundamentally from the creation of a new inidividual-based model. New metapopulation models are generally created by implementing an aggregated model in a graph structure. +While MEmilio already preimplements many different models, it is possible to create new models. This section describes how to create a new model in MEmilio. All of MEmilio's models have been designed to share a maximum of structure and functionality, however, the creation of a new aggregated model differs fundamentally from the creation of a new individual-based model. New metapopulation models are generally created by implementing an aggregated model in a graph structure. In addition, MEmilio also provides an :doc:`extension` to create models from `Systems Biology Markup Language (SBML) `_ files. .. toctree:: diff --git a/docs/source/python/m-simulation_model_usage.rst b/docs/source/python/m-simulation_model_usage.rst index fab7c600d8..00f8b8eb8b 100755 --- a/docs/source/python/m-simulation_model_usage.rst +++ b/docs/source/python/m-simulation_model_usage.rst @@ -144,7 +144,7 @@ pythonic interface. Now you can use the usual data handling options and make use of the easy visualization tools that are part of Python. Some plotting functions specific to MEmilio and created as part of the project are combined in the :doc:`MEmilio Plot Package `. -Additional ressources +Additional resources --------------------- Further examples are provided at `examples/simulation `_. From 820ff35911df62f34575132b745ecdb61ff4ba34 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Wed, 13 Aug 2025 16:59:11 +0200 Subject: [PATCH 12/39] FIX: some typos/errors --- cpp/models/ode_sir/README.md | 2 +- cpp/models/sde_sirs/README.md | 2 +- docs/source/cpp/models/osir.rst | 4 ++-- docs/source/cpp/models/ssirs.rst | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cpp/models/ode_sir/README.md b/cpp/models/ode_sir/README.md index cddbed7b5e..1cdfb3a402 100644 --- a/cpp/models/ode_sir/README.md +++ b/cpp/models/ode_sir/README.md @@ -2,4 +2,4 @@ This directory contains a model implementation based on an ODE formulation. To get started, check out the [official documentation](https://memilio.readthedocs.io/en/latest/cpp/models/osir.html) -or the [code example](../../examples/sde_sir.cpp). \ No newline at end of file +or the [code example](../../examples/ode_sir.cpp). \ No newline at end of file diff --git a/cpp/models/sde_sirs/README.md b/cpp/models/sde_sirs/README.md index 3c2fb95558..5509510ca4 100644 --- a/cpp/models/sde_sirs/README.md +++ b/cpp/models/sde_sirs/README.md @@ -3,4 +3,4 @@ This directory contains a model implementation based on an SDE formulation. To get started, check out the [official documentation](https://memilio.readthedocs.io/en/latest/cpp/models/ssirs.html) -or the [code example](../../examples/ode_sir.cpp). +or the [code example](../../examples/sde_sirs.cpp). diff --git a/docs/source/cpp/models/osir.rst b/docs/source/cpp/models/osir.rst index 5ed0531050..b45283321e 100644 --- a/docs/source/cpp/models/osir.rst +++ b/docs/source/cpp/models/osir.rst @@ -97,7 +97,7 @@ and all other compartments. .. code-block:: cpp for (auto i = mio::AgeGroup(0); i < nb_groups; i++){ - model.populations[{i, mio::osir::InfectionState::Exposed}] = 1/nb_groups * nb_exp_t0; + model.populations[{i, mio::osir::InfectionState::Infected}] = 1/nb_groups * nb_inf_t0; model.populations[{i, mio::osir::InfectionState::Recovered}] = 1/nb_groups * nb_rec_t0; model.populations.set_difference_from_group_total( @@ -117,7 +117,7 @@ Basic dampings can be added to the ContactPatterns as follows: contact_matrix[0] = mio::ContactMatrix(Eigen::MatrixXd::Constant(nb_groups, nb_groups, 1/nb_groups * cont_freq)); - // Add a uniform damping acress all age groups + // Add a uniform damping across all age groups contact_matrix.add_damping(Eigen::MatrixXd::Constant(nb_groups, nb_groups, 0.7), mio::SimulationTime(30.)); diff --git a/docs/source/cpp/models/ssirs.rst b/docs/source/cpp/models/ssirs.rst index be9e8f4dbd..8337acb875 100644 --- a/docs/source/cpp/models/ssirs.rst +++ b/docs/source/cpp/models/ssirs.rst @@ -31,7 +31,7 @@ Below is an overview of the model architecture and its compartments. +-------------------------------+-----------------------------------------------+--------------------------------------------------------------------------------------------------+ An example can be found in the -`examples/ode_sir.cpp `_. +`examples/ode_sir.cpp `_. Overview of the ``ssirs`` namespace: From 2fb9e6f8ad1b95b599fab80957cd68902edc357e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChn?= Date: Fri, 15 Aug 2025 11:21:25 +0200 Subject: [PATCH 13/39] margrit --- docs/source/team.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/source/team.rst b/docs/source/team.rst index 38be814c2f..d2e8c79aa6 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -288,6 +288,26 @@ Daniel Abele is a research software engineer at the Institute of Software Techno * `ORCID Profile: 0000-0001-7021-1573 `_ +Margrit Klitz +^^^^^^^^^^^^^^ + +.. image:: https://martinkuehn.eu/research/images/margrit.png + :alt: Margrit Klitz + :width: 150px + :align: left + :class: developer-photo + +**Research Focus:** High-Performance Computing, Data Management, Digitalization, Software Development + +Margrit Klitz holds a PhD in mathematics from the University of Bonn. She worked in the High-Performance Computing department at the German Aerospace Center (DLR) before joining the German Center for Neurodegenerative Diseases (DZNE), where she led IT and data management for the Rhineland Study. Since 2024, she heads the group “Digitalisation, Software, and AI” at the Space Agency at DLR. In the MEmilio project, she made the very first commit and supported the team through project coordination, scientific writing, and proposal development for PANDEMOS and LOKI-Pandemics. + +.. dropdown:: Links + :animate: fade-in-slide-down + + * `ORCID Profile: 0000-0003-3657-4180 `_ + + + Agatha Schmidt ^^^^^^^^^^^^^ From f67d126cb99f423abdffb45ce22465210765ed79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChn?= Date: Fri, 15 Aug 2025 11:27:42 +0200 Subject: [PATCH 14/39] . --- docs/source/team.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/team.rst b/docs/source/team.rst index d2e8c79aa6..036c58d74d 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -299,7 +299,7 @@ Margrit Klitz **Research Focus:** High-Performance Computing, Data Management, Digitalization, Software Development -Margrit Klitz holds a PhD in mathematics from the University of Bonn. She worked in the High-Performance Computing department at the German Aerospace Center (DLR) before joining the German Center for Neurodegenerative Diseases (DZNE), where she led IT and data management for the Rhineland Study. Since 2024, she heads the group “Digitalisation, Software, and AI” at the Space Agency at DLR. In the MEmilio project, she made the very first commit and supported the team through project coordination, scientific writing, and proposal development for PANDEMOS and LOKI-Pandemics. +Margrit Klitz holds a PhD in mathematics from the University of Bonn. She worked in the High-Performance Computing department at the German Aerospace Center (DLR) before joining the German Center for Neurodegenerative Diseases (DZNE), where she led IT and data management for the Rhineland Study. Since 2025, she heads the group “Digitalisation, Software, and AI” at the Space Agency at DLR. In the MEmilio project, she made the very first commit and supported the team through project coordination, scientific writing, and proposal development for PANDEMOS and LOKI-Pandemics. .. dropdown:: Links :animate: fade-in-slide-down From a2f8e372a1212fc65edf91d6c0c94e52548a0294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChn?= Date: Fri, 15 Aug 2025 14:32:07 +0200 Subject: [PATCH 15/39] bmftr --- docs/source/_static/funder/bmftr.jpg | Bin 0 -> 71259 bytes docs/source/team.rst | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 docs/source/_static/funder/bmftr.jpg diff --git a/docs/source/_static/funder/bmftr.jpg b/docs/source/_static/funder/bmftr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..94727069bbe29228aad1567f8399c3a89b714e64 GIT binary patch literal 71259 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≤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 Date: Tue, 19 Aug 2025 12:12:04 +0200 Subject: [PATCH 16/39] Add employee of the year --- docs/source/team.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/team.rst b/docs/source/team.rst index 205a9f3dba..4367f193f6 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -48,7 +48,7 @@ Martin Kühn studied at University of Cologne, Germany, and Université de Montr Henrik Zunker ^^^^^^^^^^^^^ -.. image:: _static/team/max_mustermann.jpg +.. image:: https://martinkuehn.eu/research/images/henrik.png :alt: Henrik Zunker :width: 150px :align: left From 322c415bcff1dc4884f33ba14860eff84b89acd5 Mon Sep 17 00:00:00 2001 From: Carlotta Gerstein Date: Thu, 28 Aug 2025 13:00:34 +0200 Subject: [PATCH 17/39] correct setting of autopep8 --- docs/source/development.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/development.rst b/docs/source/development.rst index a28df8d2d2..d8ab0e3d5e 100644 --- a/docs/source/development.rst +++ b/docs/source/development.rst @@ -230,7 +230,7 @@ If using autopep8, e.g., of the Python plugin for Visual Studio Code or VSCodium .. code:: - "python.formatting.autopep8Args": ["--max-line-length", "79", "--experimental"] + "autopep8.args": ["--max-line-length", "79", "--experimental"] to your corresponding ``settings.json``. From 8e0ae886d0f2d43c1dee8168c501cb60e9fa0238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChn?= Date: Thu, 18 Sep 2025 11:07:05 +0200 Subject: [PATCH 18/39] refs2 --- docs/source/citation.rst | 2 +- docs/source/references.rst | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/source/citation.rst b/docs/source/citation.rst index 674774dffe..7717955554 100644 --- a/docs/source/citation.rst +++ b/docs/source/citation.rst @@ -12,6 +12,6 @@ and, in particular, for - **Agent-based models (ABMs)**: Kerkmann D, Korf S, Nguyen K, Abele D, Schengen A, et al. (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193: 110269. `DOI:10.1016/j.compbiomed.2025.110269 `_ - **Hybrid agent-metapopulation-based models**: Bicker J, Schmieding R, Meyer-Hermann M, Kühn MJ. (2025). *Hybrid metapopulation agent-based epidemiological models for efficient insight on the individual scale: A contribution to green computing*. *Infectious Disease Modelling* 10(2): 571-590. `DOI:10.1016/j.idm.2024.12.015 `_ - **Graph Neural Networks**: Schmidt A, Zunker H, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. Submitted for publication. `arXiv:2411.06500 `_ -- **ODE-based models with Linear Chain Trick**: Plötzke L, Wendler A, Schmieding R, Kühn MJ. (2024). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Accepted for publication. `DOI:10.48550/arXiv.2412.09140 `_ +- **ODE-based models with Linear Chain Trick**: Plötzke L, Wendler A, Schmieding R, Kühn MJ. (2024). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Mathematics and Computers in Simulation 239, pp. 823-844 (2026). `DOI:10.1016/j.matcom.2025.07.045 `_ - **Behavior-based ODE models**: Zunker H, Dönges P, Lenz P, Contreras S, Kühn MJ. (2025). *Risk-mediated dynamic regulation of effective contacts de-synchronizes outbreaks in metapopulation epidemic models*. *Chaos, Solitons & Fractals* 199:116782. `DOI:10.1016/j.chaos.2025.116782 `_ diff --git a/docs/source/references.rst b/docs/source/references.rst index 27175d8233..dbc983612d 100644 --- a/docs/source/references.rst +++ b/docs/source/references.rst @@ -6,8 +6,10 @@ The following gives an overview on (peer-reviewed) publications extending or usi Recently submitted publications -------------------------------------- +- Kerkouche R, Zunker H, Fritz M, Kühn MJ. (2025) *Differentially private federated learning for localized control of infectious disease dynamics*. arXiv. `arXiv:2509.14024v1 `_ + - Schmidt A, Zunker H, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. arXiv. `arXiv:2411.06500 `_ -- Plötzke L, Wendler A, Schmieding R, Kühn MJ. (2024). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Accepted for publication. `DOI:10.48550/arXiv.2412.09140 `_ + Peer-reviewed publications @@ -15,6 +17,8 @@ Peer-reviewed publications **2026** +- Plötzke L, Wendler A, Schmieding R, Kühn MJ. (2024). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Mathematics and Computers in Simulation 239, pp. 823-844 (2026). `DOI:10.1016/j.matcom.2025.07.045 `_ + - Wendler A, Plötzke L, Tritzschak H, Kühn MJ. (2026). *A nonstandard numerical scheme for a novel SECIR integro differential equation-based model with nonexponentially distributed stay times*. *Applied Mathematics and Computation* 509: 129636. `DOI:10.1016/j.amc.2025.129636 `_ **2025** From 49cc5b9b3a18ef225e482cca9b9630fc6e46e8c7 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Tue, 23 Sep 2025 15:06:39 +0200 Subject: [PATCH 19/39] FIX: docstring typo --- cpp/memilio/geography/regions.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/memilio/geography/regions.h b/cpp/memilio/geography/regions.h index 2ef7d84c80..6901d15f22 100644 --- a/cpp/memilio/geography/regions.h +++ b/cpp/memilio/geography/regions.h @@ -38,7 +38,7 @@ namespace mio namespace regions { -/// @biref Index for enumerating subregions (cities, counties, etc.) of the modelled area. +/// @brief Index for enumerating subregions (cities, counties, etc.) of the modelled area. struct Region : public mio::Index { Region(const size_t num_regions) : mio::Index(num_regions) From 2d2331e8a08d22af59f3ed68e5ad3f3ddd40d9cf Mon Sep 17 00:00:00 2001 From: Henrik Zunker Date: Mon, 29 Sep 2025 15:05:31 +0200 Subject: [PATCH 20/39] doc smseirs4 title --- docs/source/cpp/models/omseirs4.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/cpp/models/omseirs4.rst b/docs/source/cpp/models/omseirs4.rst index dc6be8e818..d44cc88549 100644 --- a/docs/source/cpp/models/omseirs4.rst +++ b/docs/source/cpp/models/omseirs4.rst @@ -1,4 +1,4 @@ -MSEIRS4 model (ODE) +ODE-based MSEIRS4 model (ODE) =================== The ODE-MSEIRS4 module models a pathogen with partial and waning immunity across multiple infection episodes, From 17fc1bb7a9a2af28b66655d012838b9a4214756e Mon Sep 17 00:00:00 2001 From: Henrik Zunker Date: Mon, 29 Sep 2025 15:31:31 +0200 Subject: [PATCH 21/39] secirts: update doi and refer to all equations --- docs/source/cpp/models/osecirts.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/cpp/models/osecirts.rst b/docs/source/cpp/models/osecirts.rst index 539bff4a16..4ec9345996 100644 --- a/docs/source/cpp/models/osecirts.rst +++ b/docs/source/cpp/models/osecirts.rst @@ -6,7 +6,9 @@ Like the ODE-SECIRVVS model, the ODE-SECIRTS model has three layers of immunity: Additionally, waning immunity is defined by the parameters ``TimeWaningPartialImmunity``, ``TimeWaningImprovedImmunity``, ``TimeTemporaryImmunityPI``, and ``TimeTemporaryImmunityII``. The parameters ``TimeWaningPartialImmunity`` and ``TimeWaningImprovedImmunity`` represent the (mean) duration after which an individual transitions from one immunity layer to the next weaker one due to waning immunity, assuming no vaccination or recovery from infection has occurred during this period. Similarly, the parameters ``TimeTemporaryImmunityPI`` and ``TimeTemporaryImmunityII`` denote the (mean) duration of temporary immunity following exposure to the virus, either through vaccination or recovery. During this state of temporary immunity, individuals are protected from reinfection and are incapable of transmitting the virus to others. Should individuals previously reside in the naive or partial immunity layer, their stay in the temporary immunity state results in a transition to the next stronger immunity layer. -For more details about the model, we refer to `1 `_. +For more details about the model, we refer to `1 `_. + +The complete system of equations can be found in the supplementary material: `doi:10.1371/journal.pcbi.1012630.s001 `_. Below is an overview of the model architecture and its compartments. From f6530a5c069d1f7acab97b5da7b7ee90edd5aa05 Mon Sep 17 00:00:00 2001 From: Henrik Zunker Date: Mon, 29 Sep 2025 16:08:08 +0200 Subject: [PATCH 22/39] update flow charts ssir and ssirs --- docs/source/cpp/models/ssir.rst | 2 +- docs/source/cpp/models/ssirs.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/cpp/models/ssir.rst b/docs/source/cpp/models/ssir.rst index 4846ae835c..a0ba64df36 100644 --- a/docs/source/cpp/models/ssir.rst +++ b/docs/source/cpp/models/ssir.rst @@ -14,7 +14,7 @@ Important note on the solution: The numerical integration method is a Euler-Maru Below is an overview of the model architecture and its compartments. -.. image:: https://github.com/SciCompMod/memilio/assets/69154294/8da7f468-4561-45ae-8034-4b54ebf8efa5 +.. image:: https://martinkuehn.eu/research/images/sir.pdf :alt: SIR_model ===================== ==================================== ===================================================================== diff --git a/docs/source/cpp/models/ssirs.rst b/docs/source/cpp/models/ssirs.rst index 8337acb875..84a8596725 100644 --- a/docs/source/cpp/models/ssirs.rst +++ b/docs/source/cpp/models/ssirs.rst @@ -13,7 +13,7 @@ Important note on the solution: The numerical integration method is an Euler-Mar Below is an overview of the model architecture and its compartments. -.. image:: https://github.com/SciCompMod/memilio/assets/69154294/bdde5ca3-cd7d-4695-8704-03a712c92ff7 +.. image:: https://martinkuehn.eu/research/images/sirs.pdf :alt: SIR_model +-------------------------------+-----------------------------------------------+--------------------------------------------------------------------------------------------------+ From 6ba2b8c6fd382c8cd1ea3745483d509bd9de4d60 Mon Sep 17 00:00:00 2001 From: Henrik Zunker Date: Mon, 29 Sep 2025 16:16:18 +0200 Subject: [PATCH 23/39] pdf to png --- docs/source/cpp/models/ssir.rst | 2 +- docs/source/cpp/models/ssirs.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/cpp/models/ssir.rst b/docs/source/cpp/models/ssir.rst index a0ba64df36..b4b2031cbf 100644 --- a/docs/source/cpp/models/ssir.rst +++ b/docs/source/cpp/models/ssir.rst @@ -14,7 +14,7 @@ Important note on the solution: The numerical integration method is a Euler-Maru Below is an overview of the model architecture and its compartments. -.. image:: https://martinkuehn.eu/research/images/sir.pdf +.. image:: https://martinkuehn.eu/research/images/sir.png :alt: SIR_model ===================== ==================================== ===================================================================== diff --git a/docs/source/cpp/models/ssirs.rst b/docs/source/cpp/models/ssirs.rst index 84a8596725..a3c1e28b84 100644 --- a/docs/source/cpp/models/ssirs.rst +++ b/docs/source/cpp/models/ssirs.rst @@ -13,7 +13,7 @@ Important note on the solution: The numerical integration method is an Euler-Mar Below is an overview of the model architecture and its compartments. -.. image:: https://martinkuehn.eu/research/images/sirs.pdf +.. image:: https://martinkuehn.eu/research/images/sirs.png :alt: SIR_model +-------------------------------+-----------------------------------------------+--------------------------------------------------------------------------------------------------+ From b0b117e7a6859d046e2ef7c28048f95aa8db21e5 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Tue, 30 Sep 2025 14:33:50 +0200 Subject: [PATCH 24/39] [skip ci] FIX: link headlines corrected --- docs/source/faq.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/faq.rst b/docs/source/faq.rst index 8c0830c4f6..033305917f 100644 --- a/docs/source/faq.rst +++ b/docs/source/faq.rst @@ -1,10 +1,12 @@ FAQ ==== -.. _model-faq: +.. _contact: If your question is not answered in this documentation, feel free to contact martin.kuehn@dlr.de. Alternatively, you can also ask your question in the GitHub repository under the `Discussions `_ section. +.. _model-faq: + What do you mean when talking about a *model* (implementation)? -------------------------------------------------------------------- From b8bfa6c37b2f92587bb09f212409c5c1656ef6b9 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Tue, 30 Sep 2025 14:34:07 +0200 Subject: [PATCH 25/39] [skip ci] CHG: new development notice --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 5f2f90a240..a8dff2648b 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -22,7 +22,7 @@ If you use MEmilio, please :doc:`cite our work`. .. note:: - This framework is under active development, as is this documentation. + This framework is under active development, and, thus, obtains constantly new features or models. If you encounter a feature not yet documented, please :ref:`contact us directly `. From 531a2c789323e43e468a21dfb295e940beef069f Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Tue, 30 Sep 2025 17:29:28 +0200 Subject: [PATCH 26/39] [skip ci] FIX: formatting errors --- docs/source/cpp/glct.rst | 3 ++- docs/source/cpp/models/oseir.rst | 1 + docs/source/python/coupling_sbi.rst | 8 ++++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/source/cpp/glct.rst b/docs/source/cpp/glct.rst index 39ef4abf2c..a5256126c2 100644 --- a/docs/source/cpp/glct.rst +++ b/docs/source/cpp/glct.rst @@ -11,7 +11,7 @@ An overview of nonstandard but often used data types can be found under :doc:`da Infection states ---------------- -The model contains a list of **InfectionState**s that define particular features of the subpopulations in the particular state. +The model contains a list of **InfectionState**\s that define particular features of the subpopulations in the particular state. .. code-block:: RST @@ -22,6 +22,7 @@ The model contains a list of **InfectionState**s that define particular features To make use of the GLCT, we additionally need to define the numbers of subcompartments for each **InfectionState**. .. code-block:: RST + `Number of subcompartments of State1` `Number of subcompartments of State2` `...` diff --git a/docs/source/cpp/models/oseir.rst b/docs/source/cpp/models/oseir.rst index 553829504a..b342a7d07d 100644 --- a/docs/source/cpp/models/oseir.rst +++ b/docs/source/cpp/models/oseir.rst @@ -229,6 +229,7 @@ Additionally, you can export the results to a CSV file: The ODE-SEIR model also provides utility functions to extract specific measures, such as the reproduction number: .. code-block:: cpp + // Calculate R value at a specific time index auto r_at_index = mio::oseir::get_reproduction_number(time_idx, result_sim); diff --git a/docs/source/python/coupling_sbi.rst b/docs/source/python/coupling_sbi.rst index f305b62e5c..d9b5878198 100644 --- a/docs/source/python/coupling_sbi.rst +++ b/docs/source/python/coupling_sbi.rst @@ -8,6 +8,7 @@ and even further enable online training, i.e. generating training data on the sp Most of the important includes for BayesFlow: .. code-block:: python + import numpy as np # ensure the backend is set @@ -21,6 +22,7 @@ Most of the important includes for BayesFlow: import pandas as pd .. code-block:: python + def prior(): """Generates a random draw from the joint prior.""" @@ -34,6 +36,7 @@ Most of the important includes for BayesFlow: Define the simulator function with the MEmilio python model. We will use a simple ODE SIR model for this example. .. code-block:: python + import memilio.simulation as mio import memilio.simulation.osir as osir @@ -118,6 +121,7 @@ Define the simulator function with the MEmilio python model. We will use a simpl test .. code-block:: python + simulator = bf.make_simulator([prior, stationary_SIR]) adapter = ( @@ -132,10 +136,12 @@ Define the simulator function with the MEmilio python model. We will use a simpl ) .. code-block:: python + summary_network = bf.networks.TimeSeriesNetwork(summary_dim=4) inference_network = bf.networks.CouplingFlow() .. code-block:: python + workflow = bf.BasicWorkflow( simulator=simulator, adapter=adapter, @@ -144,11 +150,13 @@ Define the simulator function with the MEmilio python model. We will use a simpl ) .. code-block:: python + history = workflow.fit_online(epochs=100, batch_size=64) Load data, first need to download them using epidata .. code-block:: python + def load_observation_data(date_data_begin: datetime.date, T: int, data_path: str) -> np.ndarray: """Helper function to load cumulative cases and transform them to new cases.""" From 7bf9232ed2dfb5a03a8978f9442a4aebbce579d6 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:32:56 +0200 Subject: [PATCH 27/39] [skip ci] FIX: formatting --- docs/source/python/m-surrogate.rst | 12 ++++++------ docs/source/team.rst | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/source/python/m-surrogate.rst b/docs/source/python/m-surrogate.rst index 927746f9ca..3ea9e9782d 100644 --- a/docs/source/python/m-surrogate.rst +++ b/docs/source/python/m-surrogate.rst @@ -45,7 +45,7 @@ The package currently provides the following modules: - `tests`: This file contains all tests. ODE-SECIR Simple Model ------------------ +---------------------- The `ode_secir_simple` module provides surrogate models for the basic ODE-SECIR epidemiological model. This model is not stratified by age groups and simulates disease progression through the following compartments: @@ -61,7 +61,7 @@ The `ode_secir_simple` module provides surrogate models for the basic ODE-SECIR For more details on the model structure and parameters, we refer to the ODE-SECIR model documentation. Data Generation -~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~ The `data_generation.py` module provides functionality to generate training data for the surrogate models by running multiple simulations of the basic ODE-SECIR model with randomized initial conditions. The data generation process involves: @@ -87,7 +87,7 @@ The data generation process can be summarized as follows: 5. Saves the dataset as a pickle file for later use. Network Architectures -~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~ The `network_architectures.py` module provides different neural network architectures for time series prediction: @@ -107,7 +107,7 @@ The `network_architectures.py` module provides different neural network architec - Particularly efficient for capturing local temporal patterns Model Training and Evaluation -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The `model.py` module provides functionality for: @@ -144,7 +144,7 @@ Example usage: modeltype, model, 'InfectedSymptoms') Hyperparameter Optimization -~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~ The `grid_search.py` and `hyperparameter_tuning.py` modules provide tools for systematic hyperparameter optimization: @@ -164,6 +164,6 @@ The `grid_search.py` and `hyperparameter_tuning.py` modules provide tools for sy - Selection of optimal model configurations SECIR Groups Model ------------------ +------------------ To be added... diff --git a/docs/source/team.rst b/docs/source/team.rst index 4367f193f6..4aee69babc 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -239,7 +239,7 @@ equation-based models. David Kerkmann -^^^^^^^^^^^^^ +^^^^^^^^^^^^^^ .. image:: _static/team/max_mustermann.jpg :alt: David Kerkmann @@ -309,7 +309,7 @@ Margrit Klitz holds a PhD in mathematics from the University of Bonn. She worked Agatha Schmidt -^^^^^^^^^^^^^ +^^^^^^^^^^^^^^ .. image:: https://martinkuehn.eu/research/images/agatha.png :alt: Agatha Schmidt From 68a935c48278976bfe7b10d97e41012ce7eef95f Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:48:52 +0200 Subject: [PATCH 28/39] [skip ci] CHG: Update citation management --- docs/source/citation.rst | 21 ++++----- docs/source/cpp/diffusive_abm.rst | 4 +- docs/source/cpp/graph_metapop.rst | 10 +++-- docs/source/cpp/mobility_based_abm.rst | 5 ++- docs/source/cpp/models/isecir.rst | 6 +-- docs/source/cpp/models/lsecir.rst | 4 +- docs/source/cpp/models/osecirts.rst | 4 +- docs/source/literature.rst | 61 ++++++++++++++++++++++++++ docs/source/references.rst | 32 ++++++++------ 9 files changed, 112 insertions(+), 35 deletions(-) create mode 100644 docs/source/literature.rst diff --git a/docs/source/citation.rst b/docs/source/citation.rst index 7717955554..836f9c071f 100644 --- a/docs/source/citation.rst +++ b/docs/source/citation.rst @@ -1,17 +1,18 @@ +.. include:: literature.rst + Citing MEmilio =============== - + If you use MEmilio, please cite our work -- Bicker J, Kerkmann D, Korf S, Ploetzke L, Schmieding R, Wendler A, Zunker H et al. (2025). *MEmilio - a High Performance Modular Epidemics Simulation Software*. Available at `https://github.com/SciCompMod/memilio `_ and `https://elib.dlr.de/213614/ `_. +- |MEmilio_citation| and, in particular, for -- **Ordinary differential equation-based (ODE) and Graph-ODE models**: Zunker H, Schmieding R, Kerkmann D, Schengen A, Diexer S, et al. (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. `DOI:10.1371/journal.pcbi.1012630 `_ -- **Integro-differential equation-based (IDE) models**: Wendler A, Plötzke L, Tritzschak H, Kühn MJ. (2026). *A nonstandard numerical scheme for a novel SECIR integro differential equation-based model with nonexponentially distributed stay times*. *Applied Mathematics and Computation* 509: 129636. `DOI:10.1016/j.amc.2025.129636 `_ -- **Agent-based models (ABMs)**: Kerkmann D, Korf S, Nguyen K, Abele D, Schengen A, et al. (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193: 110269. `DOI:10.1016/j.compbiomed.2025.110269 `_ -- **Hybrid agent-metapopulation-based models**: Bicker J, Schmieding R, Meyer-Hermann M, Kühn MJ. (2025). *Hybrid metapopulation agent-based epidemiological models for efficient insight on the individual scale: A contribution to green computing*. *Infectious Disease Modelling* 10(2): 571-590. `DOI:10.1016/j.idm.2024.12.015 `_ -- **Graph Neural Networks**: Schmidt A, Zunker H, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. Submitted for publication. `arXiv:2411.06500 `_ -- **ODE-based models with Linear Chain Trick**: Plötzke L, Wendler A, Schmieding R, Kühn MJ. (2024). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Mathematics and Computers in Simulation 239, pp. 823-844 (2026). `DOI:10.1016/j.matcom.2025.07.045 `_ -- **Behavior-based ODE models**: Zunker H, Dönges P, Lenz P, Contreras S, Kühn MJ. (2025). *Risk-mediated dynamic regulation of effective contacts de-synchronizes outbreaks in metapopulation epidemic models*. *Chaos, Solitons & Fractals* 199:116782. `DOI:10.1016/j.chaos.2025.116782 `_ - +- **Ordinary differential equation-based (ODE) and Graph-ODE models**: |Novel_travel_time_aware_metapopulation_models| +- **Integro-differential equation-based (IDE) models**: |A_nonstandard_numerical_scheme| +- **Agent-based models (ABMs)**: |Agent-based_modeling_for| +- **Hybrid agent-metapopulation-based models**: |Hybrid_metapopulation_agent-based| +- **Graph Neural Networks**: |Graph_Neural_Network_Surrogates| +- **ODE-based models with Linear Chain Trick**: |Revisiting_the_Linear_Chain| +- **Behavior-based ODE models**: |Risk-mediated_dynamic_regulation| \ No newline at end of file diff --git a/docs/source/cpp/diffusive_abm.rst b/docs/source/cpp/diffusive_abm.rst index eec7238630..6df63ef139 100644 --- a/docs/source/cpp/diffusive_abm.rst +++ b/docs/source/cpp/diffusive_abm.rst @@ -1,3 +1,5 @@ +.. include:: ../literature.rst + Diffusive agent-based model =========================== @@ -148,7 +150,7 @@ To simulate the model from `t0` to `tmax` with given step size `dt`, a **Simulat For a detailed description and application of the model, see: -- Bicker J, Schmieding R, et al. (2025) Hybrid metapopulation agent-based epidemiological models for efficient insight on the individual scale: A contribution to green computing. Infectious Disease Modelling, Volume 10, Issue 2. https://doi.org/10.1016/j.idm.2024.12.015 +- |Hybrid_metapopulation_agent-based| Output ------ diff --git a/docs/source/cpp/graph_metapop.rst b/docs/source/cpp/graph_metapop.rst index a7df8d2275..1662d91246 100644 --- a/docs/source/cpp/graph_metapop.rst +++ b/docs/source/cpp/graph_metapop.rst @@ -1,3 +1,5 @@ +.. include:: ../literature.rst + Graph-based metapopulation model ================================ @@ -31,8 +33,8 @@ Since all regions exchange commuters simultaneously, this scheme offers great pr For further details, please refer to: -- Kühn MJ, Abele D, Mitra T, Koslow W, Abedi M, et al. (2021). *Assessment of effective mitigation and prediction of the spread of SARS-CoV-2 in Germany using demographic information and spatial resolution*. *Mathematical Biosciences* 108648. ``_ -- Kühn MJ, Abele D, Binder S, Rack K, Klitz M, et al. (2022). *Regional opening strategies with commuter testing and containment of new SARS-CoV-2 variants in Germany*. *BMC Infectious Diseases* 22(1): 333. `DOI:10.1186/s12879-022-07302-9 `_ +- |Assessment_of_effective_mitigation| +- |Regional_opening_strategies_with| **Detailed mobility approach** @@ -45,7 +47,7 @@ Commuters move along these paths and pass through various mobility models during For further details, please refer to: -- Zunker H, Schmieding R, Kerkmann D, Schengen A, Diexer S, et al. (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. ``_ +- |Novel_travel_time_aware_metapopulation_models| **Stochastic mobility approach** @@ -60,7 +62,7 @@ This allows for modeling behavioral changes in response to the epidemiological s The extension and inclusion of regional and global information is based on the following paper: -- Zunker H, Dönges P, Lenz P, Contreras S, Kühn MJ. (2025). *Risk-mediated dynamic regulation of effective contacts de-synchronizes outbreaks in metapopulation epidemic models*. Chaos, Solitons & Fractals. `https://doi.org/10.1016/j.chaos.2025.116782` +- |Risk-mediated_dynamic_regulation| How to: Set up a graph and run a graph simulation diff --git a/docs/source/cpp/mobility_based_abm.rst b/docs/source/cpp/mobility_based_abm.rst index 6f357a7cc5..621f366d5d 100644 --- a/docs/source/cpp/mobility_based_abm.rst +++ b/docs/source/cpp/mobility_based_abm.rst @@ -1,3 +1,5 @@ +.. include:: ../literature.rst + Agent-based model ================= @@ -74,7 +76,8 @@ Stochastic Transitions: 4. **Disease spread**: During interactions, agents can infect each other. The viral shed is used in combination with further personal information and contact details to feed into a stochastic process that determines if the virus is transmitted and a new agent becomes infected. The chosen time step of the model has no impact on the expected amount of transmissions per time. For details on the mathematical modeling of viral shed and disease spread, we refer to -- Kerkmann D, Korf S, Nguyen K, Abele D, Schengen A, et al. (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193: 110269. `DOI:10.1016/j.compbiomed.2025.110269 `_ + +- |Agent-based_modeling_for| Data extraction ~~~~~~~~~~~~~~~ diff --git a/docs/source/cpp/models/isecir.rst b/docs/source/cpp/models/isecir.rst index b3779191e6..0337701db8 100644 --- a/docs/source/cpp/models/isecir.rst +++ b/docs/source/cpp/models/isecir.rst @@ -1,3 +1,5 @@ +.. include:: ../../literature.rst + IDE-based SECIR-type model ========================== @@ -17,9 +19,7 @@ The simulation runs in discrete time steps using a non-standard numerical scheme Messina E, Pezzella M. (2022). *A non-standard numerical scheme for an age-of-infection epidemic model*. Journal of Computational Dynamics. `https://doi.org/10.3934/jcd.2021029 `_ -A detailed investigation of the IDE-SECIR model and numerical experiments can be found in -Wendler A, Plötzke L, Tritzschak H, Kühn MJ. (2026). *A nonstandard numerical scheme for a novel SECIR integro differential equation-based model with nonexponentially distributed stay times*. *Applied Mathematics and Computation* 509: 129636. `DOI:10.1016/j.amc.2025.129636 `_ - +A detailed investigation of the IDE-SECIR model and numerical experiments can be found in |A_nonstandard_numerical_scheme| Infection States ---------------- diff --git a/docs/source/cpp/models/lsecir.rst b/docs/source/cpp/models/lsecir.rst index c2ccb60075..28177ceaf4 100644 --- a/docs/source/cpp/models/lsecir.rst +++ b/docs/source/cpp/models/lsecir.rst @@ -1,3 +1,5 @@ +.. include:: ../../literature.rst + LCT-based SECIR-type model ========================== @@ -13,7 +15,7 @@ Below is a visualization of the infection states and transitions without a strat For a detailed description and application of the model, see: -- Plötzke L, Wendler A, Schmieding R, Kühn MJ. (2024). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Under review. `https://doi.org/10.48550/arXiv.2412.09140 `_ +- |Revisiting_the_Linear_Chain| - Plötzke L. (2023). *Der Linear Chain Trick in der epidemiologischen Modellierung als Kompromiss zwischen gewöhnlichen und Integro-Differentialgleichungen*. Master's thesis, University of Cologne. `https://elib.dlr.de/200381/ `_ - Hurtado PJ, Kirosingh AS. (2019). *Generalizations of the ‘Linear Chain Trick’: incorporating more flexible dwell time distributions into mean field ODE models*. Journal of Mathematical Biology. `https://doi.org/10.1007/s00285-019-01412-w `_ diff --git a/docs/source/cpp/models/osecirts.rst b/docs/source/cpp/models/osecirts.rst index 4ec9345996..b5ee8ac881 100644 --- a/docs/source/cpp/models/osecirts.rst +++ b/docs/source/cpp/models/osecirts.rst @@ -1,3 +1,5 @@ +.. include:: ../../literature.rst + ODE-based SECIRTS-type model including multi-layer waning immunity ================================================================== @@ -6,7 +8,7 @@ Like the ODE-SECIRVVS model, the ODE-SECIRTS model has three layers of immunity: Additionally, waning immunity is defined by the parameters ``TimeWaningPartialImmunity``, ``TimeWaningImprovedImmunity``, ``TimeTemporaryImmunityPI``, and ``TimeTemporaryImmunityII``. The parameters ``TimeWaningPartialImmunity`` and ``TimeWaningImprovedImmunity`` represent the (mean) duration after which an individual transitions from one immunity layer to the next weaker one due to waning immunity, assuming no vaccination or recovery from infection has occurred during this period. Similarly, the parameters ``TimeTemporaryImmunityPI`` and ``TimeTemporaryImmunityII`` denote the (mean) duration of temporary immunity following exposure to the virus, either through vaccination or recovery. During this state of temporary immunity, individuals are protected from reinfection and are incapable of transmitting the virus to others. Should individuals previously reside in the naive or partial immunity layer, their stay in the temporary immunity state results in a transition to the next stronger immunity layer. -For more details about the model, we refer to `1 `_. +For more details about the model, we refer to |Novel_travel_time_aware_metapopulation_models|. The complete system of equations can be found in the supplementary material: `doi:10.1371/journal.pcbi.1012630.s001 `_. diff --git a/docs/source/literature.rst b/docs/source/literature.rst new file mode 100644 index 0000000000..3bf9d53b56 --- /dev/null +++ b/docs/source/literature.rst @@ -0,0 +1,61 @@ +.. |MEmilio_citation| replace:: Bicker J, Kerkmann D, Korf S, Ploetzke L, Schmieding R, Wendler A, Zunker H et al. (2025). *MEmilio - a High Performance Modular Epidemics Simulation Software*. Available at |MEmilio_github|_ and |MEmilio_elib|_. +.. |MEmilio_github| replace:: https://github.com/SciCompMod/memilio +.. _MEmilio_github: https://github.com/SciCompMod/memilio +.. |MEmilio_elib| replace:: https://elib.dlr.de/213614/ +.. _MEmilio_elib: https://elib.dlr.de/213614/ + +.. |Novel_travel_time_aware_metapopulation_models| replace:: Zunker H, Schmieding R, Kerkmann D, Schengen A, Diexer S, et al. (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. |Novel_travel_time_aware_metapopulation_models_DOI|_ +.. |Novel_travel_time_aware_metapopulation_models_DOI| replace:: DOI:10.1371/journal.pcbi.1012630 +.. _Novel_travel_time_aware_metapopulation_models_DOI: https://doi.org/10.1371/journal.pcbi.1012630 + +.. |A_nonstandard_numerical_scheme| replace:: Wendler A, Plötzke L, Tritzschak H, Kühn MJ. (2026). *A nonstandard numerical scheme for a novel SECIR integro differential equation-based model with nonexponentially distributed stay times*. *Applied Mathematics and Computation* 509: 129636. |A_nonstandard_numerical_scheme_DOI|_ +.. |A_nonstandard_numerical_scheme_DOI| replace:: DOI:10.1016/j.amc.2025.129636 +.. _A_nonstandard_numerical_scheme_DOI: https://doi.org/10.1016/j.amc.2025.129636 + +.. |Agent-based_modeling_for| replace:: Kerkmann D, Korf S, Nguyen K, Abele D, Schengen A, et al. (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193: 110269. |Agent-based_modeling_for_DOI|_ +.. |Agent-based_modeling_for_DOI| replace:: DOI:10.1016/j.compbiomed.2025.110269 +.. _Agent-based_modeling_for_DOI: https://doi.org/10.1016/j.compbiomed.2025.110269 + +.. |Hybrid_metapopulation_agent-based| replace:: Bicker J, Schmieding R, Meyer-Hermann M, Kühn MJ. (2025). *Hybrid metapopulation agent-based epidemiological models for efficient insight on the individual scale: A contribution to green computing*. *Infectious Disease Modelling* 10(2): 571-590. |Hybrid_metapopulation_agent-based_DOI|_ +.. |Hybrid_metapopulation_agent-based_DOI| replace:: DOI:10.1016/j.idm.2024.12.015 +.. _Hybrid_metapopulation_agent-based_DOI: https://doi.org/10.1016/j.idm.2024.12.015 + +.. |Graph_Neural_Network_Surrogates| replace:: Schmidt A, Zunker H, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. Submitted for publication. |Graph_Neural_Network_Surrogates_DOI|_ +.. |Graph_Neural_Network_Surrogates_DOI| replace:: arXiv:2411.06500 +.. _Graph_Neural_Network_Surrogates_DOI: https://arxiv.org/abs/2411.06500 + +.. |Revisiting_the_Linear_Chain| replace:: Plötzke L, Wendler A, Schmieding R, Kühn MJ. (2024). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Mathematics and Computers in Simulation 239, pp. 823-844 (2026). |Revisiting_the_Linear_Chain_DOI|_ +.. |Revisiting_the_Linear_Chain_DOI| replace:: DOI:10.1016/j.matcom.2025.07.045 +.. _Revisiting_the_Linear_Chain_DOI: https://doi.org/10.1016/j.matcom.2025.07.045 + +.. |Risk-mediated_dynamic_regulation| replace:: Zunker H, Dönges P, Lenz P, Contreras S, Kühn MJ. (2025). *Risk-mediated dynamic regulation of effective contacts de-synchronizes outbreaks in metapopulation epidemic models*. *Chaos, Solitons & Fractals* 199:116782. |Risk-mediated_dynamic_regulation_DOI|_ +.. |Risk-mediated_dynamic_regulation_DOI| replace:: DOI:10.1016/j.chaos.2025.116782 +.. _Risk-mediated_dynamic_regulation_DOI: https://doi.org/10.1016/j.chaos.2025.116782 + +.. |Differentially_private_federated_learning| replace:: Kerkouche R, Zunker H, Fritz M, Kühn MJ. (2025) *Differentially private federated learning for localized control of infectious disease dynamics*. arXiv. |Differentially_private_federated_learning_DOI|_ +.. |Differentially_private_federated_learning_DOI| replace:: arXiv:2509.14024v1 +.. _Differentially_private_federated_learning_DOI: https://doi.org/10.48550/arXiv.2509.14024 + +.. |Integrative_Modeling_of_the| replace:: Schmid N, Bicker J , Hofmann AF, Wallrafen-Sam K, Kerkmann D, Wieser A, Kühn MJ, Hasenauer J (2025). *Integrative Modeling of the Spread of Serious Infectious Diseases and Corresponding Wastewater Dynamics*. *Epidemics* 51:100836. |Integrative_Modeling_of_the_DOI|_ +.. |Integrative_Modeling_of_the_DOI| replace:: DOI:10.1016/j.epidem.2025.100836 +.. _Integrative_Modeling_of_the_DOI: https://doi.org/10.1016/j.epidem.2025.100836 + +.. |Integrating_Human_Mobility_Models| replace:: Diallo D, Schoenfeld J, Schmieding R, Korf S, Kühn MJ, Hecking T (2025). *Integrating Human Mobility Models with Epidemic Modeling: A Framework for Generating Synthetic Temporal Contact Networks*. *Entropy* 27(5), 507. |Integrating_Human_Mobility_Models_DOI|_ +.. |Integrating_Human_Mobility_Models_DOI| replace:: DOI:10.3390/e27050507 +.. _Integrating_Human_Mobility_Models_DOI: https://doi.org/10.3390/e27050507 + +.. |Automated_Processing_of_Pipelines| replace:: Memon S, Jadebeck JF, Osthege M, Wendler A, Kerkmann D, et al. (2024). *Automated Processing of Pipelines Managing Now- and Forecasting of Infectious Diseases*. In: 2024 47th MIPRO ICT and Electronics Convention (MIPRO), Opatija, Croatia. IEEE. pp. 1157-1162. |Automated_Processing_of_Pipelines_DOI|_ +.. |Automated_Processing_of_Pipelines_DOI| replace:: DOI:10.1109/MIPRO60963.2024.10569336 +.. _Automated_Processing_of_Pipelines_DOI: https://doi.org/10.1109/MIPRO60963.2024.10569336 + +.. |Regional_opening_strategies_with| replace:: Kühn MJ, Abele D, Binder S, Rack K, Klitz M, et al. (2022). *Regional opening strategies with commuter testing and containment of new SARS-CoV-2 variants in Germany*. *BMC Infectious Diseases* 22(1): 333. |Regional_opening_strategies_with_DOI|_ +.. |Regional_opening_strategies_with_DOI| replace:: DOI:10.1186/s12879-022-07302-9 +.. _Regional_opening_strategies_with_DOI: https://doi.org/10.1186/s12879-022-07302-9 + +.. |Appropriate_relaxation_of_non| replace:: Koslow W, Kühn MJ, Binder S, Klitz M, Abele D, et al. (2022). *Appropriate relaxation of non-pharmaceutical interventions minimizes the risk of a resurgence in SARS-CoV-2 infections in spite of the Delta variant*. *PLOS Computational Biology* 18(5): e1010054. |Appropriate_relaxation_of_non_DOI|_ +.. |Appropriate_relaxation_of_non_DOI| replace:: DOI:10.1371/journal.pcbi.1010054 +.. _Appropriate_relaxation_of_non_DOI: https://doi.org/10.1371/journal.pcbi.1010054 + +.. |Assessment_of_effective_mitigation| replace:: Kühn MJ, Abele D, Mitra T, Koslow W, Abedi M, et al. (2021). *Assessment of effective mitigation and prediction of the spread of SARS-CoV-2 in Germany using demographic information and spatial resolution*. *Mathematical Biosciences* 108648. |Assessment_of_effective_mitigation_DOI|_ +.. |Assessment_of_effective_mitigation_DOI| replace:: DOI:10.1016/j.mbs.2021.108648 +.. _Assessment_of_effective_mitigation_DOI: https://doi.org/10.1016/j.mbs.2021.108648 diff --git a/docs/source/references.rst b/docs/source/references.rst index dbc983612d..6f52942b5e 100644 --- a/docs/source/references.rst +++ b/docs/source/references.rst @@ -1,3 +1,5 @@ +.. include:: literature.rst + References =========== @@ -6,9 +8,11 @@ The following gives an overview on (peer-reviewed) publications extending or usi Recently submitted publications -------------------------------------- -- Kerkouche R, Zunker H, Fritz M, Kühn MJ. (2025) *Differentially private federated learning for localized control of infectious disease dynamics*. arXiv. `arXiv:2509.14024v1 `_ +- + +- |Differentially_private_federated_learning| -- Schmidt A, Zunker H, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. arXiv. `arXiv:2411.06500 `_ +- |Graph_Neural_Network_Surrogates| @@ -17,32 +21,32 @@ Peer-reviewed publications **2026** -- Plötzke L, Wendler A, Schmieding R, Kühn MJ. (2024). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Mathematics and Computers in Simulation 239, pp. 823-844 (2026). `DOI:10.1016/j.matcom.2025.07.045 `_ +- |Revisiting_the_Linear_Chain| -- Wendler A, Plötzke L, Tritzschak H, Kühn MJ. (2026). *A nonstandard numerical scheme for a novel SECIR integro differential equation-based model with nonexponentially distributed stay times*. *Applied Mathematics and Computation* 509: 129636. `DOI:10.1016/j.amc.2025.129636 `_ +- |A_nonstandard_numerical_scheme| **2025** -- Zunker H, Dönges P, Lenz P, Contreras S, Kühn MJ. (2025). *Risk-mediated dynamic regulation of effective contacts de-synchronizes outbreaks in metapopulation epidemic models*. *Chaos, Solitons & Fractals* 199:116782. `DOI:10.1016/j.chaos.2025.116782 `_ +- |Risk-mediated_dynamic_regulation| -- Schmid N, Bicker J , Hofmann AF, Wallrafen-Sam K, Kerkmann D, Wieser A, Kühn MJ, Hasenauer J (2025). *Integrative Modeling of the Spread of Serious Infectious Diseases and Corresponding Wastewater Dynamics*. *Epidemics* 51:100836. `DOI:10.1016/j.epidem.2025.100836 `_ +- |Integrative_Modeling_of_the| -- Kerkmann D, Korf S, Nguyen K, Abele D, Schengen A, Gerstein C, Göbbert JH, Basermann A, Kühn MJ, Meyer-Hermann M (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193:110269. `DOI:10.1016/j.compbiomed.2025.110269 `_ +- |Agent-based_modeling_for| -- Diallo D, Schoenfeld J, Schmieding R, Korf S, Kühn MJ, Hecking T (2025). *Integrating Human Mobility Models with Epidemic Modeling: A Framework for Generating Synthetic Temporal Contact Networks*. *Entropy* 27(5), 507. `DOI:10.3390/e27050507 `_ +- |Integrating_Human_Mobility_Models| -- Bicker J, Schmieding R, Meyer-Hermann M, Kühn MJ. (2025). *Hybrid metapopulation agent-based epidemiological models for efficient insight on the individual scale: A contribution to green computing*. *Infectious Disease Modelling* 10(2): 571-590. `DOI:10.1016/j.idm.2024.12.015 `_ +- |Hybrid_metapopulation_agent-based| **2024** -- Zunker H, Schmieding R, Kerkmann D, Schengen A, Diexer S, et al. (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. `DOI:10.1371/journal.pcbi.1012630 `_ -- Memon S, Jadebeck JF, Osthege M, Wendler A, Kerkmann D, et al. (2024). *Automated Processing of Pipelines Managing Now- and Forecasting of Infectious Diseases*. In: 2024 47th MIPRO ICT and Electronics Convention (MIPRO), Opatija, Croatia. IEEE. pp. 1157-1162. `DOI:10.1109/MIPRO60963.2024.10569336 `_ +- |Novel_travel_time_aware_metapopulation_models| +- |Automated_Processing_of_Pipelines| **2022** -- Kühn MJ, Abele D, Binder S, Rack K, Klitz M, et al. (2022). *Regional opening strategies with commuter testing and containment of new SARS-CoV-2 variants in Germany*. *BMC Infectious Diseases* 22(1): 333. `DOI:10.1186/s12879-022-07302-9 `_ -- Koslow W, Kühn MJ, Binder S, Klitz M, Abele D, et al. (2022). *Appropriate relaxation of non-pharmaceutical interventions minimizes the risk of a resurgence in SARS-CoV-2 infections in spite of the Delta variant*. *PLOS Computational Biology* 18(5): e1010054. `DOI:10.1371/journal.pcbi.1010054 `_ +- |Regional_opening_strategies_with| +- |Appropriate_relaxation_of_non| **2021** -- Kühn MJ, Abele D, Mitra T, Koslow W, Abedi M, et al. (2021). *Assessment of effective mitigation and prediction of the spread of SARS-CoV-2 in Germany using demographic information and spatial resolution*. *Mathematical Biosciences* 108648. `DOI:10.1016/j.mbs.2021.108648 `_ +- |Assessment_of_effective_mitigation| From 15e6a3844ec8510da7f31c58a732d7305680865f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=BChn?= Date: Wed, 1 Oct 2025 07:26:04 +0200 Subject: [PATCH 29/39] . --- docs/source/team.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/team.rst b/docs/source/team.rst index 4aee69babc..ad07dac9a3 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -374,7 +374,7 @@ MEmilio has been supported by various project grants. Since 2020, MEmilio has be * by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant agreement 528702961, * by German Federal Ministry of Education and Research under grant agreement 031L0319A and 031L0319B (Project AIMS). -.. |bmbf| image:: _static/funder/bmftr.jpg +.. |bmftr| image:: _static/funder/bmftr.jpg :width: 200px :alt: Bundesministerium für Forschung, Technologie und Raumfahrt From e11721dc8ec2189e14f04ade14f677da5cb3edc2 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Wed, 1 Oct 2025 10:15:35 +0200 Subject: [PATCH 30/39] CHG: replace team papers by shared literarute --- docs/source/team.rst | 56 +++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/docs/source/team.rst b/docs/source/team.rst index ad07dac9a3..6116f92797 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -1,3 +1,5 @@ +.. include:: literature.rst + Team ==== @@ -26,14 +28,14 @@ Martin Kühn studied at University of Cologne, Germany, and Université de Montr .. dropdown:: Selected Publications :animate: fade-in-slide-down - * Schmidt A, Zunker H, Heinlein A, **Kühn MJ**. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. Submitted for publication. `arXiv:2411.06500 `_ - * Wendler AC, Plötzke L, Tritzschak H, **Kühn MJ**. (2025). *A nonstandard numerical scheme for a novel SECIR integro differential equation-based model with nonexponentially distributed stay times*. Accepted for publication. `arXiv:2408.12228 `_ - * Plötzke L, Wendler A, Schmieding R, **Kühn MJ**. (2025). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Accepted for publication. `DOI:10.48550/arXiv.2412.09140 `_ - * Zunker H, Dönges P, Lenz P, Contreras S, **Kühn MJ**. (2025). Risk-mediated dynamic regulation of effective contacts de-synchronizes outbreaks in metapopulation epidemic models. Chaos, Solitons & Fractals. `DOI:10.1371/journal.pcbi.1012630 `_ - * Schmid N, Bicker J , Hofmann AF, Wallrafen-Sam K, Kerkmann D, Wieser A, **Kühn MJ**, Hasenauer J (2025). *Integrative Modeling of the Spread of Serious Infectious Diseases and Corresponding Wastewater Dynamics*. *Epidemics* 51:100836. `DOI:10.1016/j.epidem.2025.100836 `_ - * Kerkmann D, Korf S, Nguyen K, Abele D, Schengen A, Gerstein C, Göbbert JH, Basermann A, **Kühn MJ**, Meyer-Hermann M (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193:110269. `DOI:10.1016/j.compbiomed.2025.110269 `_ - * Bicker J, Schmieding R, Meyer-Hermann M, **Kühn MJ**. (2025). *Hybrid metapopulation agent-based epidemiological models for efficient insight on the individual scale: A contribution to green computing*. *Infectious Disease Modelling* 10(2): 571-590. `DOI:10.1016/j.idm.2024.12.015 `_ - * Zunker H, Schmieding R, Kerkmann D, Schengen A, Diexer S, ..., **Kühn MJ** (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. `DOI:10.1371/journal.pcbi.1012630 `_ + * |Graph_Neural_Network_Surrogates| + * |A_nonstandard_numerical_scheme| + * |Revisiting_the_Linear_Chain| + * |Risk-mediated_dynamic_regulation| + * |Integrative_Modeling_of_the| + * |Agent-based_modeling_for| + * |Hybrid_metapopulation_agent-based| + * |Novel_travel_time_aware_metapopulation_models| .. dropdown:: Links @@ -61,9 +63,9 @@ Henrik Zunker is a PhD student at the Institute of Software Technology at the Ge .. dropdown:: Selected Publications :animate: fade-in-slide-down - * **Zunker H**, Dönges P, Lenz P, Contreras S, Kühn MJ. (2025). Risk-mediated dynamic regulation of effective contacts de-synchronizes outbreaks in metapopulation epidemic models. Chaos, Solitons & Fractals. https://doi.org/10.1016/j.chaos.2025.116782 - * Schmidt A, **Zunker H**, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. Submitted for publication. `arXiv:2411.06500 `_ - * **Zunker H**, Schmieding R, Kerkmann D, Schengen A, Diexer S, et al. (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. https://doi.org/10.1371/journal.pcbi.1012630 + * |Risk-mediated_dynamic_regulation| + * |Graph_Neural_Network_Surrogates| + * |Novel_travel_time_aware_metapopulation_models| .. dropdown:: Links :animate: fade-in-slide-down @@ -91,8 +93,8 @@ His background is in numerical mathematics, where he studied at the University o .. dropdown:: Selected Publications :animate: fade-in-slide-down - * Kerkmann D, **Korf S**, Nguyen K, Abele D, Schengen A, Gerstein C, Göbbert JH, Basermann A, Kühn MJ, Meyer-Hermann M (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193:110269. `DOI:10.1016/j.compbiomed.2025.110269 `_ - * Diallo D, Schoenfeld J, Schmieding R, **Korf S**, Kühn MJ, Hecking T. (2025). *Integrating Human Mobility Models with Epidemic Modeling: A Framework for Generating Synthetic Temporal Contact Networks*. *Entropy (Basel)* 27(5):507. `DOI:10.3390/e27050507 `_ + * |Agent-based_modeling_for| + * |Integrating_Human_Mobility_Models| .. dropdown:: Links :animate: fade-in-slide-down @@ -117,8 +119,8 @@ Julia Bicker is a PhD student at the Institute of Software Technology at the Ger .. dropdown:: Selected Publications :animate: fade-in-slide-down - * **Bicker J**, Schmieding R, Meyer-Hermann M, Kühn MJ. (2025). *Hybrid metapopulation agent-based epidemiological models for efficient insight on the individual scale: A contribution to green computing*. *Infectious Disease Modelling* 10(2): 571-590. `DOI:10.1016/j.idm.2024.12.015 `_ - * Schmid N, **Bicker J** , Hofmann AF, Wallrafen-Sam K, Kerkmann D, Wieser A, Kühn MJ, Hasenauer J (2025). *Integrative Modeling of the Spread of Serious Infectious Diseases and Corresponding Wastewater Dynamics*. *Epidemics* 51:100836. `DOI:10.1016/j.epidem.2025.100836 `_ + * |Hybrid_metapopulation_agent-based| + * |Integrative_Modeling_of_the| .. dropdown:: Links :animate: fade-in-slide-down @@ -142,8 +144,8 @@ Anna Wendler is a PhD student at the Institute of Software Technology at the Ger .. dropdown:: Selected Publications :animate: fade-in-slide-down - * **Wendler A**, Plötzke L, Tritzschak H, Kühn MJ. (2025). *A nonstandard numerical scheme for a novel SECIR integro differential equation-based model with nonexponentially distributed stay times*. Accepted for publication. `arXiv:2408.12228 `_ - * Plötzke L, **Wendler A**, Schmieding R, Kühn MJ. (2025). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Accepted for publication. `DOI:10.48550/arXiv.2412.09140 `_ + * |A_nonstandard_numerical_scheme| + * |Revisiting_the_Linear_Chain| .. dropdown:: Links :animate: fade-in-slide-down @@ -169,7 +171,7 @@ Carlotta Gerstein completed her Bachelor's degree in Mathematics at the Universi .. dropdown:: Selected Publications :animate: fade-in-slide-down - * Kerkmann D, Korf S, Nguyen K, Abele D, Schengen A, **Gerstein C**, Göbbert JH, Basermann A, Kühn MJ, Meyer-Hermann M (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193:110269. `DOI:10.1016/j.compbiomed.2025.110269 `_ + * |Agent-based_modeling_for| .. dropdown:: Links :animate: fade-in-slide-down @@ -227,10 +229,10 @@ equation-based models. .. dropdown:: Selected Publications :animate: fade-in-slide-down - * Zunker H, **Schmieding R**, Kerkmann D, Schengen A, Diexer S, et al. (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. https://doi.org/10.1371/journal.pcbi.1012630 - * Bicker J, **Schmieding R**, Meyer-Hermann M, Kühn MJ. (2025). *Hybrid metapopulation agent-based epidemiological models for efficient insight on the individual scale: A contribution to green computing*. *Infectious Disease Modelling* 10(2): 571-590. `DOI:10.1016/j.idm.2024.12.015 `_ - * Diallo D, Schoenfeld J, **Schmieding R**, Korf S, Kühn MJ, Hecking T. (2025). *Integrating Human Mobility Models with Epidemic Modeling: A Framework for Generating Synthetic Temporal Contact Networks*. *Entropy (Basel)* 27(5):507. `DOI:10.3390/e27050507 `_ - * Plötzke L, Wendler A, **Schmieding R**, Kühn MJ. (2025). *Revisiting the Linear Chain Trick in epidemiological models: Implications of underlying assumptions for numerical solutions*. Accepted for publication. `DOI:10.48550/arXiv.2412.09140 `_ + * |Novel_travel_time_aware_metapopulation_models| + * |Hybrid_metapopulation_agent-based| + * |Integrating_Human_Mobility_Models| + * |Revisiting_the_Linear_Chain| .. dropdown:: Links :animate: fade-in-slide-down @@ -255,9 +257,9 @@ He is interested in the development of agent-based models for infectious disease .. dropdown:: Selected Publications :animate: fade-in-slide-down - * **Kerkmann D**, Korf S, Nguyen K, Abele D, Schengen A, Gerstein C, Göbbert JH, Basermann A, Kühn MJ, Meyer-Hermann M (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193:110269. `DOI:10.1016/j.compbiomed.2025.110269 `_ - * Zunker H, Schmieding R, **Kerkmann D**, Schengen A, Diexer S, et al. (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. https://doi.org/10.1371/journal.pcbi.1012630 - * Schmid N, Bicker J , Hofmann AF, Wallrafen-Sam K, **Kerkmann D**, Wieser A, Kühn MJ, Hasenauer J (2025). *Integrative Modeling of the Spread of Serious Infectious Diseases and Corresponding Wastewater Dynamics*. *Epidemics* 51:100836. `DOI:10.1016/j.epidem.2025.100836 `_ + * |Agent-based_modeling_for| + * |Novel_travel_time_aware_metapopulation_models| + * |Integrative_Modeling_of_the| .. dropdown:: Links :animate: fade-in-slide-down @@ -280,7 +282,7 @@ Daniel Abele is a research software engineer at the Institute of Software Techno .. dropdown:: Selected Publications :animate: fade-in-slide-down - * Kühn MJ, **Abele D**, Mitra T, Koslow W, Abedi M, et al. (2021). *Assessment of effective mitigation and prediction of the spread of SARS-CoV-2 in Germany using demographic information and spatial resolution*. *Mathematical Biosciences*. https://doi.org/10.1016/j.mbs.2021.108648 + * |Assessment_of_effective_mitigation| .. dropdown:: Links :animate: fade-in-slide-down @@ -324,7 +326,7 @@ Agatha Schmidt completed her Master's degree at the University of Cologne in col .. dropdown:: Selected Publications :animate: fade-in-slide-down - * **Schmidt A**, Zunker H, Heinlein A, Kühn MJ. (2025). *Graph Neural Network Surrogates to leverage Mechanistic Expert Knowledge towards Reliable and Immediate Pandemic Response*. Submitted for publication. `arXiv:2411.06500 `_ + * |Graph_Neural_Network_Surrogates| .. dropdown:: Links :animate: fade-in-slide-down From a67462c5f802ec9b3680f168f47fd3e7edd070ab Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Wed, 1 Oct 2025 10:34:13 +0200 Subject: [PATCH 31/39] [skip ci] CHG: Add white background to acknowledgement images --- docs/source/_static/custom.css | 11 +++++++++-- docs/source/team.rst | 12 ++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css index d6198044dd..7b33d9366e 100644 --- a/docs/source/_static/custom.css +++ b/docs/source/_static/custom.css @@ -4,13 +4,13 @@ white-space: pre; } -/* Newline after the last parameter (so the closing bracket is on a new line) +/* Newline after the last parameter (so the closing bracket is on a new line) dt em.sig-param:last-of-type::after { content: "\a"; white-space: pre; } -/* To have blue background of width of the block (instead of width of content) +/* To have blue background of width of the block (instead of width of content) dl.class > dt:first-of-type { display: block !important; } */ @@ -86,3 +86,10 @@ dl.class > dt:first-of-type { text-align: justify; line-height: 1.6; } + +.page-white-images { + background: #fff; + color: #111; + padding: 1rem; + border-radius: 6px; +} diff --git a/docs/source/team.rst b/docs/source/team.rst index 6116f92797..a5dfa1e682 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -1,5 +1,6 @@ .. include:: literature.rst + Team ==== @@ -362,6 +363,7 @@ MEmilio has been developed by and in collaboration with various research institu * **Forschungszentrum Jülich (FZJ)** - Institute of Climate and Energy Systems (ICE-1) and Institute of Bio- und Geosciences: Biotechnology (IBG-1) + .. _acknowledgments: Acknowledgments @@ -376,6 +378,12 @@ MEmilio has been supported by various project grants. Since 2020, MEmilio has be * by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under grant agreement 528702961, * by German Federal Ministry of Education and Research under grant agreement 031L0319A and 031L0319B (Project AIMS). + +.. raw:: html + +
+ + .. |bmftr| image:: _static/funder/bmftr.jpg :width: 200px :alt: Bundesministerium für Forschung, Technologie und Raumfahrt @@ -401,3 +409,7 @@ MEmilio has been supported by various project grants. Since 2020, MEmilio has be :alt: mFUND |helmholtz| |bmdv| |mfund| |bmbf| |hdslee| + +.. raw:: html + +
\ No newline at end of file From 087c63fab5487733d634b0f7d71bde4be1f8596f Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Wed, 1 Oct 2025 14:10:35 +0200 Subject: [PATCH 32/39] [skip ci] CHG: Make BMFTR logo visible --- docs/source/team.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/team.rst b/docs/source/team.rst index a5dfa1e682..3f0f22fc60 100644 --- a/docs/source/team.rst +++ b/docs/source/team.rst @@ -408,7 +408,7 @@ MEmilio has been supported by various project grants. Since 2020, MEmilio has be :width: 150px :alt: mFUND -|helmholtz| |bmdv| |mfund| |bmbf| |hdslee| +|bmftr| |helmholtz| |bmdv| |mfund| |bmbf| |hdslee| .. raw:: html From 3593719ce61b2058de379b774c576115647d7444 Mon Sep 17 00:00:00 2001 From: Henrik Zunker Date: Wed, 1 Oct 2025 18:21:35 +0200 Subject: [PATCH 33/39] extend some citations --- docs/source/literature.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/literature.rst b/docs/source/literature.rst index 3bf9d53b56..1ca893cb1b 100644 --- a/docs/source/literature.rst +++ b/docs/source/literature.rst @@ -1,10 +1,10 @@ -.. |MEmilio_citation| replace:: Bicker J, Kerkmann D, Korf S, Ploetzke L, Schmieding R, Wendler A, Zunker H et al. (2025). *MEmilio - a High Performance Modular Epidemics Simulation Software*. Available at |MEmilio_github|_ and |MEmilio_elib|_. +.. |MEmilio_citation| replace:: Bicker J, Kerkmann D, Korf S, Ploetzke L, Schmieding R, Wendler AC, Zunker H, Nguyen K, Abele D, Gerstein C, Lenz P, Betz M, Schmidt A, Hannemann-Tamas R, Volmer K, Waßmuth N, Tritzschak H, Richter D, Heger M, Basermann A, Meyer-Hermann M, Hasenauer J, Kühn MJ. (2025). *MEmilio - a High Performance Modular Epidemics Simulation Software*. Available at |MEmilio_github|_ and |MEmilio_elib|_. .. |MEmilio_github| replace:: https://github.com/SciCompMod/memilio .. _MEmilio_github: https://github.com/SciCompMod/memilio .. |MEmilio_elib| replace:: https://elib.dlr.de/213614/ .. _MEmilio_elib: https://elib.dlr.de/213614/ -.. |Novel_travel_time_aware_metapopulation_models| replace:: Zunker H, Schmieding R, Kerkmann D, Schengen A, Diexer S, et al. (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. |Novel_travel_time_aware_metapopulation_models_DOI|_ +.. |Novel_travel_time_aware_metapopulation_models| replace:: Zunker H, Schmieding R, Kerkmann D, Schengen A, Diexer S, Mikolajczyk R, Meyer-Hermann M, Kühn MJ. (2024). *Novel travel time aware metapopulation models and multi-layer waning immunity for late-phase epidemic and endemic scenarios*. *PLOS Computational Biology* 20(12): e1012630. |Novel_travel_time_aware_metapopulation_models_DOI|_ .. |Novel_travel_time_aware_metapopulation_models_DOI| replace:: DOI:10.1371/journal.pcbi.1012630 .. _Novel_travel_time_aware_metapopulation_models_DOI: https://doi.org/10.1371/journal.pcbi.1012630 @@ -12,7 +12,7 @@ .. |A_nonstandard_numerical_scheme_DOI| replace:: DOI:10.1016/j.amc.2025.129636 .. _A_nonstandard_numerical_scheme_DOI: https://doi.org/10.1016/j.amc.2025.129636 -.. |Agent-based_modeling_for| replace:: Kerkmann D, Korf S, Nguyen K, Abele D, Schengen A, et al. (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193: 110269. |Agent-based_modeling_for_DOI|_ +.. |Agent-based_modeling_for| replace:: Kerkmann D, Korf S, Nguyen K, Abele D, Schengen A, Gerstein C, Göbbert JH, Basermann A, Kühn MJ, Meyer-Hermann M. (2025). *Agent-based modeling for realistic reproduction of human mobility and contact behavior to evaluate test and isolation strategies in epidemic infectious disease spread*. *Computers in Biology and Medicine* 193: 110269. |Agent-based_modeling_for_DOI|_ .. |Agent-based_modeling_for_DOI| replace:: DOI:10.1016/j.compbiomed.2025.110269 .. _Agent-based_modeling_for_DOI: https://doi.org/10.1016/j.compbiomed.2025.110269 From b57863918cda1139593ad946d1ee6acb8a68c6c6 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Thu, 2 Oct 2025 09:20:06 +0200 Subject: [PATCH 34/39] [skip ci] Update copyright information --- cpp/examples/d_abm.cpp | 2 +- cpp/examples/graph_abm.cpp | 2 +- cpp/examples/smm.cpp | 2 +- cpp/models/d_abm/model.cpp | 2 +- cpp/models/d_abm/model.h | 2 +- cpp/models/d_abm/parameters.h | 2 +- cpp/models/d_abm/quad_well.h | 2 +- cpp/models/d_abm/simulation.cpp | 2 +- cpp/models/d_abm/simulation.h | 2 +- cpp/models/d_abm/single_well.h | 2 +- cpp/models/graph_abm/graph_abm_mobility.cpp | 2 +- cpp/models/graph_abm/graph_abm_mobility.h | 2 +- cpp/models/graph_abm/graph_abmodel.h | 2 +- cpp/models/hybrid/temporal_hybrid_model.cpp | 2 +- cpp/models/hybrid/temporal_hybrid_model.h | 2 +- cpp/models/smm/model.cpp | 2 +- cpp/models/smm/model.h | 2 +- cpp/models/smm/parameters.h | 2 +- cpp/models/smm/simulation.h | 2 +- cpp/tests/test_d_abm_model.cpp | 2 +- cpp/tests/test_smm_model.cpp | 2 +- pycode/memilio-epidata/memilio/epidata/getJHData.py | 2 +- .../memilio/generation/template/template_cpp.txt | 2 +- .../memilio/generation/template/template_py.txt | 2 +- .../memilio/generation_test/test_data/test_oseir.cpp.txt | 2 +- .../memilio/generation_test/test_data/test_oseir.py.txt | 2 +- 26 files changed, 26 insertions(+), 26 deletions(-) diff --git a/cpp/examples/d_abm.cpp b/cpp/examples/d_abm.cpp index 09ffa04d5c..4f91f65de0 100644 --- a/cpp/examples/d_abm.cpp +++ b/cpp/examples/d_abm.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker, René Schmieding * diff --git a/cpp/examples/graph_abm.cpp b/cpp/examples/graph_abm.cpp index 3e7443fbc9..dedc28b60e 100644 --- a/cpp/examples/graph_abm.cpp +++ b/cpp/examples/graph_abm.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 MEmilio +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker * diff --git a/cpp/examples/smm.cpp b/cpp/examples/smm.cpp index a55785e130..570ce17c6b 100644 --- a/cpp/examples/smm.cpp +++ b/cpp/examples/smm.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker, René Schmieding * diff --git a/cpp/models/d_abm/model.cpp b/cpp/models/d_abm/model.cpp index f52bd1c298..528fa1a4f4 100644 --- a/cpp/models/d_abm/model.cpp +++ b/cpp/models/d_abm/model.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding * diff --git a/cpp/models/d_abm/model.h b/cpp/models/d_abm/model.h index b0983c5496..5b858a4efa 100644 --- a/cpp/models/d_abm/model.h +++ b/cpp/models/d_abm/model.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding, Julia Bicker * diff --git a/cpp/models/d_abm/parameters.h b/cpp/models/d_abm/parameters.h index bd02befd9b..5b16eb433f 100644 --- a/cpp/models/d_abm/parameters.h +++ b/cpp/models/d_abm/parameters.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding, Julia Bicker * diff --git a/cpp/models/d_abm/quad_well.h b/cpp/models/d_abm/quad_well.h index 305617304e..ef1d0e021e 100644 --- a/cpp/models/d_abm/quad_well.h +++ b/cpp/models/d_abm/quad_well.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding, Julia Bicker * diff --git a/cpp/models/d_abm/simulation.cpp b/cpp/models/d_abm/simulation.cpp index 3b538490b8..3915b84300 100644 --- a/cpp/models/d_abm/simulation.cpp +++ b/cpp/models/d_abm/simulation.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 MEmilio +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding, Julia Bicker * diff --git a/cpp/models/d_abm/simulation.h b/cpp/models/d_abm/simulation.h index 54ccad8b65..e20f40f595 100644 --- a/cpp/models/d_abm/simulation.h +++ b/cpp/models/d_abm/simulation.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding, Julia Bicker * diff --git a/cpp/models/d_abm/single_well.h b/cpp/models/d_abm/single_well.h index 62ef7671c6..7bd8cb82e1 100644 --- a/cpp/models/d_abm/single_well.h +++ b/cpp/models/d_abm/single_well.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker, René Schmieding * diff --git a/cpp/models/graph_abm/graph_abm_mobility.cpp b/cpp/models/graph_abm/graph_abm_mobility.cpp index af3fae0c89..c8482f2e48 100644 --- a/cpp/models/graph_abm/graph_abm_mobility.cpp +++ b/cpp/models/graph_abm/graph_abm_mobility.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 MEmilio +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker * diff --git a/cpp/models/graph_abm/graph_abm_mobility.h b/cpp/models/graph_abm/graph_abm_mobility.h index 2d7a749edf..1af88d311a 100644 --- a/cpp/models/graph_abm/graph_abm_mobility.h +++ b/cpp/models/graph_abm/graph_abm_mobility.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 MEmilio +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker * diff --git a/cpp/models/graph_abm/graph_abmodel.h b/cpp/models/graph_abm/graph_abmodel.h index 0be1a7f222..040cd8c2da 100644 --- a/cpp/models/graph_abm/graph_abmodel.h +++ b/cpp/models/graph_abm/graph_abmodel.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 MEmilio +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker * diff --git a/cpp/models/hybrid/temporal_hybrid_model.cpp b/cpp/models/hybrid/temporal_hybrid_model.cpp index f356bd2321..337b8da3de 100644 --- a/cpp/models/hybrid/temporal_hybrid_model.cpp +++ b/cpp/models/hybrid/temporal_hybrid_model.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker, René Schmieding * diff --git a/cpp/models/hybrid/temporal_hybrid_model.h b/cpp/models/hybrid/temporal_hybrid_model.h index 25ea35d8d0..3ba096c115 100644 --- a/cpp/models/hybrid/temporal_hybrid_model.h +++ b/cpp/models/hybrid/temporal_hybrid_model.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker, René Schmieding * diff --git a/cpp/models/smm/model.cpp b/cpp/models/smm/model.cpp index af0d58eb73..d613003ac2 100644 --- a/cpp/models/smm/model.cpp +++ b/cpp/models/smm/model.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding * diff --git a/cpp/models/smm/model.h b/cpp/models/smm/model.h index a30a6f365e..56d9b56251 100644 --- a/cpp/models/smm/model.h +++ b/cpp/models/smm/model.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding, Julia Bicker * diff --git a/cpp/models/smm/parameters.h b/cpp/models/smm/parameters.h index 4cc54ebb5b..d0a6011f6e 100644 --- a/cpp/models/smm/parameters.h +++ b/cpp/models/smm/parameters.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding, Julia Bicker * diff --git a/cpp/models/smm/simulation.h b/cpp/models/smm/simulation.h index 4231f76a05..29c4aeda24 100644 --- a/cpp/models/smm/simulation.h +++ b/cpp/models/smm/simulation.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2025 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: René Schmieding, Julia Bicker * diff --git a/cpp/tests/test_d_abm_model.cpp b/cpp/tests/test_d_abm_model.cpp index c31b4aa5e4..79397d8e65 100644 --- a/cpp/tests/test_d_abm_model.cpp +++ b/cpp/tests/test_d_abm_model.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker * diff --git a/cpp/tests/test_smm_model.cpp b/cpp/tests/test_smm_model.cpp index 30ba70e0b5..b671cfa2d0 100644 --- a/cpp/tests/test_smm_model.cpp +++ b/cpp/tests/test_smm_model.cpp @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 German Aerospace Center (DLR-SC) +* Copyright (C) 2020-2025 MEmilio * * Authors: Julia Bicker * diff --git a/pycode/memilio-epidata/memilio/epidata/getJHData.py b/pycode/memilio-epidata/memilio/epidata/getJHData.py index 19ec2b67f9..dd0a3bb873 100644 --- a/pycode/memilio-epidata/memilio/epidata/getJHData.py +++ b/pycode/memilio-epidata/memilio/epidata/getJHData.py @@ -1,5 +1,5 @@ ############################################################################# -# Copyright (C) 2020-2024 MEmilio +# Copyright (C) 2020-2025 MEmilio # # Authors: Kathrin Rack # diff --git a/pycode/memilio-generation/memilio/generation/template/template_cpp.txt b/pycode/memilio-generation/memilio/generation/template/template_cpp.txt index 28d9f80042..e33668d1ee 100644 --- a/pycode/memilio-generation/memilio/generation/template/template_cpp.txt +++ b/pycode/memilio-generation/memilio/generation/template/template_cpp.txt @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 MEmilio +* Copyright (C) 2020-2025 MEmilio * * Authors: Martin Siggel, Daniel Abele, Martin J. Kuehn, Jan Kleinert * diff --git a/pycode/memilio-generation/memilio/generation/template/template_py.txt b/pycode/memilio-generation/memilio/generation/template/template_py.txt index 2ae2f78e5a..d1cc9710c7 100644 --- a/pycode/memilio-generation/memilio/generation/template/template_py.txt +++ b/pycode/memilio-generation/memilio/generation/template/template_py.txt @@ -1,5 +1,5 @@ ############################################################################# -# Copyright (C) 2020-2024 MEmilio +# Copyright (C) 2020-2025 MEmilio # # Authors: Daniel Abele # diff --git a/pycode/memilio-generation/memilio/generation_test/test_data/test_oseir.cpp.txt b/pycode/memilio-generation/memilio/generation_test/test_data/test_oseir.cpp.txt index b419020ba3..edacafb623 100644 --- a/pycode/memilio-generation/memilio/generation_test/test_data/test_oseir.cpp.txt +++ b/pycode/memilio-generation/memilio/generation_test/test_data/test_oseir.cpp.txt @@ -1,5 +1,5 @@ /* -* Copyright (C) 2020-2024 MEmilio +* Copyright (C) 2020-2025 MEmilio * * Authors: Martin Siggel, Daniel Abele, Martin J. Kuehn, Jan Kleinert * diff --git a/pycode/memilio-generation/memilio/generation_test/test_data/test_oseir.py.txt b/pycode/memilio-generation/memilio/generation_test/test_data/test_oseir.py.txt index 3f289a1251..1fd1861e46 100644 --- a/pycode/memilio-generation/memilio/generation_test/test_data/test_oseir.py.txt +++ b/pycode/memilio-generation/memilio/generation_test/test_data/test_oseir.py.txt @@ -1,5 +1,5 @@ ############################################################################# -# Copyright (C) 2020-2024 MEmilio +# Copyright (C) 2020-2025 MEmilio # # Authors: Daniel Abele # From caf5516ff83416acb87d3a740871e2a99049c2a8 Mon Sep 17 00:00:00 2001 From: MaxBetz <104758467+MaxBetzDLR@users.noreply.github.com> Date: Thu, 2 Oct 2025 11:13:56 +0000 Subject: [PATCH 35/39] Small python changes --- docs/source/getting_started.rst | 2 +- docs/source/python/python_packages.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/getting_started.rst b/docs/source/getting_started.rst index 99161fe24b..8f89431976 100644 --- a/docs/source/getting_started.rst +++ b/docs/source/getting_started.rst @@ -63,7 +63,7 @@ Before you can install MEmilio, you need to install some common development tool * **Python:** Required for the Python packages. - * MEmilio is tested daily with Python 3.8 and 3.11. While other versions might also work, we recommend installing the latest version tested daily from the official website `python.org `_. + * MEmilio is tested daily with Python 3.8 and 3.11. While other versions may also work, we recommend using the latest release of either of these. You can download it from the official website `python.org `_. * **C++ Compiler and CMake:** diff --git a/docs/source/python/python_packages.rst b/docs/source/python/python_packages.rst index 00b345ef84..e9c703a429 100644 --- a/docs/source/python/python_packages.rst +++ b/docs/source/python/python_packages.rst @@ -112,6 +112,7 @@ Installation ------------ Each package provides a `setup.py` script that installs the package and its dependencies. +The dependencies of the individual packages are denoted in their documentation. The installation can be run with the following command (from the directory containing the `setup.py`) .. code-block:: console @@ -127,7 +128,6 @@ For development of code use this command instead pip install -e .[dev] This command allows you to work on the code without having to reinstall the package after a change. It also installs all additional dependencies required for development and maintenance. -The dependencies are denoted in the documentation of each package. Testing ------- From d51f9743bd68fc7eaaca485c0727652c08230f39 Mon Sep 17 00:00:00 2001 From: jubicker <113909589+jubicker@users.noreply.github.com> Date: Thu, 2 Oct 2025 14:03:14 +0200 Subject: [PATCH 36/39] reference+formula fix --- docs/source/cpp/smm.rst | 8 +++++++- docs/source/literature.rst | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/source/cpp/smm.rst b/docs/source/cpp/smm.rst index 2c2b1964a4..e2fb413f75 100644 --- a/docs/source/cpp/smm.rst +++ b/docs/source/cpp/smm.rst @@ -92,7 +92,13 @@ The model has the following parameters: The adoption rate :math:`\gamma^{(k)}_{i,j}` at time :math:`t` is given by -:math:`\gamma^{(k)}_{i,j}(t) = c_{i,j}\frac{i^{(k)}}{N}\cdot\sum_{\tau \in \Psi}\tau_{factor} \cdot \tau_{state}(t)` +.. math:: + + \gamma^{(k)}_{i,j}(t) = + \begin{cases} + c_{i,j}\frac{i^{(k)}}{N}\cdot\sum_{\tau \in \Psi}\tau_{factor} \cdot \tau_{state}(t) & \text{if } \Psi \neq \emptyset\\ + c_{i,j}i^{(k)} & \text{if } \text{otherwise} + \end{cases} and the spatial transition rate at time :math:`t` by diff --git a/docs/source/literature.rst b/docs/source/literature.rst index 1ca893cb1b..30c78b399e 100644 --- a/docs/source/literature.rst +++ b/docs/source/literature.rst @@ -59,3 +59,7 @@ .. |Assessment_of_effective_mitigation| replace:: Kühn MJ, Abele D, Mitra T, Koslow W, Abedi M, et al. (2021). *Assessment of effective mitigation and prediction of the spread of SARS-CoV-2 in Germany using demographic information and spatial resolution*. *Mathematical Biosciences* 108648. |Assessment_of_effective_mitigation_DOI|_ .. |Assessment_of_effective_mitigation_DOI| replace:: DOI:10.1016/j.mbs.2021.108648 .. _Assessment_of_effective_mitigation_DOI: https://doi.org/10.1016/j.mbs.2021.108648 + +.. |Coupled_Epidemiological_and_Wastewater| replace:: Bicker J, Tomza N, Wallrafen-Sam K, Schmid N, Hofmann A., et al. (2025). *Coupled Epidemiological and Wastwater Modeling at the Urban Scale: A Case Study for Munich*. medRxiv. |Coupled_Epidemiological_and_Wastewater_DOI|_ +.. |Coupled_Epidemiological_and_Wastewater_DOI| replace:: DOI:10.1101/2025.09.25.25336633 +.. _Coupled_Epidemiological_and_Wastewater_DOI: https://doi.org/10.1101/2025.09.25.25336633 From 4402a7222158c0abfcde9dcb0696fdd19d502f14 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Thu, 2 Oct 2025 14:38:10 +0200 Subject: [PATCH 37/39] [ci skip] CHG: add munich paper to references --- docs/source/references.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/references.rst b/docs/source/references.rst index 6f52942b5e..73b37bb1e7 100644 --- a/docs/source/references.rst +++ b/docs/source/references.rst @@ -8,7 +8,7 @@ The following gives an overview on (peer-reviewed) publications extending or usi Recently submitted publications -------------------------------------- -- +- |Coupled_Epidemiological_and_Wastewater| - |Differentially_private_federated_learning| From 8608d17a863ba6929d3592a9d87cb561e8bec525 Mon Sep 17 00:00:00 2001 From: Kilian Volmer <13285635+kilianvolmer@users.noreply.github.com> Date: Thu, 2 Oct 2025 14:48:39 +0200 Subject: [PATCH 38/39] [ci skip] CHG: Add note on literature management to development guidelines --- docs/source/development.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/source/development.rst b/docs/source/development.rst index d8ab0e3d5e..c405e3db40 100644 --- a/docs/source/development.rst +++ b/docs/source/development.rst @@ -354,7 +354,8 @@ The documentation uses `Sphinx `_ and is slightly different syntax than Markdown. A documentation can be found `here `_. This online documentation is generated using `ReadTheDocs `_ and is automatically updated when a pull request is merged into the main branch. Thus, we require you to build the documentation locally to test changes. - +Literature is centrally collected in `literature.rst` and `substitutions `_ +are used to print it wherever needed. Please make sure to have a working python environment with a python version that is compatible with our :doc:`memilio-python packages ` as well as From 8310cf9d0959a94ba0fc1538c2b3637cffac0fc2 Mon Sep 17 00:00:00 2001 From: Anna Wendler <106674756+annawendler@users.noreply.github.com> Date: Thu, 2 Oct 2025 14:55:21 +0200 Subject: [PATCH 39/39] improve description of subcompartments in LCT and GLCT sections --- docs/source/cpp/glct.rst | 10 ++++++---- docs/source/cpp/lct.rst | 13 ++++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/source/cpp/glct.rst b/docs/source/cpp/glct.rst index a5256126c2..47d019ad35 100644 --- a/docs/source/cpp/glct.rst +++ b/docs/source/cpp/glct.rst @@ -20,12 +20,14 @@ The model contains a list of **InfectionState**\s that define particular feature `...` To make use of the GLCT, we additionally need to define the numbers of subcompartments for each **InfectionState**. +This is done by creating an **LctInfectionState** object for each group. These objects are then passed as template +parameter to the model. -.. code-block:: RST +.. code-block:: cpp - `Number of subcompartments of State1` - `Number of subcompartments of State2` - `...` + using LctStateGroup1 = mio::LctInfectionState; The model is implemented as **CompartmentalModel**. diff --git a/docs/source/cpp/lct.rst b/docs/source/cpp/lct.rst index d1c9d3c7ba..fbba3d2acb 100644 --- a/docs/source/cpp/lct.rst +++ b/docs/source/cpp/lct.rst @@ -11,7 +11,7 @@ An overview of nonstandard but often used data types can be found under :doc:`da Infection states ---------------- -The model contains a list of **InfectionState**s that define particular features of the subpopulations in the particular state. +The model contains a list of **InfectionState**\s that define particular features of the subpopulations in the particular state. .. code-block:: RST @@ -20,11 +20,14 @@ The model contains a list of **InfectionState**s that define particular features `...` To make use of the LCT, we additionally need to define the numbers of subcompartments for each **InfectionState**. +This is done by creating an **LctInfectionState** object for each group. These objects are then passed as template +parameter to the model. -.. code-block:: RST - `Number of subcompartments of State1` - `Number of subcompartments of State2` - `...` +.. code-block:: cpp + + using LctStateGroup1 = mio::LctInfectionState; The model is implemented as **CompartmentalModel**.