J P Zhang

C Pendenque

K Le Guen

R Delaunay

I Vickridge

D Schmaus

G Fu

P Jonnard

Q G Fu

Kossel interferences of proton-induced X-ray emission lines to study the interfaces of thin film waveguides

de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

While waveguide optic is ubiquitous in the visible and infrared spectral range, it is still much less developed in the X-ray regime. X-ray waveguides can be used as spatial and coherence filters for X-ray coherent imaging. They are usually designed and fabricated with a low density guiding layer embedded in high density cladding layers. The interfaces of the thin film waveguides play a crucial role in their service reliabilities. In this study, Pt/Fe/Pt and Ta/Cr/Pt thin film waveguides are firstly designed by using the IMD software, and then deposited on Si substrates by magnetron sputtering. Grazing incident x-ray reflectometry is performed to obtain the geometrical information of the designed thin films waveguides. The Kossel interference of proton-induced X-ray emission lines (PIXE) [1], as a non-destructive way, is used to analyze the interfaces of the thin films, as shown in Fig. 1. PIXE is an X-ray spectrographic technique, which can measure the characteristic radiations emitted by electron transitions and identify each element. It is used in Kossel geometry to obtain what we call Kossel curves, i.e. the angular distributions of the intensity of the characteristics emissions. In our experimental conditions, we use an energy dispersive CCD camera, which enables performing the experiment without any rotation of the sample or camera. By comparing the experimentally obtained Kossel curves of the characteristic emissions and the simulated ones, the interfacial environments of the studied stacks can be explained.

Fig. 1 .

 1 Fig. 1. Experimental setup of the PIXE-Kossel experiment. A column of pixels of the CCD camera measures the emitted intensity at one angle. The 256 columns enables scanning a 3° angular range without moving any part of the experiment.


A Yvan

Guifo Fodjo

Mikal Ziane

Serge Stinckwich

Thi Mai Bui

Anh

Samuel Bowong

Separation of Concerns in Extended Epidemiological Compartmental Models

Keywords: Separation of Concerns, Compartmental Models, Contact Network, Epidemiology Modeling Tool

). Compartmental models are typically first defined as ordinary differential equations (ODEs), such as Equation 1 below, which can be studied analytically and/or simulated using algorithms such as Runge-Kutta. It is however considered more realistic to adopt a

INTRODUCTION

Modeling and simulation have been heavily used in epidemiology, for instance to inform control strategies [START_REF] Levin | From individuals to epidemics[END_REF]. Epidemiological models largely rely on the compartmental framework where the individuals of a population are grouped by their epidemiological status [START_REF] Keeling | Modeling infectious diseases in humans and animals[END_REF]. Those Susceptible to the pathogen (state S) can be infected with rate λ, the Infectious ones (state I) can transmit the disease or become immune a.k.a a stochastic viewpoint on these models, typically considering them as Continuous-Time Markov Chains (CTMCs), that can be derived from the ODEs modulo some widely-accepted, albeit simplifying, probabilistic assumptions.

                   dS dt = -λS dI dt = λS -γI dR dt = γI N = S + I + R (1)
Aside from this core epidemiological concern, other concerns may have to be taken into account such as the age structure, the social or sexual mix-ing and the spatial heterogeneity of the transmission that may be caused by various considerations. Each of these additional aspects may lead to further partitioning the population. Unfortunately, concerns are typically intertwined in epidemiological models in both executable code and mathematical equations.

At first sight at least, it seems difficult to separate these concerns since, when a concern is added to a model, it is precisely because it interferes with the core epidemiological concern to introduce some kind of heterogeneity. For example, in a spatial SIR model, the spatial concern impacts the epidemic concern at each region which assigns a specific value to an epidemic parameter. If the epidemic parameters had the same value on the whole space, there would be little point in introducing a spatial concern in the first place.

The Kendrick approach [START_REF] Bui | Separation of concerns in epidemiological modelling[END_REF] consists in defining concerns (age, sex, spatial heterogeneity, ...) as independent, possibly incomplete, models that are then combined into Stochastic Automata Networks (SANs) [START_REF] Plateau | Stochastic automata networks[END_REF] using a tensor-sum operator. The stochastic dependencies between concerns are then introduced in a second phase so that the independent concerns can be reused and combined in other models much more easily.

A typical assumption of compartmental models is that individuals mix (meet others individual with potential disease transmission) uniformly, at least in the same compartments, i.e. with the same probability. This assumption is getting more and more criticized as unrealistic as it has been observed that, in many outbreaks, a few super-spreaders initially infect other individuals more quickly than homogeneous models predict. Later in an epidemic, on the contrary, when a lot of individuals are infected, the reverse has been observed: homogeneous models predict more infections than what happens, because the remaining susceptible individuals are typically the most isolated ones.

