Frequently Asked Questions

Answers to FAQ.

Here is a list of Frequently Asked Questions about sedFoam:

Which non-standard applications does sedFoam consist?

SedFoam is an Eulerian two-phase model for a wide range of sediment transport processes. By solving the mass and momentum equations for the water phase and fluid phase with closure on turbulence, particle stress, and interphase momentum coupling, SedFoam resolves the full dynamics of sediment transport throughout the entire water column and down to the immobile porous sediment bed without the need to artificially separate transport into near-bed load and suspended load layers. Compared with the conventional single-phase sediment transport model, SedFoam does not require empirical closures on reference concentration, bedload transport rate, and Exner equation for updating the bathymetry evolution.

Are sedFoam applications parallel?

sedFoam is parallel (many thanks to openfoam)

Is there any example that sedFoam was applied onto industry-related engineering problems?

sedFoam has been used for Three-dimensional scour simulations (cf. paper in Advances in Water Resources : https://doi.org/10.1016/j.advwatres.2020.103544). The French company, Artelia, plans to use the software in its activities but the cost of calculation is prohibitive for 3D calculations on real scale cases.

What are the limitations of sedFoam; what remains unresolved?

From an industrial point of view, it is surely the computational cost. A model resolving a mixture can improve the model. And there is a lot of possible improvement : update of the kinetic theory (Done!), implementation of the finite size model in the official sedfoam release : http://dx.doi.org/10.1017%2Fjfm.2021.4, integrate the dilatancy effects (Done!), implementation of dynamic mesh functionality... We work on all that.

Roughly, how long do you or your colleagues plan to maintain sedFoam?

Cyrille Bonamy, Julien Chauchat, Tian-Jian Hsu and other people involved in the project do not plan to stop the maintenance of the software. We are three people with a permanent position, and so there is no problem for the next few years.

How to choose the CFL number?

sedFoam is based on the PISO algorithm which is an unsteady flow algorithm even when we are looking at steady-state solutions. Another point is the coupling between the two-phase which adds another constraint on the time step. The choice of the time step also depends on the ddt scheme that you are using, values of order unity is possible when using upwind schemes but lower values are required when using second order temporal schemes such as backward or Crank-Nicholson scheme. According to our experience, it is necessary to use a CFL number smaller than unity and sometimes smaller than 0.3 or even less (0.1). The stability of the model remains a difficult problem and more theoretical work is needed to improve this point.

How to choose the alphaMax value?

alphaMax is prescribed in different places in the code and has different meanings. Here is a quick overview, the value set in ppPropertiesDict corresponds to the maximum packing fraction which for sphere is 0.635, the value set in granularRheologyProperties, denoted as alphaMaxG, corresponds to the maximum packing fraction in the phi(I) or phi(Iv) rheology and the value set in kineticTheoryProperties corresponds to the maximum packing fraction for the kinetic theory closures.

What is the meaning of relaxPa?

relaxPa is a coefficient that controls the shear induced pressure relaxation toward the predicted value by the phi(I) or phi(Iv) rheology considered as the steady-state solution. The relaxation time-scale is given by:

T_relaxPa = 1/(relaxPa alpha magD)

where magD is the magnitude of the velocity shear rate. This equation is solve in granularRheology.solve(...). A smaller value of relaxPa increases the relaxation time-scale and increases the stability while a larger value decreases the time-scale and leads to more unstable solution (the steady-state solution is imposed more instantaneously).

Which value shall I use for SUS?

SUS corresponds to the inverse of the turbulent Schmidt number, according to van Rijn (1984) its values is an increasing function of Ws/u* as:

SUS = 1 + 2 (Ws/u*)^2

in the range Ws/u* [0;1] and shall not exceed 3.

The user can either use a constant value in twophaseRASProperties or activate the local model by switching on SUSlocal in the same file (default is false). In the local model, u* is replaced by the squareroot of the local magnitude of the Reynolds Shear stress. The local value is clipped to 3.

Van Rijn, L. C. (1984). Sediment transport, part ii: Suspended load transport. J. Hydraul. Eng., 110:1613–1641.