Ravikishore Kommajosyula

Guillaume Bois
email: guillaume.bois@cea.fr

Alan Burlot
email: alan.burlot@cea.fr

Maria-Giovanna Rodio
email: mariagiovanna.rodio@cea.fr

Benjamin Cariteau
email: benjamin.cariteau@cea.fr

Emilio Baglietto
email: emiliob@mit.edu

A CRITERION TO CLASSIFY VOID FRACTION PROFILES IN BUBBLY FLOWS BASED ON AVERAGED FLOW QUANTITIES FOR USE IN SUBCHANNEL CODES

Keywords: Bubbly flow, interfacial forces, lateral migration, lift inversion

Hydrodynamics of multiphase flows can have a large influence on the overall design and operation of nuclear reactors. Interfacial forces drive bubbles towards or away from the wall, resulting in wall-peaked or core-peaked void fraction profiles. This change has a dramatic effect on the averaged flow quantities such as wall shear stress, velocity profiles and turbulence levels. Subchannel codes lack information of the underlying flow profiles, and rely on closure models to impose the correct averaged flow quantities.

In this work, we propose a criterion to classify bubbly flows as wall-peaked or core-peaked, based on the turbulence level, and the ratio of surface tension to buoyancy forces. The criterion has been developed leveraging a large set of adiabatic air-water bubbly flow experiments, and can be used in subchannel codes to identify the underlying void fraction profile and apply the appropriate closure model. The criterion shows low sensitivity when applied to different operating fluids, and thus can be extended into a generalized formulation that can be applied to all adiabatic bubbly flows. An experiment has also been proposed to confirm the classification criterion at reactor conditions, using water with additives at atmospheric pressure to mitigate the high cost of high-pressure experiments. The new criterion proposed in this work, along with the improved understanding from new experiments, will allow us to develop more physically consistent closure models for subchannel codes.

INTRODUCTION

Predicting the behavior of two-phase bubbly flows is of interest in a wide range of engineering applications. It is particularly important for nuclear reactor safety analysis to develop simulation tools that accurately represent the physics of two-phase flows. Such simulation tools allow us to design and operate better nuclear reactors with higher efficiencies, while respecting the safety margins set by the regulator, thus making reactors more cost-effective.

There are several simulation methodologies available to perform Nuclear Reactor Safety analysis, which can be classified as shown in Figure 1. System codes that perform transient analysis at the level of the whole reactor are shown at the extreme right. To its left are Component (Subchannel) codes, that perform simulations at the level of individual components. The component being simulated is represented as a series of control volumes with averaged flow properties within each control volume (assembly or subchannel). To its left are Computational Multiphase Fluid Dynamics (CMFD) codes, that solve the averaged conservation equations in the two-fluid one-pressure Eulerian-Eulerian framework, to get the flow profiles within an element. Direct Numerical Simulation codes, that explicitly track individual bubbles and solve for the instantaneous flow profiles are shown on the extreme left. There is an increase in the computational power requirement as we traverse from right to left, thereby limiting the scale of problems that can be addressed at finer scales of resolution. On the other hand, there is an increased modeling effort as we go towards the right as we need more closure relations to account for the effect of the underlying physics. Finer resolution methods (on the left) are used to better understand the physics that need to be modeled as we go to more abstract representations of the system on the right, and this process is referred to as upscaling of information.

In this paper, we focus on simulating bubbly flow in component codes, which is a problem of great interest and occurs in a variety of nuclear reactor safety evaluations. In component scale codes, the flow domain is modeled as a series of control volumes along the flow that span the cross-section of the flow. Solution variables are generally averaged over the whole cross-section, consequently information regarding the flow or void-fraction profiles are not available in component scale codes and the effect of the underlying flow profile must be modeled. For example, an additional closure models that imposes a wall friction coefficient is required to compute the correct pressure drop along the flow. In the case of bubbly flows, it has been observed experimentally [START_REF] Tomiyama | Transverse migration of single bubbles in simple shear flows[END_REF][START_REF] Hibiki | Experimental study on interfacial area transport in bubbly two-phase flows[END_REF] that the interfacial forces acting on the bubbles drive them towards or away from the wall, resulting in wall-peaked or core-peaked void fraction profiles depending on the flow conditions. This transition in void fraction profiles has a dramatic effect on averaged flow quantities such as the wall shear stress, velocity profiles and turbulence levels. This presents us a problem in simulating bubbly flows in component codes due to the lack of: i. information about the underlying void fraction profiles ii.

closure models for flow parameters that account for the void fraction profiles

In this work, we propose a criterion that can be used in component codes to classify bubbly flows based on their void fraction profile as wall-peaked or core-peaked. This criterion will form the basis for developing closure models for flow parameters in component scale codes, that account for the underlying void fraction profile. The physics governing the lateral redistribution of voids in bubbly flow is discussed in Section 2. The methodology used to develop the criterion to classify bubbly flows is described in Section 3. An approach to extend the classification criterion to bubbly flows at reactor conditions is discussed in Section 4, and is followed by conclusions and directions for future work in Section 5.

LATERAL REDISTRIBUTION OF VOIDS IN BUBBLY FLOW

The phenomenon of lateral redistribution of void in bubbly flow due to turbulence and interfacial forces acting on the bubbles was introduced in Section 1. We require a better understanding of the physics governing the lateral redistribution of voids, to develop a criterion to classify bubbly flows based on their void fraction profile as wall-peaked or core-peaked. The required physical understanding and related work done by previous researchers is presented in this section.

The different forces acting on the bubble can be studied from the the conservation of momentum, written separately for each phase as below

where 𝛼 𝑘 represents the void fraction of phase 𝑘, 𝑈 𝑘,𝑖 denotes the velocity of phase 𝑘 in direction 𝑖, 𝜈 represents the viscosity of the fluid, and 𝑀 𝑘 represents the interfacial forces acting on phase 𝑘. The interfacial forces act on the boundary of the phase and can be expressed as a sum of forces corresponding to different physical effects.

𝑀 = 𝐹 𝐷𝑟𝑎𝑔 + 𝐹 𝐿𝑖𝑓𝑡 + 𝐹 𝑇𝑢𝑟𝑏𝑢𝑙𝑒𝑛𝑡𝐷𝑖𝑠𝑝𝑒𝑟𝑠𝑖𝑜𝑛 + 𝐹 𝑊𝑎𝑙𝑙𝐿𝑢𝑏𝑟𝑖𝑐𝑎𝑡𝑖𝑜𝑛 (2)
Amongst the interfacial forces listed above, the lift force is the only force that can lead to accumulation of voids at the wall, or away from the wall. The drag force acts against the direction of flow and thus does not cause a lateral migration of voids. The turbulent dispersion force acts in equal measure in the directions towards and away from the wall, resulting in smoothening the peaks in the void fraction profile (diffusive effect) -therefore, it does not lead to accumulation of voids at the wall or away from it. The wall lubrication force is a fictitious force that acts only at the wall to impose the correct void fraction behavior in the vicinity of the wall. The physics governing the lateral redistribution of voids in bubbly flows can thus be understood by studying the lift force acting on the bubble. The lift force is defined as positive when it pushes the bubble towards the wall and negative when it acts away from the wall. A positive lift force results in a wall-peaked profile and a negative lift force leads to a core-peaked profile as shown in Figure 2.

One of the first understanding of the lift force acting on the bubbles comes from the work of Tomiyama et. al. [START_REF] Tomiyama | Transverse migration of single bubbles in simple shear flows[END_REF] based on their experimental observations of injecting single bubbles in a shear driven laminar flow. It was observed that the deformability of the bubble influenced the lateral migration of the bubble as it rose up the channel. The deformability of the bubble was quantified using the Eötvös number (𝐸𝑜), which is defined as the ratio of the buoyancy to surface tension forces acting on the bubble, and has the following expression