It has thus been proposed to define, study or simulate contact-network models in which nodes denote individuals or groups of individuals and edges denote potential contacts. These models, however, are more involved to define and study than compartmental models. It is thus natural to try and extend compartmental models to include some contact heterogeneity.

Several adaptations have been published to improve the homogeneous compartmental approach for at least some classes of contact networks. [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] have then proposed a general framework to capture such adaptations as changes to the parameters that define the force of infection, and have redefined two of these adaptations, that they deemed typical enough, using their proposal: the Stroud [START_REF] Stroud | Semiempirical power-law scaling of new infection rate to model epidemic dynamics with inhomogeneous mixing[END_REF] and the [START_REF] Aparicio | Building epidemiological models from R0: an implicit treatment of transmission in networks[END_REF] adaptations.

In this paper, we report on our attempt to integrate Bansal's framework in the Kendrick approach to separation of concerns [START_REF] Bui | Separation of concerns in epidemiological modelling[END_REF]. The challenge consists in expressing Bansal's framework as well as any specialization of it such as Stroud's or Aparicio's adaptation as separate Kendrick concerns. The benefit of our proposal is that adaptations to the homogeneous compartmental model may now take advantage of separation of concerns and be combined with other kind of concerns that are not directly related to the contact network.

INTEGRATING BANSAL'S FRAMEWORK IN THE KENDRICK APPROACH

Seen from a software engineer's viewpoint, our idea is somehow similar to applying the Template Method design pattern [START_REF] Gamma | Elements of reusable object-oriented software[END_REF] to epidemic model equations1 : it consists in expressing λ as a function of 3 parameters, α, i t and τ. α is the average number of individuals with which a susceptible individual has contact or the average degree of nodes in a contact network, i t is the proportion of contacts that are infectious2 and τ is the per-contact rate at which the disease is transmitted between an infectious and a susceptible individual.

Following Bansal et al. we have renamed these 3 usual parameters to α gen , it gen and τ gen to insist on their special meaning when applied to a model based on a contact-network and to signal that they are generic hot-spots, i.e. varying points. The generic definition for the force of infection λ is given by Equation 2. We have, however, for the sake of simplicity and of readability, often kept the original simple names without the "gen" subscript, especially when they have their usual homogeneous meaning, typically before a model is made generic using the Kendrick approach. We have used names with "gen" in final generic definitions of models and in Kendrick code. λ = α gen τ gen it gen

(2)

In traditional (homogeneous-compartmental) models i t is typically defined this way: [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] reports on two proposals, Stroud et al. [START_REF] Stroud | Semiempirical power-law scaling of new infection rate to model epidemic dynamics with inhomogeneous mixing[END_REF] and [START_REF] Aparicio | Building epidemiological models from R0: an implicit treatment of transmission in networks[END_REF], to generalize compartmental models to capture some aspects of contactnetwork models. Both proposals were captured by giving (α gen , it gen and τ gen ) specific values. In order to explain these approaches in the limited allowed space for this paper, we have chosen to simplify the rational and hypotheses behind them and more generally the epidemiological questions in this paper. The interested reader will need to refer to the original papers to get the full explanations of these models.

i t = I N (3)
Consider Figures 5, 6 and 7. The curves are the daily incidence3 predicted by different models assuming a Poisson, exponential and scale-free contact network respectively . The red line denotes a traditional (homogeneous) compartmental model. By definition, it does not depend on the network but then, in some cases, it suffers from two problems: the height of the peak is wrong and it happens too late.

The blue and green curves are run using our Kendrick compartmental tool but using the approach from Stroud et al. and from Aparicio et al., respectively, to approximate some aspects of contact networks. The former approach improves (lowers) the height of the peak on some classes of networks. The latter approach improves the timing of the peak on some classes of networks although sometimes exaggerating its height. Ideally, it should be easy to try one or several of these approaches to decide which approach best matches the observed data.

In this paper, we thus want to check if both these approaches can be captured as Kendrick concerns to keep the benefits of separation of concerns. This way these approaches can be changed more easily than in monolithic models where all concerns are mixed together [START_REF] Bui | Separation of concerns in epidemiological modelling[END_REF].

In case of success, our middle-term objective, outside of the scope of this paper, would be to investigate what class of extensions can be defined as Kendrick concerns so that compartmental models can more easily be enriched with some of the properties of contact networks.

Stroud et al.'s Extension

