/** # Edoardo Cipriano I am a PhD student at Politecnico di Milano, with the [CRECK Modeling group](http://creckmodeling.chem.polimi.it). During my PhD, I study the evaporation and combustion of fuel droplets using multiphase CFD. Here you can find my codes. If you would like to discuss a related topic, feel free to email me: `edoardo.cipriano@polimi.it`. ## Publications For a detailed description of the phase change model in this sandbox, please refer to: ~~~bib @hal{cipriano2023, hal-04252476} ~~~ ## Source Codes The main modules implemented in my sandbox are reported below. The arrow points to the relative tests, where available. #### Navier-Stokes * [navier-stokes/centered-evaporation.h](src/navier-stokes/centered-evaporation.h): centered Navier-Stokes equations solver with a divergence source term. * [navier-stokes/mac-evaporation.h](src/navier-stokes/mac-evaporation.h): mac Navier-Stokes equations solver with a divergence source term. * [navier-stokes/centered-doubled.h](src/navier-stokes/centered-doubled.h): obtain a divergence-free extended velocity using a *Double Pressure-Velocity Coupling* approach. * [navier-stokes/velocity-potential.h](src/navier-stokes/velocity-potential.h): obtain a divergence-free extended velocity using the *Velocity Potential* appraoch. * [navier-stokes/velocity-extrapolation.h](src/navier-stokes/velocity-extrapolation.h): obtain a divergence-free extended velocity using the *Velocity Extrapolation* approach. #### Phase Change * [evaporation.h](src/evaporation.h): main phase change module, it must be included in every phase change simulation, together with one of the following phase change mechanisms. * [fixedflux.h](src/fixedflux.h): constant evaporation rate per unit of surface. * [temperature-gradient.h](src/temperature-gradient.h): evaporation driven by a temperature gradient between the interface temperature and the neighboring phases (suitable for boiling). * [species-gradient.h](src/species-gradient.h): evaporation driven by a gradient of chemical species mass fractions (suitable for isothermal pure evaporation). * [multicomponent.h](src/multicomponent.h): evaporation of a mixture in a non-isothermal environment. #### Combustion * [opensmoke.h](src/opensmoke.h): interface for the OpenSMOKE++ library, which allows detailed kinetics to be managed. * [chemistry.h](src/chemistry.h): solve the chemical reactions using the opensmoke interface. * [reactors.h](src/reactors.h): implementation of the ODE system of equations describing Batch reactors. * [spark.h](src/spark.h): activate the chemical reactions using a spark, described as a local increase of temperature (→ [spark.c](test/spark.c)). * [radiation.h](src/radiation.h): radiation models for combustion simulation (→ [radiation.c](test/radiation.c)). #### Ghost Fluid Method * [poisson-gfm.h](src/poisson-gfm.h): extension of poisson solver with ghost fluid method for interface discontinuities (→ [poisson-gfm.c](test/poisson-gfm.c)). * [navier-stokes/centered-gfm.h](src/navier-stokes/centered-gfm.h): extension of the centered solver using the ghost fluid method for surface tension (and gravity) (→ [capwave.c](test/capwave.c), [oscillation.c](test/oscillation.c), [spurious.c](test/spurious.c)). #### Miscellaneous * [aslam.h](src/aslam.h): extrapolate a tracer field across the interface using constant or linear extrapolation (based on the levelset approach) (→ [aslam.c](test/aslam.c), [aslamvof.c](test/aslamvof.c)). * [fsolve-gsl.h](src/fsolve-gsl.h): high-level interface to *gsl_multiroots*, for the solution of non-linear systems of equations (→ [fsolve-gsl.c](test/fsolve-gsl.c)). * [centripetal.h](src/centripetal.h): suspension of a liquid droplet using a centripetal force applied on the liquid volume (→ [centripetal.c](test/centripetal.c)). * [icentripetal.h](src/icentripetal.h): suspension of a liquid droplet using a centripetal force applied just on the interface (→ [icentripetal.c](test/icentripetal.c)). * [pinning.h](src/pinning.h): suspension of a liquid droplet setting the boundary conditions for the height-function (→ [pinning.c](test/pinning.c)). * [balances.h](src/balances.h): automatic calculation of global mass balances. ## Examples The simulation setup for phase change problems, with automatic generation of the results and other test cases, are reported below. #### Phase Change * [fixedflux.c](run/fixedflux.c): evaporation of a droplet with a constant evaporation rate. * [fixedfluxmac.c](run/fixedfluxmac.c): evaporation of a droplet with a constant evaporation rate, using the mac solver. * [fixedbubblevelocity.c](run/fixedbubblevelocity.c) expansion of a bubble with a constant evaporation rate using the velocity potential approach, focusing on the velocity field. * [stefanproblem.c](run/stefanproblem.c): evaporation of a liquid plane induced by a temperature gradient. * [suckingproblem.c](run/suckingproblem.c): planar boiling configuration. * [scrivenproblem.c](run/scrivenproblem.c): growth of a bubble in a superheated liquid domain. * [bubblerisengrowth.c](run/bubblerisengrowth.c): growth of a bubble in a superheated liquid domain, in normal gravity conditions. * [filmboiling.c](run/filmboiling.c): a possible film boiling configuration. * [bubblecontact.c](run/bubblecontact.c): growth of a nucleated bubble on a solid wall, with a fixed contact angle. * [epsteinplesset.c](run/epsteinplesset.c): isothermal evaporation of a pure droplet in diffusive conditions. * [pureisothermal.c](run/pureisothermal.c): isothermal evaporation of a pure droplet. * [c7pathak.c](run/c7pathak.c): evaporation of a n-heptane droplet in a non-isothermal environment. * [staticbi.c](run/staticbi.c): isothermal evaporation of a binary droplet with different volatilities. * [forcedbi.c](run/forcedbi.c): isothermal evaporation of a binary droplet with different volatilities in forced convective conditions. * [interfaceregression.c](test/interfaceregression.c): test for the interface regression velocity, in order to better visualize its behavior. #### Miscellaneous * [embedfalldrop.c](run/embedfalldrop.c): impact of a liquid droplet on a curved surface. * [fallingdropmrf.c](run/fallingdropmrf.c): falling droplet in a moving reference frame. * [radialdiffusion.c](run/radialdiffusion.c): solution of a diffusion equation in a spherically-symmetric domain. ## Improvements The following list reports known weakness and future steps for the models implemented in my sandbox: 1. **Smoothen velocity field**: the point source term in the Poisson equation, related with the density changes in phase change simulations, can lead to oscillations in the velocity field, that disappear using the mac solver. A proper strategy to avoid this phenomena should be developed, without smearing the source term in order to not modify the intensity of the velocity jump. 2. **Velocity Potential**: this is the most elegant way to obtain a divergence-free velocity field in phase change simulations. However, this implementation does not work well for strong density ratio or strong vaporization rates, and it should be improved. At the current state, it works when the velocity of the system is higher than the Stefan flow. 3. **Embedded Boundaries**: the phase change model cannot be combied with embedded solids yet. This extension should not be too difficult. */