𝐸𝑜 = Δ𝜌𝑔𝐷 𝐵 2 𝜎 ( 3
)
where Δ𝜌 is the difference between the liquid and gas densities, 𝑔 is the acceleration due to gravity, 𝐷 𝐵 is the diameter of the bubble, and 𝜎 is the surface tension of the liquid. The Eötvös number is a measure of the relative importance of buoyancy to surface tension forces. For higher Eötvös numbers, the buoyancy force dominates over the surface tension force, making the bubble interface more deformable. The results from the experiments were used to develop a correlation for the lift force, which is widely used in the current CMFD codes. The critical Eötvös number above which the lift coefficient transitions from positive to negative was defined as 𝐸𝑜 𝑐 = 4.59 in the correlation. This change in the sign of the lift coefficient from positive to negative when the Eötvös number exceeds a critical value, is referred to as lift inversion. The void fraction profile experiences a transition from wall-peaked to core-peaked when the Eötvös number exceeds the critical Eötvös number.

Recent work from Sugrue [START_REF] Sugrue | A robust momentum closure approach for multiphase computational fluid dynamics applications[END_REF] has focused on developing a closure model for the lift force acting on bubbles applicable to turbulent flow. Experimental results from Hibiki et. al. [START_REF] Hibiki | Experimental study on interfacial area transport in bubbly two-phase flows[END_REF], and Direct Numerical Simulations (DNS) results from Lu et. al. [START_REF] Lu | Effect of bubble deformability in turbulent bubbly upflow in a vertical channel[END_REF] and Feng et. al. [START_REF] Feng | Evaluation of bubble-induced turbulence using direct numerical simulation[END_REF] were used in their work to gain an improved understanding of the lift force on a group of bubbles in turbulent flows. In comparison to shape induced transition applicable to laminar flow conditions, it has been observed that an increase in the level of turbulence in the flow enhances the surface mobility of the bubbles. This results in a transition to corepeaked void fraction profile at lower Eötvös numbers than that predicted by Tomiyama et. al. [START_REF] Tomiyama | Transverse migration of single bubbles in simple shear flows[END_REF]. The effect of enhanced surface mobility resulting in a lift inversion at lower Eötvös numbers is quantified using a non-dimensional Wobble number as shown below where 𝑘 is the turbulent kinetic energy of the liquid and 𝑢 𝑟𝑒𝑙 is the relative velocity between the two phases. This result suggests that the physics behind the transition of the void fraction profiles from wallpeaked to core-peaked is governed by the deformability of the bubbles and the level of turbulence in the flow.

𝑊𝑜 = 𝐸𝑜. 𝑘 𝑢 𝑟𝑒𝑙 2 (4)

TRANSITION CRITERION FOR BUBBLY FLOWS CLASSIFICATION

In this section, we present the methodology used to develop the criterion to classify bubbly flows as wallpeaked or core-peaked based on the void fraction profile. The first part of the section focuses on developing the criterion using adiabatic air-water experiments. The second part focuses on testing the validity of the developed criterion to different operating fluids.

Transition Criterion derivation from Adiabatic Air-Water experiments

As discussed in Section 2, the interfacial forces on the bubble push the bubbles towards or away from the wall, resulting in wall-peaked or core-peaked void fraction profiles. In order to isolate the effect of interfacial forces on the bubbles, we use data from adiabatic experiments with air and water as working fluids. The list of adiabatic air-water experiments used to develop the criterion are listed in Table I. All the experiments listed were performed at atmospheric pressure by injecting air bubbles into the flow. The choice of experimental databases was restricted by the availability of data in open literature. The hydraulic diameter varies by almost an order of magnitude between the different experiments, thereby spanning a wide range of flow conditions and liquid turbulence levels.

Experiment Number of data sets

Hydraulic Diameter (𝑫 𝑯 , 𝒎𝒎) Hosokawa Tomiyama [START_REF] Hosokawa | Effects of bubbles on turbulence properties in a duct flow[END_REF] 4 25.4

Liu Bankoff [START_REF] Liu | Structure of air-water bubbly flow in a vertical pipe-I. Liquid mean velocity and turbulence measurements[END_REF] 42 38 Hibiki [START_REF] Hibiki | Experimental study on interfacial area transport in bubbly two-phase flows[END_REF] 16 50.8 Wang [START_REF] Wang | 3-D turbulence structure and phase distribution measurements in bubbly two-phase flows[END_REF] 12 57.15 Shawkat [START_REF] Shawkat | Bubble and liquid turbulence characteristics of bubbly flow in a large diameter vertical pipe[END_REF] 34 200

Each experiment listed in Table I provides the inlet superficial velocities of water and air, bubble diameters and the void fraction profiles, in addition to other measured quantities such as the velocity profiles and in some cases the velocity fluctuations. Following the discussion in the previous section, we understand that the liquid turbulence level and bubble deformability are the main drivers for the lateral migration of void. We compute the non-dimensional numbers that quantify the liquid turbulence level and the bubble deformability, namely the liquid Reynolds number (𝑅𝑒 𝑙 ), and the Eötvös number (𝐸𝑜). The Eötvös number is computed using the expression from Equation 3, and the liquid Reynolds number is defined as

𝑅𝑒 𝑙 = 𝜌 𝑙 𝑗 𝑙 𝐷 𝐻 𝜇 𝑙 𝛼 𝑙 (5)
where 𝜌 𝑙 is the liquid density, 𝑗 𝑙 is the superficial velocity of the liquid, 𝐷 𝐻 is the hydraulic diameter of the pipe, 𝜇 𝑙 is the viscosity of the liquid, and 𝛼 𝑙 is the liquid fraction. The Reynolds number is the ratio of the inertial to the viscous forces in the flow, and thus a larger Reynolds number is indicative of a higher turbulence level in the flow.

The measurements of void fraction profiles from the experimental data are used to classify each data set as wall-peaked or core-peaked by visual inspection. In addition, the liquid Reynolds number and the Eötvös number are computed for each set using the reported values of the liquid and gas superficial velocities and the measured values of the bubble diameter and void fraction. The different experimental sets are plotted in Figure 3 with the Eötvös number in the X-axis and the Reynolds number in the Y-axis. The different experimental sets are differentiated based on the void fraction profile, with the wall-peaked profiles plotted in red and the core-peaked profiles plotted in blue.

The experimental sets of adiabatic air-water experiments plotted in Figure 3 show a clear way to classify the wall-peaked and core-peaked void fraction profiles. We observe that the critical Eötvös number at which there is a transition from wall-peaked to core-peaked profiles, reduces as the Reynolds number increases. This is in agreement with the work from Sugrue [START_REF] Sugrue | A robust momentum closure approach for multiphase computational fluid dynamics applications[END_REF] who proposes that the turbulence enhances the surface mobility of the bubble, leading to the transition to a core-peaked profile at lower Eötvös number. The classification boundary for the void fraction profile transition is characterized as a Critical Eötvös number (𝐸𝑜 𝑐 ) using a least square fit shown in Equation 6. The void fraction profile of the flow is wall-peaked when the Eötvös number is less than the Critical Eötvös number and transitions to a corepeaked profile when the Eötvös number exceeds the Critical Eötvös number.

𝐸𝑜 𝑐 = 𝑚𝑎𝑥(0, 𝑚𝑖𝑛(4.59, 16.4 -3 × log 10 𝑅𝑒 𝑙 ))

The lower bound of the transition criterion is set to zero for the cases with very high liquid Reynolds number, to prevent the criterion from predicting unphysical negative Eötvös numbers. It indicates that the transition becomes independent of the Eötvös number (and therefore of the bubble deformability) when the background turbulence in the liquid is large enough. On the other hand, the upper bound of the transition criterion is set to 4.59 for the cases with low liquid Reynolds number where the observations from experiments of single bubbles rising in a shear driven laminar flow from Tomiyama et. al. [START_REF] Tomiyama | Transverse migration of single bubbles in simple shear flows[END_REF] becomes relevant.

Testing the validity of the transition criterion for different operating fluids

A transition criterion to classify bubbly flows based on the void fraction profile as wall-peaked or corepeaked has been developed in Section 3.1. The criterion was developed based on adiabatic air-water experiments performed at atmospheric pressure. The choice of experimental databases was restricted by the availability of such data in open literature. In this section, we test the transition criterion with experimental data involving different operating fluids and flow conditions, to evaluate its applicability to reactor conditions. The transition criterion is tested on the CHAPTAL [START_REF] Mimouni | Combined evaluation of bubble dynamics, polydispersion model and turbulence modeling for adiabatic two-phase flow[END_REF] and TOPFLOW [START_REF] Prasser | The multipurpose thermalhydraulic test facility topflow: an overview on experimental capabilities, instrumentation and results[END_REF] experiments, and the corresponding results are presented below. The choice of experiments was restricted by the availability of data in open literature.