In traditional homogeneous-mixing compartmental modeling, the expected number of new infections per day per infectious person is assumed to be proportional to the fraction of the population that is susceptible. In real social structures, however, some susceptible individuals have a greater chance to receive and transmit the disease than others. [START_REF] Stroud | Semiempirical power-law scaling of new infection rate to model epidemic dynamics with inhomogeneous mixing[END_REF] claim that "epidemic models can practically incorporate inhomogeneous mixing by taking the number of new infections per day per infectious person to scale as a power (greater than one) of the fraction of the population that is susceptible".

Introducing this power law can be done in two steps. First, combining Equations 1, 2 and 3 leads to:

dS dt = -ατI S N (4)
Then, this equation is generalized by introducing a constant, ν, greater than 1, that is postulated to be a power of S/N. This constant must be "fitted" from real data i.e. estimated to minimize errors. Intuitively, a higher value for ν represents a higher degree of heterogeneity, especially (although not necessarily) in the number of contacts among individuals or similarly in the degree of nodes in a contact network.

The generalized equation becomes:

dS dt = -α gen τ gen I( S N ) ν (5)
which leads to:

it gen = I S ( S N ) ν (6)
The parameters α gen and τ gen are constants whose values are best set outside of models themselves, in socalled simulation scenarios. Capturing this idea in Kendrick is quite simple and merely consists in assigning the above value to it gen which will implicitly declare an additional parameter ν to be assigned in simulation scenarios. The Kendrick code of this concern is given in Section 3. Remember that the point was to try and keep the implementation of this idea separate from the rest of the model, here from the SIR concern.

Aparicio et al.'s Extension

Homogeneous models often fail to predict when the peek of an epidemic will occur. Early in epidemics, the most likely individuals to be infected are typically "hubs" that have a lot contacts and thus are also likely to secondary infect more individuals than an average individual would. Late in epidemics, on the contrary, the new infected individuals are typically more isolated and induce less secondary infections. On Figures 5, 6 and 7, the peek of the red curve comes too late.

In [START_REF] Aparicio | Building epidemiological models from R0: an implicit treatment of transmission in networks[END_REF], the authors propose an SIYR model to better account for secondary infections. Their idea is to split the usual I compartment into I and Y, where their I is individuals that are infected and infectious and Y individuals that are infected but not infectious, meaning that they do not produce secondary infections.

Their model is given by 7 where γ e = τ + γ, is the constant rate at which infectious nodes become inactive while γ is the constant rate at which infected nodes become recovered, g is the constant rate at which inactive nodes recover, and R 0 , the basic reproduction rate, depends on the network.

                           dS dt = -γ e R 0 S N I dI dt = γ e R 0 S N I -γ e I dY dt = γ e I -gY dR dt = gY N = S + I +Y + R (7)
Note that there is here a potential confusion between the usual τ parameter and the generic τ gen which in this specific model is not equal to τ. From the above formulas we deduce: α gen = γ e ; it gen = I N and τ gen = R 0 . [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF]

(supplementary material) gives R 0 = T k 2 -k k
where k is the mean degree of the network (set to 10 in our examples), while k 2 is the mean square degree and T = τ γ e is the probability of transmission of the pathogen.

For a Poisson random network k 2 = k ( k + 1) [START_REF] Barabási | Network Science[END_REF] but for more general networks it is an issue to estimate k 2 without an actual network. [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] relies on computations on the random networks they used.

For the exponential network, we have generated a sequence of degrees with an exponential distribution and have computed k 2 .

For the scale-free network, in order to calculate the mean square degree, we proceed in a similar way as in the exponential case, but we use the [START_REF] Barabási | Emergence of scaling in random networks[END_REF] algorithm to generate the graph.

VALIDATION AND DISCUSSION

To validate our approach, we have replicated the experiments of [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] All models were defined using the Kendrick tool [START_REF] Bui | The Kendrick modelling platform: language abstractions and tools for epidemiology [+ correction art[END_REF]) even though we used the low-level Kendrick language rather than its domainspecific language which is currently under revision.

The parameters α gen , it gen and τ gen are noted in Kendrick as alpha gen, it gen and tau gen.

Our [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF], taking into account that used random networks and that different scale-free or exponential networks may have different values for k 2 . This suggests that integrating Bansal's idea was successful.

Both adaptations alter the homogeneous case in very different ways. As heterogeneity in the degree of nodes grows from the Poisson to the exponential to the scale-free case the Stroud adaptation further shrinks the peek of daily incidence but does not fix its dynamics: it still comes too late. On the contrary, the Aparicio adaptation shifts this peak to the left (earlier in the outbreak) but outside of the case of their publication (Poisson networks) the height of the peek is deemed exaggerated by [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF].

