From ce51c90aacc40b4f6ea987aeffba03b9c7f72cd8 Mon Sep 17 00:00:00 2001 From: Daiane Iglesia Dolci <63597005+Ig-dolci@users.noreply.github.com> Date: Fri, 1 Mar 2024 10:30:38 +0000 Subject: [PATCH] Minor paper modifications (#57) * Small corrections related to the JOSS review. --------- Co-authored-by: David A. Ham --- docs/paper/paper.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/paper/paper.md b/docs/paper/paper.md index 4808e9f..4db2d72 100644 --- a/docs/paper/paper.md +++ b/docs/paper/paper.md @@ -49,7 +49,7 @@ taken to generate the adjoint model. The use of adjoint calculations to compute the gradient of a quantity of interest resulting from the solution of a system of partial differential equations (PDEs) is widespread and well-established. The resulting gradient may -be employed for many purposes, include topology +be employed for many purposes, including topology optimisation [@papadopoulos2021computing], inverse problems [@Plessix2006], flow control [@Jansen2011]. @@ -65,14 +65,14 @@ the forward calculation from a limited set of steps. As the adjoint calculation progresses, the forward computation is progressively rerun from the latest available stored state up to the current adjoint step. This enables less forward state to be stored, at the expense of a higher computational cost as -forward steps are run more than once. [@griewank2000algorithm] proposed a +forward steps are run more than once. @griewank2000algorithm proposed a checkpointing algorithm which is optimal under certain assumptions, including that the number of steps is known in advance, and that all the storage has equal access cost. Subsequent authors have produced checkpointing algorithms that relax these requirements in various ways, such as by accounting for -different types of storage (e.g. RAM and disk) or by not requiring the number -of steps to be known in advance, for example [@stumm2009multistage; -@aupy2016optimal; @schanen2016; @aupy2017periodicity; +different types of storage (e.g. memory and disk) or by not +requiring the number of steps to be known in advance, for example +[@stumm2009multistage; @aupy2016optimal; @schanen2016; @aupy2017periodicity; @herrmann2020; @maddison2023; @Zhang_2023]. # Statement of need @@ -88,7 +88,7 @@ algorithms in their framework. Further, such reimplementation work is wasteful and error-prone. *checkpointing_schedules* provides a number of checkpointing algorithms -accessible through a common interface and and these are interchangeable without +accessible through a common interface and these are interchangeable without recoding. This can be used in conjunction with an adjoint framework such as tlm_adjoint or pyadjoint and a compatible PDE framework, such as Firedrake [@FiredrakeUserManual] or FEniCS [@AlnaesEtal2015] to enable users to create