CHAPTAL experiment

The CHAPTAL experiment [START_REF] Mimouni | Combined evaluation of bubble dynamics, polydispersion model and turbulence modeling for adiabatic two-phase flow[END_REF] is a part of the NEPTUNE project. Adiabatic high-pressure bubbly flow experiments were performed in a 5 m long vertical pipe with an inside diameter of 38 mm. The experiments were performed at an operating pressure of 9 bars with water as the working fluid and gas bubbles made of R116 refrigerant composing of the vapor phase. The R116 bubbles are injected at the wall and measurements of the liquid and gas void fractions, velocities, and liquid velocity fluctuation profiles are measured at three different planes along the pipe. The flow conditions were chosen to match the non-dimensional numbers that are representative of reactor operating conditions [START_REF] Mimouni | Combined evaluation of bubble dynamics, polydispersion model and turbulence modeling for adiabatic two-phase flow[END_REF].

The applicability of the transition criterion to the CHAPTAL experiment is evaluated here. The measured void fraction profiles are used to classify the flow conditions in the experiment as wall-peaked or corepeaked. We observe that the measured void fraction profiles are not fully developed between the last two measuring planes. Moreover, some of the cases reported in the experiment exhibit transitory behavior with void fraction profiles that switch between wall-peaked and core-peaked at different measurement planes. This suggests that the flow conditions explored in the experimental campaign are close to the transition boundary. The liquid Reynolds number and Eötvös number for the different experimental cases are computed using the flow measurements and are used to plot the data along with the classification boundary, in Figure 4. The experimental cases which exhibit a change in behavior between different sections are categorized based on the measurements at the last measurement plane due to lack of additional information.

The transition criterion plotted in Figure 4 has been developed in Section 3.1 based on data from adiabatic air-water bubbly flow experiments. The cases considered in the CHAPTAL experiment are located very close to the transition boundary as shown in the figure. This suggests that the transition criterion proposed has a small sensitivity to fluid properties. This is also in agreement with our initial observations about the CHAPTAL experiments that the void fraction profiles are not fully developed and exhibit transitory behavior.

TOPFLOW experiment

TOPFLOW [START_REF] Prasser | The multipurpose thermalhydraulic test facility topflow: an overview on experimental capabilities, instrumentation and results[END_REF] is a multipurpose thermohydraulic test facility located in Helmholtz Zentrum Dresden Rossendorf (HZDR), Germany. The experiments comprise of a large range of flow conditions spanning several flow regimes and thermal hydraulic conditions. In this work, two experimental sets for adiabatic steam-water bubbly flow at 65 bars were used to test the transition criterion. The cases corresponding to a liquid superficial velocity of 𝑗 𝑙 = 1 𝑚/𝑠 and gas superficial velocity of 𝑗 𝑔 = 0.22 𝑚/𝑠 in a pipe of diameter 𝐷 𝐻 = 200 𝑚𝑚 were considered in this work. The measured void fraction and bubble diameter profiles were used to classify the profiles and compute the Reynolds and Eötvös numbers. The nondimensional numbers for the case with 𝑗 𝑙 = 1 𝑚/𝑠 and 𝑗 𝑔 = 0.22 𝑚/𝑠 were computed as 𝑅𝑒 𝑙 = 1.83 × 10 6 and 𝐸𝑜 = 3.359. Comparing with the transition boundary characterized in Equation 6, we observe that the computed Eötvös number is greater than the critical Eötvös number, thus predicting a core-peaked void fraction profile. The measured void fraction profile [START_REF] Prasser | The multipurpose thermalhydraulic test facility topflow: an overview on experimental capabilities, instrumentation and results[END_REF] shows that the profile is indeed core-peaked. This observation supports the claim made in Section 3.2.1 that the transition criterion has a low sensitivity to fluid properties and can be safely applied to flow conditions that are far from the transition boundary.

EXTENDING THE VALIDITY OF THE TRANSITION CRITERION

A transition criterion for classifying bubbly flows based on the void fraction profile as wall-peaked or core-peaked has been developed in Section 3.1. The criterion was developed based on adiabatic air-water bubbly flow experiments performed at atmospheric pressure. To ascertain the applicability of the transition criterion to varying fluids and flow conditions, the method was applied to lower density ratio experimental databases in Section 3.2. The major finding of the evaluation was that the transition criterion has a small sensitivity to fluid properties and can be applied when the flow conditions are far from the transition boundary. However, due to lack of data in open literature, not much can be said about the applicability of the criterion when the flow conditions are in proximity of the transition boundary. In this section, we propose a methodology to extend the transition criterion to general fluids and flow conditions with applicability to Nuclear Reactor Safety evaluation in mind.

The transition criterion developed in Section 3.1 is based on adiabatic air-water experiments at atmospheric pressure and accounts for the level of turbulence in the flow and the deformability of the bubbles. In addition, the criterion should include a dependency on the properties of the fluid to ensure general applicability. Existing literature was reviewed to identify ways in which previous researchers approached the problem of characterizing bubbly flows. The Clift's cartography [START_REF] Clift | Bubbles, drops, and particles[END_REF] uses Morton number, which depends only on fluid properties to classify different bubble regimes. The Morton number was found to be the most promising candidate that can be added as a parameter to the transition criterion. The Morton number is defined as

𝑀𝑜 = 𝑔𝜇 𝑙 Δ𝜌 𝜌 𝑙 2 𝜎 3 ( 7
)
where 𝑔 is the acceleration due to gravity, 𝜇 𝑙 is the viscosity of the liquid, Δ𝜌 is the difference between the liquid and gas densities, 𝜌 𝑙 is the liquid density, and 𝜎 is the surface tension of the liquid. With the addition of the dependency on the Morton number, the classification criterion would be modified as shown below

𝐸𝑜 𝑐 = 𝑓(𝑅𝑒 𝑙 , 𝑀𝑜) (8)
where 𝑓 is an arbitrary function that is yet to be defined. The exact functional form of 𝑓 can be defined based on data from experiments or simulations that characterize the transition boundary for different fluids spanning a range of flow conditions. A computational study to characterize the transition boundary is not possible at this time due to the lack of models that can accurately describe the lateral migration of void for general fluids. Therefore, we propose an experimental study to characterize the void fraction profile transition boundary for varying fluid properties.

Designing an experiment to characterize the Transition Criterion

In this section, we propose a set of experiments to characterize the transition criterion for varying fluid properties. The dependency of the transition criterion on fluid properties is assumed to be captured by variation in Morton number. The experiments are to be conducted with water as the working fluid and air bubbles are injected into the flow. The temperatures of the working fluid are controlled to maintain adiabatic conditions. The Morton number of the flow with air bubbles in water at atmospheric pressure at a temperature of 20° C is 𝑀𝑜 = 1.6 × 10 -11 . The Morton number of water-steam flow at reactor conditions is 𝑀𝑜 = 5 × 10 -14 . We wish to study the variation of the void fraction profile transition boundary for a range of Morton numbers. The variation in Morton number is achieved by raising the temperature of the water or adding glycerol, to reduce or increase the Morton number of the flow. This would allow us to perform the experiment at atmospheric pressure while exploring a broad range of Morton numbers close to the ones relevant at reactor conditions. The range of Morton numbers from 10 -13 < 𝑀𝑜 < 10 -9 can be explored using the methodology proposed in this work. This should give us a trend of the behavior with changing Morton numbers that can be used to study the effect of fluid properties on the transition boundary. The flow conditions and injector geometry should be controlled to explore ranges of Reynolds and Eötvös numbers that are required to sufficiently characterize the Transition Boundary. The range of flow conditions and fluid properties that are meant to be explored in the experiment are shown in Figure 5.