The challenge was to check if the Kendrick approach to separation of concerns could capture approaches such as those from Stroud et al. or Aparicio et al. while keeping the familiar compartmental framework.

We first defined a classical SIR model (line 1-14) in a usual way except for the definition of lambda (lines 9-10). Note however that this definition of lambda is general and not, by any means, restricted to trying and capture some aspects of contact networks. The SIR model defined this way can thus be The Stroud concern is then quite simple: it merely gives a value to the it gen parameter (lines 16-18). This concern is separate from the SIR in the sense that it is a distinct syntactic structure. The SIR concern can be reused without the Stroud concern.

One issue is the fact that the SIR concern was not reused in the SIYR one for the implementation of Aparicio et al's approach. Factoring out commonalities between the core epidemic concerns (SIR, SEIR, SIYR...) that define the epidemic status is a bit involved and does not always simplify models.

It might be tempting to introduce some kind of inheritance between models (using the Kendrick DSL) but the benefits are not impressive as far as core concerns are considered. In low-level Kendrick it is possible to copy SIR into SIYR, add a Y status, redefine the transitions and so on, but this is not clearly simpler than redefining SYIR from scratch as we did. There are only a few kinds of core concerns so that redefin- ing them from scratch is not a heavy burden.

Other concerns, the contrary, are quite varied and are the focus of the Kendrick approach. Because it relies on a specific core concern (SIYR), implementing the Aparicio et al. extension is more involved than with the Stroud et al. one. It is however still possible to benefit from the Kendrick approach and com- bine the SIYR and the Aparicio concerns with other concerns such as the age or sex structure. For this reason we consider that this was also a success.

Another issue is the relationship between the Stroud concern and SIR and more generally of noncore concerns with the core concern of the model. Non-core concerns are expected not to structurally depend (use names introduced in other concerns) on each other even though this may possibly happen in huge models (e.g. a global pandemic model) that are quite beyond the scope of this paper. Non-core concerns may however depend on the core one. Indeed, the Stroud concern gives value to a parameter introduced in SIR and uses names that are defined in SIR. In low-level Kendrick there is little support, aside from the host system complaining at run time, to avoid pitfalls such as misspelling a name or avoiding name conflicts across concerns. This is obviously something the Kendrick DSL must address e.g. by prefixing names by that of their concern, importing the names of concern, ... The reader may wonder if it would be possible to combine the approaches of Stroud et al. and from Aparicio et al. The Kendrick approach would support it but the respective domains of validity, or at least of reasonable quality of prediction, of both approaches do not necessarily intersect so that neither [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] nor we, have considered this possibility. Finally, in [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] the idea to adapt compartmental models, that was transposed to Kendrick in this paper, was further developed to distinguish the edges of Susceptible individuals from those of Infected individuals. Including other parameters to concerns is not difficult but Bansal et al. consider that obtaining values (by fitting on simulations run on a contact network) or formulas (by analytical methods) for these parameters may become more cumbersome than using network models. We think this suggests that it may be worth in future work to try and capture more aspects of contact networks in concerns and check if this helps combining or switching between the compartmental approach and the contactnetwork one in models.

RELATED WORK

Separation of concerns [START_REF] Hürsch | Separation of concerns[END_REF] is a major goal of software engineering and more generally of any discipline where models or artifacts may be too complex to grasp, change or reuse easily when they are not decomposed into separate parts whose dependencies on each other are kept minimal.

