dataesr/scientific-paragraphs-categorization huggingface dataset:
We will also contact groups conducting LSRs to identify eligible studies that we might have missed. We will follow the standard systematic review methodology for study selection and data abstraction. For each LSR update, we will abstract information on the following: 1) general characteristics, 2) systematic review methodology, 3) living approach methodology, 4) results, and 5) editorial and publication processes. We will update the findings of both the surveys and the longitudinal follow-up of included LSRs every 6 months. In addition, we will identify articles addressing LSR methods to be included in an 'LSR methods repository'. The proposed living methodological survey will allow us to Conclusion: monitor how the methods of conduct, and reporting as well as the findings of LSRs change over time.
Search strategy We will search the following electronic databases: Medline, EMBASE and the Cochrane library. The search strategy uses both key words and MeSH terms judged to be relevant to our topic (Extended data 1). We developed our search strategy with the help of a librarian experienced in systematic review methodology. We used studies identified by a pilot search to refine the search strategy. We will set the alerts in the databases to search for newly published LSR and will follow for update(s) of the already included LSR. We will also search for LSRs in the Cochrane Library, the Epistemonikos database, as well as journals known (or found through this study) to publish LSRs. Lastly, we will contact groups conducting LSRs to identify eligible that we might have missed.
Data abstraction We developed and pilot-tested a standardized data extraction form with detailed instructions (Extended data 2). Reviewers will complete calibration exercises and then extract data in duplicate and independently. They will compare results and resolve disagreements through discussion, or with the help of a third reviewer as needed. We will collect and manage study data using Research Electronic Data Capture (REDCap) tool hosted at the American University of Beirut. REDCap is a secure, web-based application designed to support data capture for research studies. We will export abstracted data from REDCap for every update our analysis. For each included LSR, we will abstract information for each update on the following: 1. General characteristics (Table  1 ): • If the publication is a LSR protocol, base LSR or LSR update (and its number); • Protocol: if referred to, registered, published; or modified; • Type of field: basic sciences, clinical, health systems and policy, public health; • Date of publication (year and month); • Whether it is a Cochrane review • Number of authors (total, newly added, newly removed); • Whether or not authors changed from previous version in terms of ranking/role (first author, last author, and corresponding author); • Funding (type of funding: continuing vs.
Kids Helpline Circles Platform KHL Circles was developed by a team of researchers, psychologists, and programmers following consultation and beta testing with young Kids Helpline clients and using PAR design principles  [8]. The platform was developed using the open-source social networking software Elgg  [12] , which was customized by a team of Web developers and graphic designers to meet the requirements of the service. The platform was available to participants via any Internet-enabled computer or mobile device. The mobile version of the site was adjusted to fit the size of the screen being used by the participant but included all the same components as the desktop version. Participants could log in to KHL Circles anytime throughout the trial. The platform was run on Kids Helpline's own private servers and monitored by Kids Helpline counselors 7 days a week.
II. WAKE-UP RADIO The Wake-Up Radio (WuR) is a secondary module connected to the main node MCU, that contains a Wake-Up Receiver (WuRx). The distinction of this receiver is its Ultra-Low Power (ULP) consumption in listening mode between 4 and 5 orders of magnitude less than that of the traditional radios  [1]. In most of the designs presented in the literature  [1] , the way to achieve this is using a simple On-Off Keying (OOK) modulation which requires uncomplicated circuits, and a low data rate up to 10 kbps. As a result of this architecture, there are two communication channels. In the Main Radio (MR) channel the node uses its traditional transceiver (e. g. CC2420, etc. ). In order to listen to the WuR channel, the node uses the WuRx. In contrast, to transmit on this channel, it must use some existing radio transmitter, which can be the same as that of the MR or another one, as long as it is able to modulate the signal into OOK and low data rate.
The signal received on the WuRx is called the Wake-Up signal. Thanks to the ULP feature, the nodes can listen to the WuR channel continuously. In addition, the WuR module might contain an optional sub-module to decode the data received. For this task, it is common to use a ULP microcontroller (MCU) that is placed in between the WuRx circuit and the main MCU through some sort of digital connection such as SPI or I2C  [5]. In general, the information transmitted in the Wake-Up signal is the address of the destination, so that a receiver node maximizes the sleeping period of the MR and only wakes up when another node addresses it. For this reason, the WuR is especially interesting for asynchronous communications. With this in mind, an example of how this architecture might work is given in the W-MAC protocol presented in  [6].
There, the WuR is driven in the MAC layer. Whenever a node wants to communicate, it transmits a Wake-Up signal with the address of the destination, so that other nodes overhearing the WuR channel do not wake up their MR in vain. A short time (called sync delay) after the Wake-Up signal has been transmitted, the source transmits the data packet over the MR channel. Upon reception of this packet, the receiver sends back an ACK on the MR channel.
A. Concept The source of the application packet initiates the communication by transmitting a packet over the WuR channel, called Wake-Up Request (WREQ), which contains the node's own rank together with a unique application ID, as depicted in Fig. 1. All nodes in the vicinity of the sender will receive this WREQ as they are continuously listening to the WuR channel. Whenever a node receives a WREQ, it compares the received rank with its own rank, and only wakes up its main radio if the former is higher than the latter. This way, only nodes with lower rank can forward the packet, avoiding routing loops. A short time after transmitting the initial WREQ, the source sends the data packet over the main channel, turns off its main radio, and starts a timer to wait for the acknowledgment. When the sink (which is the final destination of all data packets) wakes up its main radio and receives a data packet, it sends back an acknowledgment via the WuR channel.
We propose a fast MATLAB implementation of the mini-element (i. e. P 1-Bubble/P 1) for the finite element approximation of the generalized Stokes equation in 2D and 3D. We use cell arrays to derive vectorized assembling functions. We also propose a Uzawa conjugate gradient method as an iterative solver for the global Stokes system. Numerical experiments show that our implementation has an (almost) optimal time-scaling. For 3D problems, the proposed Uzawa conjugate gradient algorithm outperforms MAT-LAB built-in linear solvers.
Introduction MATLAB is a popular problem solving environment, widely used for general scientific computation in education, engineering and research. MATLAB is nowadays a standard tools in many areas. Thanks to its collection of direct (e. g. LU , LDL , Cholesky) and iterative (e. g. conjugate gradient, GMRES, bi-conjugate gradient) solvers, it is tempting to use MATLAB for the numerical approximation of partial differential equations (PDEs). For the finite element method (FEM), the main obstacle for using MATLAB is the assembly of the global matrix and vector. Since MATLAB built-in solvers are optimized, the assembly operations can take up to 99% of whole CPU time, as shown in  [13] , using an implementation with standard loop over triangles (  [1, 2, 15] ) directly derived from compiled languages (FORTRAN and C/C++).
Unfortunately, some vectorized FEM codes are less flexible and require a huge amount of memory due to the allocation of auxiliary arrays and the corresponding matrix operations  [13, 21, 22]. Recently Koko  [14]  proposes a MATLAB 1 implementation close to the standard form by using cell-arrays to store the gradient of the basis functions, for the Poisson equation and linear elasticity in 2D and 3D. In this paper, we propose a fast MATLAB implementation of the P 1-Bubble/P 1 finite element (Mini element,  [3, 8, 10] ) for the generalized Stokes problem in 2D and 3D. The mini element for spatial discretization of the Stokes problem is easy to use in engineering practice since its allows for the use of equal-order interpolation (the same mesh for velocity and pressure). Equal-order interpolation is very useful in large-scale multi-physics codes.
Our implementation needs only MATLAB basic distribution functions and can be easily modified and refined. The paper is organized as follows. The model problem is described in Section 2, followed by a finite element discretization in Section 3. The element matrices in 2D/3D are described in Section 4. In Section 5, we propose our Uzawa conjugate gradient method for solving the Stokes system. MATLAB implementation details are given in Section 6. Numerical experiments are carried out in Section 7. Readers can download and edit the codes from http://www. isima. fr/~jkoko/Codes/KSTOK. tar. gz.
Mesh representation and KPDE package We assume that the triangulation of Ω consists of np nodes and nt elements (triangles or tetrahedrons). We adopt the mesh representation by arrays used in  [13, 14, 17]. The nodes coordinates are stored in an array p(1:np,1:2) (in 2D) or p(1:np,1:3) (in 3D). The element nodes are stores in an array t(1:nt,1:3) (in 2D) or t(1:nt,1:4) (in 3D). Dirichlet boundary conditions are provided by a list of nodes and the corresponding prescribed values. As shown in  [14]  using cell-array in FEM allows to have implementation close to the standard form used in classical languages (C/C++, FORTRAN) FEM codes, while being efficient. The idea is to compute and store, for all triangles, the element matrix entry A (T ) ij in the cell-array At{i,j}. Then we use MATLAB function sparse to assemble A with finite small for loops for i=1:nd for j=1:nd A=A+sparse(t(:,i),t(:,j),At{i,j},np,np); end end where nd=3 (in 2D) or nd=4 (in 3D).
This approach is used in KPDE package  [14]  for assembling matrices and vectors from Poisson and linear elasticity equations in 2D and 3D. We need two key functions from KPDE package, kpde2dgphi and kpde3dgphi, which compute the gradient of the basis functions and the elements volume as follows [ar,g]=kpde2dgphi(p,t); %2D [vol,g]=kpde3dgphi(p,t); %3D g is 3-by-1 or 4-by-1 cell-array such that g{i}(:,k) is ∂ k φ i (x) for all elements.
2D case Using the cell array g and the array ar, the nonbubble entry Rij , (4. 2), of the element stiffness matrix is then given (for all triangles) by Rij=nu*ar. *sum(g{i}. *g{j},2); The bubble diagonal entry ω R , ( The entries (i, j) of the element divergence matrix (4. 6) are vetorized as follows MATLAB Functions 6. 1-6. 2 assemble the Stokes system. To make the assembling functions self-contained, all calculations are integrated except elements area and the gradient of basis functions which can be computed outside and passed as argument. Note that in 2D, the time for computing the triangles area and the gradient of the basis functions is not significant. Functions 6. 1-6. 2 can be called without the last two arguments without a significant computational overcost. Instead of matrix (4.
Scalability We first study the scalability of our MATLAB codes: We consider the discretization of a unit cube (0, 1) d (d = 2, 3) with a uniform mesh of size h, with nt triangles (or tetrahedrons) and np nodes. This initial mesh is successively uniformly refined to produce meshes of size h/2, h/4, h/8, etc. After each refinement the number of triangles is multiplied by 4 (2D) and the number of tetrahedraons by 8 (3D). Since the assembly process is essentially based on the number of elements, we expect that the time to assemble the matrices increases by approximately the same factor, i. e. 5 -6 in 2D and 8 -10 in 3D as observed in  [14]  for Poisson equation and linear elasticity. Table  1 -2 show the assembly CPU times (in Seconds) for the Stokes system in 2D and 3D, respectively. We can notice an almost linear optimal time-scaling for our implementation.
Factorization versus Uzawa conjugate gradient We now consider a Stokes flow in a driven cavity Ω = (0, 1) d with f = 0 in (2. 1) and 2D: Γ 1 = (0, 1) × {1}, u = (1, 0) on Γ 1 , and u = 0 on ∂Ω \ Γ 1 ; 3D: Γ 1 = (0, 1) × (0, 1) × {1}, u = (1, 0, 0) on Γ 1 , and u = 0 on ∂Ω \ Γ 1. Ω is discretized by uniform meshes of size 1/16, 1/32, 1/64, 1/128, 1/256 and 1/512 in 2D, and 1/4, 1/8, 1/16, 1/32 and 1/64 in 3D. Since thre are powerful linear (direct) solvers in MATLAB, we first compare our conjugate gradient algorithm with • \ (backslash) the standard MATLAB solver for general matrix based on Gaussian elimination; • ldl the block LDL factorization for symmetric indefinite systems. Table  3  shows the comparative performances for the 2D Stokes problem with ν = 1/50 and α/ν = 10 3. We can notice that the proposed Uzawa conjugate gradient (Algorithm 2) and the MATLAB uilt-in Gaussian elimination are almost equivalent even though, in Algorithm 2, the component systems are uncoupled and can be solved in parallel.
A mesh sample is shown in Figure  1. The inflow and outflow conditions (on left/right boundaries) are u 1 = 0. 3 0. 41 2 × 4y(0. 41 -y), u 2 = 0 on Γ in = {0} × (0, 0. 41), u 1 = 0. 3 0. 41 2 × 4y(0. 41 -y), u 2 = 0 on Γ out = {2. 2} × (0, 0. 41). On the other parts of the boundary of Ω, homogeneous boundary conditions are precribed (i. e. u = 0). The parameter α in (2. 1) is set to 0. The center of the internal cylinder is (0. 25, 0. 2) and the diameter is 0. 1. The kinematic viscosity is ν = 10 -3. This gives a Reynolds number of Re = 30 based on the diameter of the cylinder and the maximum of the inflow velocity. The domain is discretized by a non uniform mesh consisting of 1730 nodes and 3280 triangles, Figure  1. The velocity field obtained with MATLAB command Unfortunately, for 3D flows, there is no simple tool for graphics output.
These results are used for developing a one-dimensional reactive transport model based on PhreeqC software. In this model, porous and fractured media are approached by a dual porosity reactive transport model where dissolution reactions are described by kinetics. Column experiments are used as a reference for calibrating the key parameters of the numerical models, which include the relative volume of mobile and immobile zones within the dual porosity medium and the exchange rate between these two volumes. This model is then adapted to in-situ conditions by considering the preferential flow of fluids through natural or artificial fractures of enhanced hydraulic conductivity. These models are used to discuss key elements affecting the feasibility of coupling bioleaching and in-situ recovery for improving the sustainability of mining, especially for deep and complex ore deposits.
1. The mineralogical content is based on the reconstruction presented in Table  3. Minerals are allowed to dissolve but precipitation is disabled as a simplification. The dissolution reactions are taken from the Thermoddem * database  [Blanc et al. , 2012]  as described in Table  7. In this paper, the dissolution reactions are treated by a kinetic approach, whose kinetic rate equations are detailed in Appendix B. Reactive rates are found to be relatively sensitive to temperature, particularly for the carbonate dissolution under the experimental conditions. Unfortunately, the laboratory temperature varied by a few degrees during the experiments. An average temperature of 21. 5 °C is used for the numerical simulations, as it would be difficult to accurately record and account for these daily variations.
The various components of k are computed after Eq. (  9 ), where T K denotes the temperature in kelvin, R is the gas constant (8. 314 J•mol/K), and [•] refers to the activity of the given ion. The coefficients and exponents used in Eq. (  9 ) are summarized in Table  8. k = k T k H + k OH -k Fe 3+ (9) with k T = a T exp -b T /(R T K ) k H + = a H + exp -E a H + /(R T K ) [H + ] ν H + k OH -= a OH -exp -E a OH -/(R T K ) [OH -] νOH- k Fe 3+ = a Fe 3+ exp -E a Fe 3+ /(R T K ) [H + ] ν Fe 3+ [Fe 3+ ] µ Fe 3+ Atacamite is treated with a similar kinetic rate based on Eq. (  8 ), with a S value of 3. 191 m 2 /g and with a different parameter k, adapted from  [Le Roux et al. , 2016] : The kinetics for ankerite is derived from the dissolution rate of dolomite, as it is not present in the initial database.
Acknowledgements The research leading to these results was supported by the  European Union 's  Horizon 2020 research and innovation program  under grant agreement No  642456  for the  BIOMOre  project. This publication reflects only the authors' view, exempting the Commission from any liability. Special thanks go to the  KGHM company  for providing the ore sample and to the  BRGM  for providing the thermodynamics and kinetic databases Thermoddem † for PhreeqC. Parts of this work have been carried out in the framework of the " Investissements d'avenir "  Labex RESSOURCES21  ( ANR-10-LABX-21 ).
In this paper, we explain what it means for the composite program logic to remain sound in the presence of this axiom, and provide a formal proof that Iris, extended with time receipts, is indeed sound. Furthermore, we verify that Clochard et al. 's ad hoc concepts of "one-time" integers and "peano" integers can be reconstructed in terms of time receipts, a more fundamental concept. Finally, to demonstrate the combined use of time credits and receipts, we present a proof of the Union-Find data structure, where credits are used to express an amortized time complexity bound and receipts are used to prove that a node's integer rank cannot overflow, even if it is stored in very few bits. In summary, the contributions of this paper are as follows: 1. A way of extending an off-the-shelf program logic with time credits and/or receipts, by composition with a program transformation.
Yet, in our constructions of Iris $ and Iris ȯ , we must provide a concrete implementation of it in HeapLang. This implementation, named tick c , appears in Figure  4. A global integer counter c stores the number of computation steps that the program is still allowed to take. The call tick c () decrements a global counter c, if this counter holds a nonzero value, and otherwise invokes oops (). At this point, the memory location c and the value oops are parameters. We stress that tick c plays a role only in the proofs of soundness of Iris $ and Iris ȯ. It is never actually executed, nor is it shown to the end user. tick c rec self (x ) = let k = ! c in if k = 0 then oops () else if CAS(c, k , k -1) then x else self (x ) Once tick is instantiated with tick c , one can prove that the translation is correct in the following sense: the translated code takes the same computation steps as the source code and additionally keeps track of how many steps are taken.
More specifically, if the source code can make n computation steps, and if c is initialized with a value m that is sufficiently large (that is, m ≥ n), then the translated code can make n computation steps as well, and c is decremented from m to m -n in the process. Lemma 1 (Reduction Preservation). Assume there is a reduction sequence: (T 1 , σ 1 ) → n tp (T 2 , σ 2 ) Assume c is fresh for this reduction sequence. Let m ≥ n. Then, there exists a reduction sequence: ( T 1 , σ 1 [c ← m]) → * tp ( T 2 , σ 2 [c ← m -n]) In this statement, the metavariable T stands for a thread pool, while σ stands for a heap. The relation → tp is HeapLang's "threadpool reduction". For the sake of brevity, we write just e for e tick c , that is, for the translation of the expression e, where tick is instantiated with tick c.
This yields the Iris triple {$n} e {True}. Because we have $n at hand and because Iris is sound  [12] , this implies that e is safe. This concludes the proof. This last step is, we believe, where the modularity of our approach shines. Iris' soundness theorem is re-used as a black box, without change. In fact, any program logic other than Iris could be used as a basis for our construction, as along as it is expressive enough to prove Time Credit Initialization (Lemma 6). The last ingredient, Safety Preservation, Strengthened (Lemma 5), involves only the operational semantics of HeapLang, and is independent of Iris. This was just an informal account of our proof. For further details, the reader is referred to the online repository  [17].
Acquiring an invariant consumes a unique token, which is recovered when the invariant is released: this guarantees that an invariant cannot be acquired twice, or in other words, that two threads cannot be in a critical section at the same time. The unique token involved in this protocol is the one that we expose to the end user as "the thunderbolt". 8 Application: Union-Find in Iris $ȯ As an illustration of the use of both time credits and time receipts, we formally verify the functional correctness and time complexity of an implementation of the Union-Find data structure. Our proof  [17]  is based on Charguéraud and Pottier's work  [4]. We port their code from OCaml to HeapLang, and port their proof from Separation Logic with Time Credits to Iris $ȯ. At this point, the proof exploits just Iris $ , a subset of Iris $ȯ.
The mathematical analysis of Union-Find, which represents a large part of the proof, is unchanged. Our contribution lies in the fact that we modify the data structure to represent ranks as machine integers instead of unbounded integers, and exploit time receipts in Iris $ȯ to establish the absence of overflow. We equip HeapLang with signed machine integers whose bit width is a parameter w. Under the hypothesis log log N < w -1, we are able to prove that, even though the code uses limited-width machine integers, no overflow can occur in a feasible time. If for instance N is 2 63 , then this condition boils down to w ≥ 7. Ranks can be stored in just 7 bits without risking overflow. As in Charguéraud and Pottier's work, the Union-Find library advertises an abstract representation predicate isUF D R V , which describes a well-formed, uniquely-owned Union-Find data structure.
Discussion One feature of Iris and HeapLang that deserves further discussion is concurrency. Iris is an evolution of Concurrent Separation Logic, and HeapLang has shared-memory concurrency. How does this impact our reasoning about time? At a purely formal level, this does not have any impact: Theorems 1, 2, 3 and their proofs are essentially oblivious to the absence or presence of concurrency in the programming language. At a more informal level, though, this impacts our interpretation of the real-world meaning of these theorems. Whereas in a sequential setting a "number of computation steps" can be equated (up to a constant factor) with "time", in a concurrent setting, a "number of computation steps" is referred to as "work", and is related to "time" only up to a factor of p, the number of processors.