To explore the range of flow conditions that will sufficiently characterize the Transition Boundary, we aim to explore a range of liquid Reynolds numbers spanning from 10 4 < 𝑅𝑒 𝑙 < 10 6 . The liquid Reynolds number can be controlled by varying the superficial velocities of the liquid and the gas at the inlet. The Eötvös number cannot be directly controlled as it depends on the bubble diameter, which evolves with the flow. It is proposed to use several injector geometries and sizes to be able to inject bubbles of different sizes thus allowing us to explore different Eötvös numbers. The range of Reynolds and Eötvös numbers we wish to explore in the experiment are highlighted in Figure 5. The dependency on flow properties is characterized by performing the experiment at different Morton numbers. In addition, we propose to build test sections with circular and rectangular cross sections with several aspect ratios, to study the effect of flow geometry on the lateral distribution of voids in bubbly flow. A summary of the experimental parameters that are varied, and the effects that we intend to study in the experiment is presented in Table II

CONCLUSIONS

Interfacial forces in bubbly flows drive the bubbles towards or away from the wall resulting in wallpeaked and core-peaked void fraction profiles. In this work, we developed a criterion based on adiabatic air-water experimental data that can be used in subchannel codes to classify the void fraction profile as wall-peaked or core-peaked, based on the level of turbulence in the flow and the bubble deformability. The criterion forms a basis for developing closure models for subchannel codes to account for the underlying void fraction profiles to impose the correct averaged flow quantities. The developed criterion shows small sensitivity when applied to experimental data with different operating fluids and can be applied to flow conditions that are far from the transition boundary.

An approach to extend the applicability of the transition criterion to different fluids has been proposed by adding a dependency on the Morton number. An experimental campaign has been proposed to study the classification boundary for varying fluid properties, using water with additives at atmospheric pressure as the working fluid. We rely on adiabatic experiments to isolate the influence of interfacial forces and turbulence on the void fraction profile. Decoupling thermal aspects from flow dynamics is essential for improving the existing models and eliminate possible sources of error compensation. It also helps simplify the experimental conditions thus allowing us to explore a wide parametric range of interest. The new criterion proposed in this work along with the improved understanding from new experiments, will allow to develop more physically consistent closure models for subchannel codes.

Figure 1 .

 1 Figure 1. Classification of simulation methodologies used in nuclear reactor safety analysis. The computational power requirement increases as we go towards the left of the image as we resolve more physics. On the contrary, we model more physics as we go towards the right of the image, leading to increased modeling effort.

Figure 2 .

 2 Figure 2. Illustration of wall-peaked (in red) and core-peaked (in blue) void fraction profiles in a bubbly flow. A positive lift force on the bubbles leads to a wall-peaked void fraction profile and a negative lift force leads to a core-peaked profile.

Figure 3 .

 3 Figure 3. Level of Turbulence in the flow (measured as the liquid Reynolds number) plotted against bubble deformability (measured as the Eotvos number) for the experimental databases listed in Table I. The points are colored as Red and Blue based on the void fraction profile being wall-peaked and core-peaked respectively. The transition boundary developed in this work to classify bubbly flows based on the void fraction profile is plotted as a Black line (see Equation6).

Figure 4 .

 4 Figure 4. Level of Turbulence in the flow (measured as the liquid Reynolds number) plotted against bubble deformability (measured as the Eotvos number) for the CHAPTAL experiment. We can observe that all the flow conditions considered in the CHAPTAL experiment lie very close to the transition boundary

Figure 5 .

 5 Figure 5. Range of flow parameter and fluid parameters to be explored in the proposed experiment to characterize the transition boundary for varying fluid properties. The highlighted region on the left shows the range of liquid Reynolds number and Eotvos number that need to be considered. The figure on the right shows how different Morton numbers can be explored using water as a working fluid at atmospheric pressure

Table I . Adiabatic Air-Water experimental data used to develop the classification criterion

 I

  .

	Experimental parameter that is varied	Intended effect we wish to study
	Liquid and gas flow rate	Level of turbulence in the flow (Reynolds number)
	Gas flow rate and Injector geometry	Void fraction, bubble size and Eötvös number
	Adding Glycerol to water	Increase the Morton number
	Increasing the temperature of water	Reduce the Morton number
	Test sections with circular and	Study the effect of geometry on
	rectangular cross sections	lateral distribution of void

The experiments are currently being designed at Den-Service de thermo-hydraulique et de mécanique des fluides (STMF), CEA. These experiments will allow us to study the variation in the transition boundary for different fluid properties. The experimental data would allow us to develop an improved criterion that

Table II . Adiabatic Air-Water experimental data used to develop the classification criterion

 II


L Barbot

D Fourmentel

G De Izarra

C Destouches

J-F Villard

Y Moline

H Hamrita

MONACO v2: Multipurpose and Integrated Data Acquisition System for On-line Neutron and Gamma Measurements

Keywords: Neutron instrumentation, Neutron acquisition system, Gaseous detectors, Ion chamber, Fission chamber, Selfpowered neutron detectors, SPND, FPGA, Research reactor

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

I. INTRODUCTION

ONSIDERING local neutron flux measurement techniques in nuclear research reactors environments in addition with reactor command control, online gaseous detectors are suffering from the lack of up-to-date and integrated signal acquisition system on the nuclear instrumentation market. CEA needs for research reactor neutron field characterization led to the development of a multipurpose and integrated data acquisition system for online neutron and gamma measurements called MONACO, standing for 'Multichannel Online Neutron Acquisition in Campbell mOde'. After two years of development, this paper presents the recent second version [START_REF] Thevenin | Digital Real-Time Multiple Channel Multiple Mode Neutron Flux Estimation on FPGAbased Device[END_REF] [START_REF] Barbot | On line neutron flux mapping in fuel coolant channels of a research reactor[END_REF] features and the validation of two MONACO v2 prototypes in the Slovenian TRIGA Mark II reactor. Y. Moline and H. Hamrita are with the CEA, LIST, Sensors and Electronics Laboratory, Saclay, F-91191 Gif sur Yvette, France (e-mail: yoann.moline@cea.fr).

II. CEA DEVELOPMENT

A. Context

This CEA project aims at improving the neutron and gamma sensor signal processing during in-core neutron and gamma flux measurements in nuclear reactors. In this environment, two kinds of radiation detectors are commonly considered for online measurements: self-powered detectors and gaseous detectors. This development project is focusing particularly on the latter, where detectors are called 'ion chambers' for gamma flux measurements and 'fission chambers' for neutron flux measurements (a fissile coating on one electrode which renders it sensitive to neutrons). The intended improvement proposes to widen the range of operation of these detectors, facilitating their implementation and signal acquisition as well as the analysis of delivered signals.

During an axial and radial core mapping campaign, neutron flux levels are spread over several decades, meaning fission chambers operated successively in multiple modes. Operators, then, usually have to resort to a high number of different electronics to perform preliminary detector tests, detector calibrations and actual signal acquisitions.

B. Neutron gaseous detector operation

Under irradiation, neutrons induce emission of heavy fission products which ionize the filling gas (i.e. generate electron-ion pairs) between the two electrodes. The signal at the output of the detector results in current pulses.

Considering the neutron flux conditions in the core of nuclear reactors, fission chambers are ran in three different operating modes: pulse, current and fluctuation modes. Pulse mode is used at low to moderate neutron flux levels, where pulses (with typical width of a few tens of nanoseconds) are processed individually. At higher neutron flux, pulses may overlap up to the point of generating a mean current, which corresponds to the current mode. In the intermediate mode (fluctuation mode or Campbell mode [START_REF]Wide range neutron detection system[END_REF]), where pulses are piling-up increasingly), the signal is assimilated to a noise superimposed to the mean current.

Because of this 'Poisson' noise, higher order moments of the signal are related to the neutron flux using the Campbell theorem. In our case, the second order moment (i.e. variance of the signal) is used to estimate the incident neutron flux.

C

These modes allow such a detector to operate on a wide neutron flux range from 1.10 +5 to 1.10 +15 neutrons cm -2 .s -1 . [START_REF] Barbot | Final qualification of an industrial wide range neutron instrumentation in the OSIRIS MTR reactor[END_REF].

In addition to fission chamber, gamma ion chambers are processed using the single current mode.

C. New acquisition system requirement

This development tends to ease the implementation of ion and fission chambers as part of in-core instrumentation, gathering all required data acquisition systems in one, including a high voltage module for detector biasing, in order to cover a wide range of neutron flux levels. The CEA MONACO v2 system technical specifications starts from generic and global definitions to highly described specific features. It is a transportable four independent channel acquisition system with a high immunity to electromagnetic disturbances as well as required high reliability level and measurement reproducibility using a wide range of gaseous detectors with output signal varying in the 0 -1mA current range, 1µA -10 µA pulse amplitudes and 20ns -200ns pulse widths. Each fission chambers is plugged to a single connector and the implemented operating modes run constantly in parallel.