The Kendrick approach, language and tool [START_REF] Bui | Separation of concerns in epidemiological modelling[END_REF][START_REF] Bui | The Kendrick modelling platform: language abstractions and tools for epidemiology [+ correction art[END_REF] achieve separation of concerns in compartmental epidemic models by defining each concern (age, sex, spatial heterogeneity, containment or vaccination policies, etc.), i.e. each potential source of heterogeneity, as a separate stochastic automaton and by deferring combining concerns until a composition phase where they are put together into a SAN using a tensor sum operator.

Process algebras and SANs have similar objectives and have both been used to define compartmental epidemic models, although not, as far as we know, to support a general approach to separation of concerns that introduce heterogeneity in epidemic models [START_REF] Mccaig | From individuals to populations: A symbolic process algebra approach to epidemiology[END_REF]. Moreover, process algebras are not initially meant to model epidemic models which makes them awkward.

Bio-PEPA, for instance, is an extension of PEPA (Performance Evaluation Progress Algebra) [START_REF] Gilmore | The PEPA workbench: A tool to support a process algebra-based approach to performance modelling[END_REF] with some features for biological system modeling. Some PEPA models however cannot be translated into ODEs which requires checking some conditions to do it [START_REF] Benkirane | Process algebra for epidemiology: evaluating and enhancing the ability of PEPA to describe biological systems[END_REF]. Also, defining compartments is tedious and PEPA's syntax "might look daunting" [START_REF] Benkirane | Process algebra for epidemiology: evaluating and enhancing the ability of PEPA to describe biological systems[END_REF]. A subsequent adaptation of Bio-PEPA was thus introduced to better support compartmental epidemic models [START_REF] Ciocchetta | Bio-PEPA for epidemiological models[END_REF]. We are not aware of any extensions to Bio-PEPA to support contact networks.

Generally, traditional mathematical models (compartmental models) used in epidemiology, make simplifying assumptions about the interaction between hosts. This is because they implicitly define hostto-host contact and assume that hosts have identical contact rates, which does not always agree with realworld models. However, these models have the particularity of being manageable, easily implementable, robust and predictive [START_REF] Anderson | Infectious diseases of humans: dynamics and control[END_REF][START_REF] Mollison | Epidemics: models and data[END_REF]. However, faced with their difficulties in reflecting certain real-world models, in recent years epidemiologists have largely focused on so-called contact network models, which have the characteristic of explicitly capturing the various models of interactions that underlie transmission of disease [START_REF] Watts | Collective dynamics of 'small-world' networks[END_REF][START_REF] Pastor-Satorras | Epidemic spreading in scale-free networks[END_REF][START_REF] Shirley | The impacts of network topology on disease spread[END_REF]. These models also have the advantage of providing very good prediction but have the disadvantage of requiring more programming skills. In order to find an ideal compromise between compartment-based models and contact network models, at least from the point of view of implementation, the Kendrick [START_REF] Bui | Separation of concerns in epidemiological modelling[END_REF][START_REF] Bui | Separation of concerns in epidemiological modelling[END_REF][START_REF] Bui | The Kendrick modelling platform: language abstractions and tools for epidemiology [+ correction art[END_REF] approach was thus generalized in order to take into account aspects of contact network models from models based on compartments that are known to be easily manipulated.

Many epidemiology modeling and simulation platforms take into account deterministic/stochastic models based on compartments or/and contact networks [START_REF] Muellner | epidemix-an interactive multi-model application for teaching and visualizing infectious disease transmission[END_REF][START_REF] Bui | Separation of concerns in epidemiological modelling[END_REF][START_REF] Bui | The Kendrick modelling platform: language abstractions and tools for epidemiology [+ correction art[END_REF][START_REF] Picault | Emulsion: Transparent and flexible multiscale stochastic models in human, animal and plant epidemiology[END_REF][START_REF] Miller | EoN (Epidemics on Networks): a fast, flexible python package for simulation, analytic approximation, and analysis of epidemics on networks[END_REF][START_REF] Hladish | EpiFire: An open source C++ library and application for contact network epidemiology[END_REF]. Hladish et al. introduce EpiFire [START_REF] Hladish | EpiFire: An open source C++ library and application for contact network epidemiology[END_REF] -an API 5 implemented in C++ for generating network models of epidemiology. EpiFire also provides a graphical user interface (GUI) which allows to fast configure the structure of different networks (i.e., random, small-world, scale-free etc.) for SIR models. Although the authors have achieved the separation between the network construction and the simulation of the disease spreading through networks, they have ignored other epidemiological concerns, only considered the SIR structure. The most recent work on the field of contact network modeling for epidemiology is EoN of [START_REF] Miller | EoN (Epidemics on Networks): a fast, flexible python package for simulation, analytic approximation, and analysis of epidemics on networks[END_REF]. EoN provides 5 Application Programming Interface the same features as EpiFire with the aim of modeling the spread of SIR and SIS models over different networks. It is arguable that most of these tools do not formalize the principle of separations of concerns in epidemiology as the Kendrick [START_REF] Bui | Separation of concerns in epidemiological modelling[END_REF][START_REF] Bui | The Kendrick modelling platform: language abstractions and tools for epidemiology [+ correction art[END_REF] and Emulsion [START_REF] Picault | Emulsion: Transparent and flexible multiscale stochastic models in human, animal and plant epidemiology[END_REF] tools do. Indeed, Emulsion is a platform that was built with the aim of helping modelers to focus on the design of models rather than on the programming aspect. It is a domain specific language which makes it possible to make explicit all the components of an epidemiological model (structure, process, parameters, ...) in the form of a structured text file. Even if the authors of Emulsion do not specifically specify how this principle of separation of concerns was formalized, they highlight the fact that it allows modelers to design processes (infection, demography, detection, control, etc.) and different scales (individuals, populations, meta-populations) independently, which would allow the management of multiple hosts, the diversity of pathogens, as well as realistic detection methods and control measures.

CONCLUSION

In this paper, we have proposed to generalize the Kendrick approach to separation of concerns in compartmental epidemic models [START_REF] Bui | Separation of concerns in epidemiological modelling[END_REF] to easily capture some aspects of contact network models.

To do this we have applied an idea from [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] which consists in defining the usual λ parameter of epidemic models as a kind of template method with three extension points.

We have then applied this approach to 2 extensions of compartmental models, Stroud et al. (Aparicio and Pascual, 2007) and Aparicio et al. (Stroud et al., 2006) and we have been able to get results close to those of [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF]. Stroud et al.'s extension was defined as a very simple concern that was separate from the core SIR model. Aparicio et al.'s extension was a bit more complex to implement because it relies on a specific core concern, namely SIYR, but the resulting concerns can still be combined with other epidemic concerns in Kendrick.

Building on these promising results we aim at generalizing our approach to express more general aspects of contact networks as separate concerns. [START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] pointed out that the approach we have reported on was probably not enough to cope with heavy heterogeneity in the contact network unless much more significant efforts are made to adapt compartmental models and suggested to abandon them in this case for a full-fledged contact-network approach. It is thus interesting to see whether separation of concerns can be even further generalized to alleviate these additional efforts. This will probably lead to developing concerns that capture more information of contact networks to the point that the original compartmental framework may become a mere specific concern itself. Finally, we also plan to include this generalized approach in the Kendrick DSL to offer better support to avoid some caveats, especially those involving name clashes or ambiguities in the global model.

Figure 1 :

 1 Figure 1: Flow diagram of the SIR (Susceptible, Infected, Recovered) mathematical model.

  implementation of Stroud et al. is shown Figure 2. The code is divided into three parts: defining the concerns (SIR and Stroud), initializing the parameters, running the simulation. The code for the Aparicio et al. case is divided in a similar way (See Figure 4). The results of the simulations can be seen on Figures 5, 6 and 7 are similar to those of Figures 6 (b), 6 (d) and 6 (f) in

Figure 2 :

 2 Figure 2: Definition of SIR and Stroud concerns.

Figure 3 :

 3 Figure 3: Definition of the scenario's parameters. used quite generally.The Stroud concern is then quite simple: it merely gives a value to the it gen parameter (lines 16-18). This concern is separate from the SIR in the sense that it is a distinct syntactic structure. The SIR concern can be reused without the Stroud concern.One issue is the fact that the SIR concern was not reused in the SIYR one for the implementation of Aparicio et al's approach. Factoring out commonalities between the core epidemic concerns (SIR, SEIR, SIYR...) that define the epidemic status is a bit involved and does not always simplify models.It might be tempting to introduce some kind of inheritance between models (using the Kendrick DSL) but the benefits are not impressive as far as core concerns are considered. In low-level Kendrick it is possible to copy SIR into SIYR, add a Y status, redefine the transitions and so on, but this is not clearly simpler than redefining SYIR from scratch as we did. There are only a few kinds of core concerns so that redefin-

Figure 4 :

 4 Figure 4: Definition of an Aparicio concern.

Figure 5 :

 5 Figure 5: Daily incidence for the homogeneous, Stroud and Aparicio approaches on a Poisson network of 10000 nodes with a mean degree of 10.

Figure 6 :

 6 Figure 6: Daily incidence for the homogeneous, Stroud and Aparicio approaches on an exponential network of 10000 nodes with a mean degree of 10.

Figure 7 :

 7 Figure 7: Daily incidence for the homogeneous, Stroud and Aparicio approaches on an scale-free network of 10000 nodes with a mean degree of 10.

  comparing the simulation results from homogeneous compartmental models with the models ofStroud et al. and of Aparicio et al. with those obtained by[START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] for Poisson, exponential and scale-free networks.4 . The homogeneous model is a special case of Stroud et al.'s model with ν = 1.

The most obvious difference with the Template pattern is that there is no object-oriented inheritance involved here but there was of course no such inheritance either in the original patterns from Alexander.

Caveat: this means the proportion of infectious individuals among the individuals a susceptible individual meets. Separation of Concerns in Extended Epidemiological Compartmental Models

Incidence is the number of new infections per day, sometimes normalized by dividing by some value.[START_REF] Bansal | When individual behaviour matters: homogeneous and network models in epidemiology[END_REF] do not give which value they chose for the denominator we thus did not normalize incidence.

Python and Kendrick code of our experiments are available online: https://github.com/KendrickOrg/ BIOINFORMATICS22-code Separation of Concerns in Extended Epidemiological Models

BIOINFORMATICS 2022 -13th International Conference on Bioinformatics Models, Methods and Algorithms

ACKNOWLEDGEMENTS

The authors would like to thank the anonymous referees for their help in improving this paper.


Charles Prud'homme

Jean-Guillaume Fages

Hakan Mehmet

Satman

Hadrien Cambazard

Arthur Godet

Fabien Hermenier

Narendra Jussien

Dimitri Justeau-Allaire

Tanguy Lapègue

Alexandre

Jimmy Lebrun

Xavier Liang

Arnaud Lorca

Guillaume Malapert

João Pedro Rochart

Schmitt

Mohamed Wahbi

Choco-solver: A Java library for constraint 1 programming 2

Since then, the library has evolved a great deal, but ease of use has always been a guiding 13 principle in its development. The Choco-solver API is designed to reduce entry points to a 14 minimum and thus simplifies modelling for users. The wide variety of constraints available 15 allows the user to describe his problem as naturally as possible. The black-box approach 16 to solving allows everyone to focus on modelling. However, Choco-solver is also open and 17 modifiable. The implementation of new constraints [START_REF] Ouellet | A MinCumulative resource constraint[END_REF] or strategies for 18 exploring the search space (Fages & Prud'Homme, 2017;[START_REF] Li | Failure based variable ordering heuristics for solving CSPs 202 (short paper)[END_REF]) is therefore possible.

19

As a result, Choco-solver is used by the academics for teaching and research, on the other 20 hand it is used by the industry to solve real-world problems.

21

CP in a nutshell

22

Constraint programming provides not only a declarative way for users to describe discrete 23 problems, but also techniques for solving them automatically. In that sense, it is very close 24 to integer linear programming or Boolean satisfaction but is distinguished from them with 25 its high-level modeling language and expressiveness. Actually, one of the richness's of the 26 paradigm lies in the wide variety of constraints it proposes, which are also central to the solving 27 stage. Thus, the objective of CP is twofold: firstly to offer a rich declarative language to 28 describe a combinatorial problem, and secondly to provide techniques for solving the problem Lorca, & Jussien, 2014;[START_REF] Shaw | Using constraint programming and local search methods to solve vehicle 240 routing problems[END_REF], limited 77 discrepancy search [START_REF] Harvey | Limited discrepancy search[END_REF], depth-bounded discrepancy search (Walsh, 78 1997) or hybrid breadth-first search (Allouche et al., 2015).

79

The search process can also be greatly improved by various built-in search strategies such as 80 dom/wdeg (Boussemart et al., 2004) and its ca-cd variant [START_REF] Wattez | Refining constraint weighting[END_REF], activity-based 81 search [START_REF] Michel | Activity-based search for black-box constraint 211 programming solvers[END_REF], failure-based searches [START_REF] Li | Failure based variable ordering heuristics for solving CSPs 202 (short paper)[END_REF], bound-impact 82 value selector (Fages & Prud'Homme, 2017), first-fail [START_REF] Haralick | Increasing tree search efficiency for constraint 188 satisfaction problems[END_REF] These aspects consolidate the place of Choco-solver as an important tool in the CP community.

102

Note that there are a couple of other Java constraint solvers of equivalent maturity, like JaCoP and debugging [START_REF] Le | 199 DirectDebug: A software package for the automated testing and debugging of feature 200 models[END_REF], scheduling [START_REF] Lorca | Using constraint 207 programming for the urban transit crew rescheduling problem[END_REF] and an optimal result is expected within milliseconds. This occurs in quotation systems for 124 sales automation, but also design automation, and system configuration.

  29automatically. In standard use, a user states a problem using variables, their domains (possible 30 values for each variable), and constraints which are called predicates that must hold on the 31 variables. The wide variety of constraints available allows the users to describe their problem 32 as naturally as possible. Each constraint ensures that it holds, otherwise a propagator filters 33 the values that prevent the satisfiability. It is the combination of the selected constraints 34 that defines the problem. The problem is solved by alternating space reduction (usually by a 35 depth-first search) and propagation, thus ensuring the completeness of the approach. This 36 standard usage can be extended in different ways, for example, by hybridisation with local 37 search, Boolean satisfiability, or linear programming techniques. to be used successfully, it is essential to have a library that 40 incorporates the latest advances in the field, while ensuring reliability, performance, and must-have global constraints such as AllDifferent (Régin, 1994) or Cumulative (Aggoun & 59 Beldiceanu, 1993), and include less common even though useful ones such as Tree (Beldiceanu 60 et al., 2005) or StableKeySort (Beldiceanu et al., 2015). In many cases, the Choco-solver 61 API provides various options in addition to the default signature -corresponding to a robust 62 implementation -of a constraint. This allows users to experiment alternative approaches and 63 tune the model to its instance. The users may also pick some existing propagators to compose 64 a new constraint or create their own one in a straightforward way by implementing a filtering 65 algorithm and a satisfaction checker. Many models are available on the Choco-solver website 66 as modelling tutorials. 67 Solving 68 Choco-solver has been carefully designed to offer wide range of resolution configurations 69 and good solving performances. Backtrackable primitives and structures are based on trailing 70 (Aggoun & Beldiceanu, 1990; Reischuk et al., 2009). The propagation engine deals with seven 71 priority levels (Prud'homme, Lorca, Douence, et al., 2014; Schulte & Stuckey, 2008) and 72 manages either fine or coarse grain events which enables to get efficient incremental constraint 73 propagators. 74 The search algorithm relies on three components Propagate, Learn, and Move (Jussien & 75 Lhomme, 2002). Such a generic search algorithm is then instantiated to depth-first search, 76 large neighbourhood search (Prud'homme,

  103 and ACE. Although the performances of these tools are direclty comparable, they are mainly 104 distinguished by the functionalities in terms of modelling and resolution. Among the most 105 noteworthy, Choco-solver allows integrating constraints which are based on graph variables 106 or real variables, or it can parse both MiniZinc and XCSP3 input files. is used by the industry to solve many real-world problems, such as cryptanalysis 109 (Delaune et al., 2021), construction planning (Cañizares et al., 2022), automated testing 110

125

  In most of those cases, experts set advanced solution techniques, such as specific search 126 strategies, Large Neighborhood Search or ad hoc global constraints, in order to improve 127 their model. Choco-solver is flexible enough to allow such fine-tuning to tackle challenging 128 problems. With the right approach, Choco-solver can come up with nearly optimal solutions 129 in a very short time. .-G., Chabert, G., & Prud'Homme, C. (2013). Combining finite and continuous solvers D R A F T Régin, J.-C. (1994). A filtering algorithm for constraints of difference in CSPs. Proceed-224 ings of the Twelfth National Conference on Artificial Intelligence (Vol. 1), 362-367.

  , and many

	88
	89	• optimizing one or more objectives
		• solving on one or more thread.
	91
	92	Community tools integration
	93	Several useful extra features are also available such as parsers to XCSP3 format and MiniZinc
	94	format. Choco-solver is also embedded in PyCSP3, a Python library for modeling and solving
	R A combinatorial constrained problems. In addition to offering alternatives to modelling in Java, it 95 also allows participation in the two major constraint solver competitions : MiniZinc Challenge 96 F T and XCSP3 Competition.
	D
	83

others. Standard restart policies are also available, to take full advantage of the learning 84 strategies. Problem-adapted search strategies are also supported. 85 One can solve a problem by 86 • simply checking satisfaction 87 • finding one or all solutions 90

The search process itself is observable and extensible.

97

Finally, although it is originally designed to solve discrete mathematical problems, Choco-98 solver also supports natively real variables and constraints, and relies on Ibex-lib to solve the 99 continuous part of the problems

(Fages et al., 2013)

. Equally, a Boolean satisfaction solver 100 (based on MiniSat) is integrated to offer better performance on logical constraints. 101

  , level design(Smith et al.,

	111
	112	2011), placement service (Ait Salaht et al., 2019) and many others. In the Railway industry,
	113	Choco-solver is used to optimize the rail traffic of French train stations, on a daily basis. It
	114	is also used at a higher level to run simulations for capacity and maintenance planning. The
	115	underlying mathematical problems, involving multi-objective functions with millions of variables
	116	and constraints, are solved within seconds by the solver. In the defense sector, Choco-solver
	117	is used for various applications. One publicly known is the long-term maintenance planning of
	118	the Mirage 2000 fleet (Grazzini, 2019). This planning and scheduling problem includes various
	119	capacity constraints, load balancing, and mission covering in an over-constrained environment.
	120	A fleet of hundred aircraft can be planned by Choco-solver for the next fifteen years within
	121	a few minutes. Another type of industrial application of Choco-solver is Configuration
	122	(Charpentier et al., 2021) where the solver is used to solve dynamical constraint models. The
	123	underlying mathematical problems are generally simpler than the ones in planning applications

Prud'homme, & Fages. (2022). Choco-solver: A Java library for constraint programming. Journal of Open Source Software, 0(0), 4708. https://doi.org/10.xxxxxx/draft.

Prud'homme, & Fages. (2022). Choco-solver: A Java library for constraint programming. Journal of Open Source Software, 0(0), 4708. https://doi.org/10.xxxxxx/draft.

Acknowledgements