The MONACO v2 system is unique as it integrates all the operator-required features in one module: four independent 0 -+1000V high voltage power supply, automatic generation of saturation curves, automatic generation of pulse discrimination curves. It includes a detector pulse characterization (mean amplitude and mean area) using the embedded oscilloscope module, the pulse mode acquisitions in count rate (MCS) is up to 1.10 6 c.s -1 for axial profile measurements or in pulse height analysis (PHA) for detector calibration. The fluctuation mode is a continuous estimation of the signal variance over a configurable frequency range. Variances, in A.Hz -2 , are supposed to cover a minimum of seven decades of neutrons flux. The current mode is introduced in this MONACO v2 system for acquisitions at high neutron flux levels or gamma measurements (ion chambers). Six current decades are required from 1nA to 1mA.

For all operating modes, acquisition integration time is set to be variable over some specific values from 10ms to 100s. This module is also unique as it makes accessible the analysis of the operating modes overlapping using a sole acquisition system

The CEA Instrumentation, Sensors and Dosimetry Lab (LDCI) designed features and required technical specifications whilst the CEA LIST Sensors and Electronics Lab (LCAE) developed the electronic board and associated signal processing.

III. MONACO V2 SYSTEM DEFINITION

The first two MONACO v2 prototypes are embedded in 19 inches racks.

The system is built around a FPGA Zc702 board from Xillinx. The four measurement channels are composed of current preamplifier, High Voltage supply and Analog to Digital Converters sampled at 250 MHz. The Digital Pulse Processing (DPP) architecture is implemented on the Zynq7020 System on Chip (SoC). The SoC integrates an FPGA part called Programmable Logic and a Dual-core ARM Cortex-A9 representing the Processing System.

Programmable Logic is here to extract all the required features of the signal at maximum frequency (250 MHz) to maintain the data flow and avoid processing dead-time. It is based on fully configurable and reproducible DPP tiles associated to each channel. This tiles achieve a set of signal processing as band pass filtering, smoothing, Base Line Restoration, fast timing discrimination to extract all conventional DPP features associated to nuclear instrumentation (pulse height or width, counting, timestamp, pulse capture) and preprocessing of terms used in variance computation. Then, a fully scalable concentrator module bulks all the extracted features up in streamed frames. The resulting stream is accessible from the Processing System part with a Direct Memory Access module running at high throughput thanks to the DDR3 RAM. Number of tiles, size of frames, and timing constraints are completely independent of the Processing System part. The end-user supervision is developed via a high level Graphical User Interface. The overall architecture will be described in a dedicated full paper at this 2019 ANIMMA conference [START_REF] Moline | MONACO: A Case Study of a New System on Chip and Stream Based Architecture for Nuclear Instrumentation[END_REF].

IV. RESEARCH REACTOR TESTS

A. Experimental Set-up 1) TRIGA Mark II research reactor

The TRIGA Mark II reactor at the Jožef Stefan Institute (JSI -Ljubljana -Slovenia) is a pool type research reactor (250kW -first criticality in 1966) cooled by natural water convection. The uranium zirconium-hydride fuel mixture designed by General Atomics has unique properties that make the reactor inherently safe and suitable for training, research and isotope production. The reactor power is monitored with five independent excore detectors [START_REF] Stancar | Reaction Rate Distribution Experiments at the Slovenian JSI TRIGA Mark II Research Reactor[END_REF]. 2) Miniature gaseous detectors CEA-manufactured Ø 3mm miniature fission chambers (FC -with 10µg of 235 U) with mineral integrated cable were used for MONACO v2 system reactor tests. Detectors are deployed into the reactor core by using a specially designed positioning system, composed of aluminum guide tubes and a pneumatic drive consisting of a series of valves and pistons, all controlled by a microcontroller. Integrated stainless steel cables of detectors are used for inserting and withdrawing the chambers into and out of the reactor core [START_REF] Barbot | Neutron Field Characterization of Irradiation Locations Applied to the Slovenian TRIGA Reactor[END_REF].

The MONACO v2 system prototypes were first tested in the TRIGA Mark II reactor, in late 2018, using two 235 U miniature FCs (FC2288 and FC2289).

B. Neutron axial profiles

FC acquisition modes are tested individually while performing neutron flux axial profiles in some of the TRIGA in-core experimental locations. FCs are withdrawn step-bystep using the pneumatic moving system; for each step, 30 seconds MONACO v2 acquisitions are performed. Figure 4 displays two profile runs: a first one at 100W with the pulse mode operational and a second one at 100kW with both Campbell and current modes operational. Normalized values are describing the same neutron profile shape, validating the three modes when operated in their predestined neutron flux range. Current mode has a mixed sensitivity to neutron and gamma. Neutron/gamma contribution ratios are strongly changing at both fuel interfaces, explaining the quasi absence of signal bump in that region in current mode.

C. Operating mode linearity and alignment

The two FCs were also used to check the linearity of the three operating modes independently. The operators stabilized the reactor power at different power steps from 10W to 250kW (reactor nominal power). At each power step, MONACO v2 measurements were averaged over 60 seconds. The three mode results are presented in Table I. Each mode considered separately is working as expected: pulse mode operational for low neutron flux range, Campbell mode for middle and high range and current mode for high range. All three modes demonstrating a good linearity to reactor power.

Pulse mode saturates and diverges from linearity when the fission rate in the detector leads to a count rate higher than ~1.5E+06 (without any dead time correction implemented). Campbell and Current modes present specific minimum fission rate to be operational and linear to the reactor power.

Figure 5 shows the three modes normalized and aligned providing some pulse/Campbell and Campbell/current alignment coefficient. The dashed line with its associated its Ch2 test proves the acquisition system linearity over the three modes. Figure 5 demonstrates that MONACO v2 FC acquisition modes are available for very wide neutron flux range. The system performance test is here limited by the reactor maximum power.

V. CONCLUSION AND PERSPECTIVES

The current mode, as implemented at the time of the test, is not fulfilling the system requirements for low current range down to 1nA, particularly regarding low current miniature ion chamber (MIC) for gamma measurements. Actual current mode method is only operational from 0.1µA. New current measurement approach is under development and will be tested in the coming weeks.

Maximum neutron flux in the TRIGA reactor is limited to ~2.20E+13 n.cm -2 .s -1 in steady state operation. This neutron flux level is not high enough to test MONACO v2 systems in whole Material Testing Reactor conditions (i.e. future Jules Horowitz Reactor -JHR -under construction at CEA Cadarache site).

To challenge the MONACO v2 system upper limits, it will be tested in 2020 during the next CEA -JSI bilateral collaboration project aiming at very high neutron flux measurements during transient power reactor pulses up to few hundreds MW. The neutron flux is expected to reach ~1.00E+15 n.cm -2 .s -1 during ~100ms. This will be also a unique occasion to estimate the Campbell/current mode overlapping range.

Beyond encouraging the increase of on line local neutron and gamma measurements with gaseous detectors in research reactor experiments, the MONACO v2 system may also be used in the future for self-powered neutron detectors (SPND) as its current mode working range (down to 1 nA) is compatible with SPND measurements. MONACO v2 system development will shortly end and CEA is already in contact with industrial companies to make it available on the nuclear instrumentation market

  Manuscript received May 13 rd , 2019. This work was supported by the Nuclear Instrumentation project (INSNU) of the CEA Nuclear Energy Division L. Barbot, D. Fourmentel, G. De Izarra, C. Destouches and J-F. Villard are with the CEA, DEN, DER, Instrumentation, Sensors and Dosimetry Laboratory, Cadarache, F-13108 St-Paul-Lez-Durance, France (e-mail: loic.barbot@cea.fr).

Figure 1 :

 1 Figure 1: MONACO V2 3D synoptic [5] and 19" rack integration.

Figure 2 :

 2 Figure 2: Photograph of the MONACO V2 system prototype

Figure 3 :

 3 Figure 3: Underwater photograph of the TRIGA Mark II reactor core.

Figure 4 :

 4 Figure 4: Normalized axial neutron flux profiles in pulse, Campbell and current modes using MONACO v2 system and FC2288.

Figure 5 :

 5 Figure 5: Normalized values of pulse, Campbell and current modes recorded during a reactor power ramp, using MONACO v2 system and FC2288. The dashed line represents the trend curve with associated Chi2 test.

Figure 5

 5 Figure 5 also highlights the pulse/Campbell mode overlapping over almost one neutron flux decade.

TABLE I .

 I MONACO V2 LINEARITY TO REACTOR POWER STEPS (FC2288) [ITALIC AND GREY FIGURES ARE OUT OF OPERATIONAL RANGE]

	Power	Counts	Campbell	Current
	10W	2.69E+03	1.21E-21	-
	100W	2.67E+04	1.48E-21	-
	1kW	2.55E+05	3.65E-21	-
	5kW	1.01E+06	1.30E-21	-
	7kW	1.28E+06	1.78E-21	-
	10kW	1.56E+06	2.51E-21	1.63E-08
	50kW	1.01E+06	1.19E-20	1.20E-06
	100kW	2.03E+05	2.36E-20	2.69E-06
	150kW	4.51E+04	3.53E-19	4.19E-06
	200kW	1.45E+04	4.77E-19	5.79E-06
	250kW	7.48E+03	6.22E-19	7.65E-06

ACKNOWLEDGMENT

This development was performed with funding from the Nuclear Instrumentation Project of the CEA Nuclear Energy Division through a collaboration of two CEA labs: the Instrumentation, Sensors and Dosimetry Lab (LDCI) and the Sensors and Electronics Lab (LCAE).

The work performed at the JSI TRIGA reactor was in preparation of the 2019-2021 bilateral collaboration between CEA and Ministry of higher education, science and technology of Slovenia.

Authors are grateful to the TRIGA Mark II reactor operators for their constant availability to run the reactor and the preparation of the experiments.


Thibault Martin

Nikolai Kosmatov
email: nikolaikosmatov@gmail.com

Virgile Prevosto

Matthieu Lemerre

Detection of Polluting Test Objectives for Dataflow Criteria

Dataflow test coverage criteria, such as all-defs and all-uses, belong to the most advanced coverage criteria. These criteria are defined by complex artifacts combining variable definitions, uses and program paths. Detection of polluting (i.e. inapplicable, infeasible and equivalent) test objectives for such criteria is a particularly challenging task. This short paper evaluates three detection approaches involving dataflow analysis, value analysis and weakest precondition calculus. We implement and compare these approaches, analyze their detection capacities and propose a methodology for their efficient combination. Initial experiments illustrate the benefits of the proposed approach.

Introduction

Among a large range of test coverage criteria proposed in the literature, dataflow (coverage) criteria [START_REF] Ammann | Introduction to Software Testing[END_REF][START_REF] Rapps | Data flow analysis techniques for test data selection[END_REF], such as all-defs and all-uses, belong to the most advanced. These criteria are defined by complex artifacts combining a (program) location where a variable is defined, a location where it is used, and a path from the definition to the use such that the variable is not redefined in between (called a def-clear path). Like for many other criteria (e.g. conditions, mutations), some test objectives are not relevant (or polluting): they should be removed to properly ensure or evaluate test coverage [START_REF] Bardin | Sound and quasi-complete detection of infeasible test requirements[END_REF][START_REF] Marcozzi | Generic and effective specification of structural test objectives[END_REF]. Polluting test objectives for dataflow criteria include inapplicable test objectives [START_REF] Frankl | An applicable family of data flow testing criteria[END_REF], where a def-use pair cannot be linked by a def-clear path. They also include infeasible test objectives, where a def-use pair can be linked by at least one def-clear path, but none of these paths is feasible (i.e. can be activated by a test case). Finally, they include duplicate (or equivalent) test objectives, which are always covered simultaneously: it suffices to keep only one objective for each equivalence class.

While creating a list of (candidate) test objectives for dataflow criteria can look easy, detection of polluting objectives for such criteria is challenging, due to a complex definition, mixing reachability and def-clear paths. Yet it is crucial to avoid a waste of time during test generation (trying to cover polluting test objectives) and to allow a correct computation of coverage ratios (by ignoring polluting objectives in the total number of objectives). While applying dataflow criteria for testing [START_REF] Rapps | Data flow analysis techniques for test data selection[END_REF][START_REF] Rapps | Selecting software test data using data flow information[END_REF][START_REF] Harrold | Interprocedual data flow testing[END_REF][START_REF] Weyuker | The cost of data flow testing: An empirical study[END_REF][START_REF] Clarke | A formal evaluation of data flow path selection criteria[END_REF][START_REF] Su | A survey on data-flow testing[END_REF] and detection of polluting test objectives for simpler criteria (see [START_REF] Bardin | Sound and quasi-complete detection of infeasible test requirements[END_REF][START_REF] Marcozzi | Time to clean your test objectives[END_REF] for some recent results and related work) were previously studied, evaluating and combining various program analysis techniques for their detection for dataflow criteria-the purpose of this work-was not investigated.

Contributions. This short paper evaluates three approaches to detecting polluting test objectives for dataflow criteria, involving dataflow analysis, (abstract interpretation based) value analysis, and weakest precondition calculus. We implement these approaches inside the LTest open-source testing toolset [START_REF] Marcozzi | Taming coverage criteria heterogeneity with LTest[END_REF]. We evaluate and compare them by some initial experiments and analyze their detection capacities and limitations. We focus on the key ingredients of dataflow criteria: def-use pairs. The detection capacities we observed appear to be different from similar experiments made previously for other criteria. Finally, we propose a methodology for an efficient combination of several techniques.

Background and Motivating Example

Background. A large range of test coverage criteria have been defined [START_REF] Ammann | Introduction to Software Testing[END_REF]. Recent work proposed HTOL (Hyperlabel Test Objective Language) [START_REF] Marcozzi | Generic and effective specification of structural test objectives[END_REF], a generic specification language for test objectives, that can express most of these criteria. We present here only the subset of HTOL that is useful to express dataflow criteria.

Given a program P , a label (in the sense of [START_REF] Bardin | Efficient leveraging of symbolic execution to advanced coverage criteria[END_REF]) is a pair (loc, ϕ) where loc is a location in P and ϕ is a predicate. Label is covered by a test case t when the execution of t reaches loc and satisfies ϕ. While labels can express many simple criteria, test objectives for more complex criteria, including dataflow criteria, need a more general notion, hyperlabels. In our context, we use labels only for reachability, thus we always consider ϕ = true and simplify the notation (loc, true) as loc, that is, a usual label in the sense of C. Hyperlabels [START_REF] Marcozzi | Generic and effective specification of structural test objectives[END_REF] extend labels by relating them with several constructions, that include, among others, sequences, conjunctions and disjunctions. Given two labels and and a predicate ψ, a sequence hyperlabel h ψ -→ is covered by a test case t when the execution of t covers both labels and (in that order), such that the path section between them satisfies predicate ψ. A conjunction h 1 • h 2 requires both hyperlabels h 1 , h 2 to be covered by (possibly distinct) test cases. A disjunction h 1 + h 2 requires covering at least one of hyperlabels h 1 , h 2 .

A key test objective of dataflow criteria is a def-use pair. For a given variable v and two labels , , we say that ( , ) is a def-use pair for v if is a definition of v and is a use (i.e. a read) of v. It is linked by a def-clear path for v if there is a path from to such that v is not redefined (strictly) between and . A def-use pair ( , ) (for v) is covered by a test case t when the execution of t covers both labels (i.e.-in our context-passes through both locations) , so that the path between them is a def-clear path (for v). When there is no ambiguity, we omit the variable name.

Thus, the test objective to cover a def-use pair ( , ) can be expressed by a sequence (hyperlabel) h

dc(v)
---→ , where predicate dc(v) requires the path to be def-clear for variable v. Dataflow criteria rely on such sequences and require to cover all or some of them in various ways. Therefore we focus in this paper on detection of polluting sequences.

Polluting Test Objectives. While the generation of candidate def-use pairs by combining definitions and uses for each variable can seem to be a simple task, many of them are irrelevant, or polluting, for various reasons. First, a def-use ---→ 5 All-uses criterion objectives for a: pair ( , ) for variable v is inapplicable if there is no structurally possible defclear path from to for v. Second, a def-use pair ( , ) is infeasible if such def-clear paths exist (structurally) but are all infeasible (i.e. cannot be executed by any test case). Inapplicable and infeasible def-use pairs are both uncoverable. Finally, a def-use pair ( , ) is equivalent to another def-use pair ( , ) if for every test case t, the execution of t covers either both pairs or none of them.

1 int f () { 2 int res =0 , x =1 , a ;
h8 h1 • h2 • h3 • h4 h9 h5 • h6 • h7 All-defs criterion objectives for a: h10 h1 + h2 + h3 + h4 h11 h5 + h6 + h7
Recent research showed that value analysis and weakest precondition calculus can be efficient to detect polluting test objectives for several (non dataflow) criteria [START_REF] Bardin | Sound and quasi-complete detection of infeasible test requirements[END_REF][START_REF] Marcozzi | Time to clean your test objectives[END_REF] expressed in HTOL. For dataflow criteria, model-checking was applied to detect infeasible test objectives [START_REF] Su | Combining symbolic execution and model checking for data flow testing[END_REF]. Continuing those efforts, this work adapts several existing program analysis techniques to detect polluting test objectives for dataflow criteria, implements and evaluates them.

Generating only relevant test objectives for dataflow criteria for an arbitrary program is undecidable. Indeed, it requires to identify which uses can be reached from a specific definition. If it were possible, one could apply it to solve the general reachability problem for a label in a given program P : {code1; : code2;} by considering program P : { 0 :int new=0; code1; : return new; code2;} with a fresh variable new and checking whether the def-use pair ( 0 , ) is generated for P .

Motivating Example. Figure 1 gives a simple C code illustrating various cases of polluting objectives. The upper right of the figure shows all (candidate) def-use pairs for variable a (h 1 , . . . , h 7 ), that include polluting objectives. The all-uses criterion requires to cover all possible def-use pairs for each definition. For the definition 1 (resp., 2 ), this corresponds to the conjunctive hyperlabel h 8 (resp., h 9 ). The all-defs criterion requires to cover at least one def-use pair for each definition, which is illustrated by the disjunctive hyperlabel h 10 (resp., h 11 ). We see that sequences are key ingredients to express test objectives of these dataflow criteria, and we focus on them below. Naturally, detecting polluting sequences will automatically simplify the combined hyperlabels.

In this example, h 2 is inapplicable: structurally, there is no def-clear path from 1 to 3 since all such paths pass through 2 . This sequence should be strictly speaking discarded, i.e. erased from the combined objectives.

In addition, we can see that h 6 and h 7 are both infeasible since no test case can cover 2 and 4 (or 5 ) at the same time because of x. In this case, the combined objective h 9 becomes infeasible as well. It is also easily seen that having Cond always false (or true) also makes some objectives infeasible.

Finally, since 4 and 5 lie in the same consecutive block, sequences h 3 , h 4 are equivalent: a test case t either covers both of them, or none of them; and so are h 6 , h 7 . Keeping only one in each group would be sufficient both for test generation or infeasibility detection. We can keep h 3 for h 3 , h 4 . If h 3 is infeasible, h 4 is as well. If h 3 is covered by some test case t, h 4 is covered too 1 .

For simplicity, we assume here that the C code has been normalized (like it is automatically done in Frama-C [START_REF] Kirchner | Frama-C: A software analysis perspective[END_REF]), in particular, expressions contain no side effects and each function has a unique return point.

Detection Techniques

Dataflow Analysis for Inapplicable and Equivalent Sequences

Inapplicable Sequences. A simple approach to generate sequences expressing defuse pairs consists in performing a simple run through the Abstract Syntax Tree (AST) and creating a sequence for each definition and use of the same variable in the program. This approach leads to a significant number of inapplicable objectives. Their detection for an arbitrary program (e.g. with goto's) is non trivial. For Fig. 1, we would generate h 1 , ..., h 7 , including the inapplicable objective h 2 .

To avoid generating this kind of objectives, we use a standard dataflow analysis [START_REF] Kildall | A unified approach to global program optimization[END_REF]. This analysis propagates (over the program statements) a state associating to each variable v the set Defs v of labels corresponding to definitions of v that may reach this point through a def-clear path. This dataflow analysis, denoted M NA , is very efficient to identify Non-Applicable sequences.

Figure 2 illustrates this method for Fig. 1 and variable a. The Defs a set near a node shows the set of definitions that may have assigned to a the value that a has at this node. So, after visiting 2 , the definition of a at 1 is replaced with that at 2 . Hence, at 3 , we will create one sequence (h 5 ) for this use of a, and h 2 will not be generated. Notice that at node x, the state contains both definitions of a after the merge of both branches.

Equivalent Sequences. We distinguish two kinds of equivalent sequences. The first kind is trivial. If a variable v is used more than once in the same expression, assuming expressions do not contain side effects, the value of v will be the same for each occurrence. We consider each corresponding def-use pair only once.

The second kind is more complex and relies on the notions of dominance and post-dominance [START_REF] Prosser | Applications of boolean matrices to the analysis of flow diagrams[END_REF]. For two statements S 1 and S 2 , we say that: S 1 dominates S 2 if all paths from the entry point of the function to S 2 pass through S 1 ; S 2 post-dominates S 1 if all paths from S 1 to the return point of the function pass through S 2 .

We enrich the state propagated by M NA by a set associating to each variable v the set Uses v of (labels corresponding to the) uses of v that must (i.e. are guaranteed to) reach this point through a def-clear path. Before creating a sequence with a use at , we check its associated Uses set. If it contains a label for the same variable, it means that dominates . Then we check if post-dominates using standard dataflow analysis. If so, for each definition in our state, def-use pairs ( , ), ( , ) are equivalent. Figure 2 illustrates that the Uses a state at 5 contains 4 , and since 5 also post-dominates 4 , h 4 (resp., h 7 ) is found equivalent to h 3 (resp., h 6 ). Notice that after the merge of branches at the last node, Uses a is empty. We denote this method by M Eq .

Static Analysis for Uncoverable Sequences

Consider a sequence hyperlabel h i expressing a def-use pair

dc(v) ---→ for v. Let C v
i be a fresh variable associated to sequence h i , that will represent its status: 0 for uncovered, and 1 for partially covered, i.e. after seeing only its definition, but not its use. More precisely, C v i is initialized to 0 at the beginning of the function. When we reach we set it to 1, meaning that we covered the first member of our sequence h i . If dc(v) is violated (i.e. if we encounter another definition on our path) we set C v i back to 0. If we can prove that C v i = 1 is always true at , then we show that covering h i is impossible, that is, h i is inapplicable or infeasible. A similar method was used in [START_REF] Su | Combining symbolic execution and model checking for data flow testing[END_REF] with a model-checking approach. ---→ 4 . We express the instrumented code in acsl [START_REF] Kirchner | Frama-C: A software analysis perspective[END_REF] as ghost code, used to provide additional code for analyzers, without interfering with the original code semantics. We create the ghost variable C a 6 that stands for the status of sequence h 6 over variable a (cf. lines 3, 5, 8, 10 in Fig. 3). We also generate an acsl check clause C a 6 = 1 before 4 (line 15). If it is proved, then covering h 6 is impossible. Notice that h 7 would be proved infeasible as well, since they are equivalent.

To

Implementation and Evaluation

Implementation. We implemented the detection techniques described in Sect. 3 in LTest2 [START_REF] Marcozzi | Taming coverage criteria heterogeneity with LTest[END_REF], a set of tools for coverage oriented testing, mostly written in OCaml as plugins of Frama-C [START_REF] Kirchner | Frama-C: A software analysis perspective[END_REF], a program analysis platform for C code. One of the tools, LAnnotate, creates test objectives for a given criterion. It supports various dataflow criteria (such as def-use, all-defs, all-uses) and generates (candidate) objectives inside each function. We implemented dataflow analysis techniques M NA and M Eq in LAnnotate to filter out, resp., Non-Applicable and Equivalent objectives. It does not support pointers yet, and overapproximates arrays (meaning that an assignment at index i is seen as an assignment to the entire array). We implemented M VA and M WP in another tool, LUncov. detecting uncoverable objectives. It performs interprocedural analysis and relies on Frama-C plugins Eva for value analysis and Wp for weakest precondition.

Experiments. In our evaluation, we address the following research questions: RQ1: Is dataflow analysis with M NA and M Eq effective to detect inapplicable and equivalent test objectives? Can it scale to real-world applications? RQ2: Can sound static analysis techniques M VA , M WP effectively find uncoverable objectives? Can they scale to real-world applications? RQ3: Is it useful to combine these approaches? What is the best combination?

We use a set of real-life C benchmarks 3 of various size (up to 11 kloc) and nature, and focus on sequences encoding def-use pairs (cf. Sect. 2). Figure 4 illustrates the results. For each benchmark, we first generate all candidate def-use pairs using LAnnotate without any additional analysis (see the third column in Fig. 4). Next, we apply the techniques, first separately (columns M NA -M WP ) and then in combination (last four columns). We report execution time, the number of sequences (i.e. def-use pairs) detected as polluting, and the percentage it represents over the total number of candidate objectives. The last line gives an average percentage. TO and MO denote a timeout (set to 10 hours) and memory-out. Experiments were run on an Intel(R) Xeon(R) E-2176M with 32 GB RAM.

Notice that M VA requires an entry point function and an initial context to start the analysis, meaning that objectives are identified as uncoverable with respect to these starting point and initial context. Value analysis can require a certain expertise to find optimal settings for a better analysis. As we want our tool to be as automatic as possible, we used default parameters. As for M WP , it does not require a global entry point but can be made more precise by providing contracts, i.e. pre-and postconditions and loops annotations. Again, in our experiments, annotations were not written for the same reason. Hence, an expert user can probably further improve the reported results. Similarly, using Frama-C plugins dedicated to generating acsl annotations might improve these results as well. However, this demands some adaptations of our own implementation and is left for future work.

Results. Regarding RQ1, dataflow analysis techniques M NA and M Eq are very fast and very effective. M NA detects an average rate of 41.5% (of all objectives) as inapplicable. M Eq detects an average of 35.9% as equivalent. The rate of M NA (between 8% and 85.1%) strongly depends on the example. Together, they identify a very significant number of polluting objectives (column M NA,Eq ).

Regarding RQ2, M VA performs really well on smaller programs, and becomes more expensive for larger examples (e.g. it runs out of memory for Monocypher). It detects between 27.1% and 69.6% (with an average of 41.5%). M WP is by far the slowest method of detection. It takes up to 71m14s, times out on Monocypher, and detects almost no new uncoverables compared to M VA (see below).

Regarding RQ3, while it is natural to expect benefits of a combination of different analyses, the results were somewhat surprising. Unlike in the previous work for other (non dataflow) criteria [START_REF] Bardin | Sound and quasi-complete detection of infeasible test requirements[END_REF][START_REF] Marcozzi | Time to clean your test objectives[END_REF], the weakest precondition based technique brings only very slight benefits (see columns M NA,Eq,VA -M NA,Eq,VA,WP ). We believe it is due to the complex nature of dataflow criteria where infeasibility is less likely to be detected by local reasoning. It is left as future work to study whether these results can be significantly improved using additional annotations. Using M NA,Eq before M VA or M WP to filter out some objectives is clearly very efficient (and makes it possible for M VA , M WP to terminate on the Monocypher example). Overall, our results show that the best combination appears to be M NA,Eq,VA , whereas executing M WP in addition is very costly and detects at most 0.2% more sequences. When execution time is very limited, M NA,Eq can be already very effective.

Conclusion and Future Work

Polluting test objectives can be an important obstacle to efficiently applying test coverage criteria, both for test generation or computation of coverage ratios. We adapted, implemented and evaluated several sound techniques to detect (a subset of) such objectives for dataflow criteria. Combining dataflow analysis to detect inapplicable and equivalent objectives with value analysis to identify uncoverable ones seems to be the best trade-off for effective and fast detection. While this work provided a comparison of the detection power of the analysis techniques, future work is needed to evaluate their results with respect to the real set of polluting objectives (or its overapproximation computed by replaying a rich test suite). Other possible improvements include better support of C language constructs (pointers and arrays), refining the analyses, notably M WP , by automatically generating additional annotations, as well as extending this study to subsumed (i.e. implied) test objectives and to other coverage criteria.

5 2

 5 : a = a + 1;

10 4 :

 4 res += 2* a ;

Fig. 1 .

 1 Fig. 1. Example of def-use pairs and objectives for all-uses and all-defs for variable a.

Defsa: 2 Defsa: { 1} Usesa: {} 3 4 Defsa: { 1 ; 2} Usesa: {} 5 Defsa: { 1 ;Fig. 2 . 1 int f ( void ) 2 { 3 /* @ ghost int C a 6 =

 23415121236 Fig. 2. Dataflow analysis for Fig. 1.

Fig. 3 .

 3 Fig. 3. Figure 1 instrumented for h6.

Figure 3

 3 Figure 3 illustrates this method for Fig. 1 for h 6 = 2 dc(a)

Fig. 4 .

 4 Fig. 4. Polluting objectives detected by different techniques and their combinations.

  detect polluting sequences automatically, we apply static analysis techniques on the instrumented program, more precisely, Value Analysis based on abstract interpretation and Weakest Precondition calculus. The resulting detection techniques are denoted M VA and M WP .

	Ex./	Indi-	Cand.				Polluting objective detection
	Size	cator obj.gen. MNA MEq MVA	MWP MNA,Eq MNA,Eq,VA MNA,Eq,WP MNA,Eq,VA,WP
	cwe787 34 loc	time #seq. %seq.	0.3s 207	0.3 144 69.6% 47.8% 69.6% 52.2% 0.3s 4.9s 28.3s 99 144 108	0.3s 171 82.6%	1.1s 171 82.6%	5,6s 171 82.6%	6,4s 171 82.6%
	2048 376 loc	time #seq. %seq.	0.6s 560	0.5s 159 28.4% 33.4% 28.8% 2.5% 0.5s 6.3s 1m45 187 161 14	0.5s 293 52.3%	2.9s 295 52.7%	50.2s 294 52.5%	52.7s 295 52.7%
	papa-	time	1.2s	1.3s	1.3s	3.4s	1m7s	1.2s	4.1s	42.4s	45.3s
	bench	#seq.	376	41	106	102	21	139	181	139	181
	1399 loc	%seq.		10.9% 28.2% 27.1% 5.6%	37.0%	48.1%	37.0%	48.1%
	debie1 5165 loc	time #seq. %seq.	1.5s 2149	1.5s 815 37.9% 38.4% 40.8% 8.4% 1.5s 1m20s 9m3s 825 876 181	1.5s 1272 59.2%	37.7s 1320 61.4%	4m2s 1280 59.6%	4m43s 1323 61.6%
	gzip 4790 loc	time #seq. %seq.	3.3s 7299	2.7s 3710 2042 3806 2.9s 22m20s 71m14s 1264 50.8% 28.0% 52.1% 17.3%	2.6s 4738 64.9%	4m40s 4834 66.2%	29m28s 4741 65.0%	33m58s 4835 66.2%
	itc-	time	8.4s	8.4s	8.2s	32.3s 16m57s	8.2s	33.2s	11m45s	12m18s
	benchm.	#seq.	3776	301	892	1145	152	1107	1703	1174	1708
	11825 loc	%seq.		8.0% 23.6% 30.3% 4.0%	29.3%	45.1%	31.1%	45.2%
	Mono-	time	28.2s	1.4s	7.0s	MO	TO	0.9s	16m32s	64m31s	80m10s
	cypher	#seq. 45707 38880 23839	-	-	43410	43414	43410	43414
	1913 loc	%seq.		85.1% 52.2%	-	-	95.0%	95.0%	95.0%	95.0%
	Average %seq.		41.5% 35.9% 41.5%	15%	60.0%	64.4%	60.4%	64.5%

unless the flow is interrupted by a runtime error between 4 and 5; hence we recommend keeping the first sequence h3, so that a test case covering it either covers h4 as well, or detects a runtime error, that is thus detected and can be fixed.

available at https://github.com/ltest-dev/LTest

Acknowledgements. This work was partially supported by ANR project SATOCROSS (grant ANR-18-CE25-0015-01). We thank Sébastien Bardin, and the anonymous reviewers for valuable comments.