Back to all tutorials

Spray Combustion - CFD Simulation SimFlow Tutorial

1. Introduction

In this tutorial, we demonstrate SimFlow’s capability in terms of modeling the combustion process. We will model particles of Heptane injected into the cylinder where the combustion process occurs. To consider heat transfer between the spray droplets and the surrounding gas, we utilize the Ranz-Marshall heat transfer model. Additionally, we incorporate the Evaporation&Boiling model to account for mass transfer from the droplets to the gas resulting from evaporation and boiling. Please note that this simulation demands increased CPU performance.

2. Download SimFlow

SimFlow is a general purpose CFD Software

To follow this tutorial, you will need SimFlow free version, you may download it via the following link:
Download SimFlow

3. Create Case

Open SimFlow and create a new case named spray_combustion

  1. Go to New panel
  2. Provide name spray_combustion
  3. Click Create Case
Spray Combustion 01 Launcher

4. Import Geometry

Firstly we need to Download GeometryCylinder

  1. Click Import Geometry
  2. Select geometry file cylinder.stl
  3. Click Open
Spray Combustion 02 Import geometry

5. Imported Geometry Units

The STL format does not contain the unit information which are defined during the geometry export. If we do not know the exported unit, we can estimate it based on the total size of the model. It is displayed next to Geometry size label. In our case, the default unit meter is correct.

  1. Select cm unit
  2. Click OK button
Spray Combustion 02 unit

6. Geometry - Cylinder

After importing geometry, it will appear in the 3D window.

  1. Click Fit View to zoom in on the geometry.
Spray Combustion 03 Geometry

7. Meshing Parameters - Cylinder

In order to create the mesh, we need to enable meshing for the newly imported geometry.

  1. Go to Hex Meshing panel
  2. Enable Mesh Geometry on cylinder geometry
Spray Combustion 04 Hex Meshing Parameters

8. Base Mesh - Domain

Now we will define the base mesh. The box geometry determines the background mesh domain. The model is symmetrical on the XZ and YZ planes so we do not need to mesh the whole geometry. Using the box dimensions we will choose only a quarter of a model.

  1. Switch to Base tab
  2. Click on Autosize
  3. Change the following parameters accordingly
    Min \({\sf [m]}\)00
  4. Define the number of divisions
    Division505020
Spray Combustion 05 Base Mesh

9. Base Mesh - Boundaries

We need to assign individual names to each side of the base mesh. This will allow us to apply different conditions to each side.

  1. Change the following boundary names
    X- symmetry
    Y- symmetry
  2. Set the types for boundaries accordingly
    X- symmetry
    X+ wall
    Y- symmetry
    Y+ wall
    Z- wall
    Z+ wall
Spray Combustion 06 BC

10. Material Point

Material Point tells the meshing algorithm on which side of the geometry the mesh is to be retained. Since we are considering flow inside the cylinder we need to place the material point inside the geometry.

  1. Switch to Point tab
  2. Specify location inside the cylinder
    Material Point110.7

You can specify the point location from the 3D view. Hold the CTRL key and drag the arrows to the destination.

Spray Combustion 07 Material Point

11. Start Meshing

  1. Go to Mesh tab
  2. Start the meshing process with Mesh button
Spray Combustion 08 Meshing

12. Examine Mesh

After the meshing process is complete, the mesh should appear in the graphics window. To zoom in or zoom out use the scroll wheel , or move the mouse up or down with pressed RMB (right mouse button).

Spray Combustion 09 Mesh

13. Select Solver - Spray

We want to analyze the transient simulation of spray combustion. For this purpose, we will use the sprayFoam (sprayFoam) solver.

  1. Go to SETUP panel
  2. Select the Transient solvers
  3. Filter the solvers by choosing Lagrangian models
  4. Pick Spray (sprayFoam) solver
  5. Select solver
Spray Combustion 12 Solver

14. Combustion - Mechanism

We will load the chemical kinetic mechanism as well as the thermodynamic properties database. We will consider only the one chemical reaction describing the process which is a simplification in order to decrease the computational cost and calculation time.

To complete this step we need to Download Fileschem.inptherm.dat
After that, import them to the SimFlow.

  1. Go to Combustion panel
  2. Click Import mechanism
  3. For CHEMKIN Mechanism File select the chem.inp
  4. For Thermodynamic Database File select the therm.dat
  5. Click Import
  6. Control the listed Species and Reactions
Spray Combustion 13 Combustion Mechanism

15. Combustion - Model

We will select the partially stirred reactor model which is used to simulate combustion.

  1. Switch to Combustion tab
  2. Select Combustion Model as a PaSR
Spray Combustion 14 Combustion Model

16. Discrete Phase - Composition

We will select the pure heptane as a phase injected into the chamber.

  1. Go to Discrete Phase panel
  2. Extend Add/Remove list
  3. Check C7H16 phase and uncheck N2 phase
  4. Set the C7H16 mass fraction to 1
Spray Combustion 15 Discrete Phase

17. Discrete Phase - Injection

We are going to create a cone injector and define its parameters.

  1. Switch to Injection tab
  2. Add new Cone Injector
  3. Set Total Mass [kg] injection to 1e-04
  4. Set Duration [s] injection to 1e-03
  5. Set Parcels Per Second to 10000000
  6. Set the velocity \(U_{mag} \; [m/s]\) to 100
Spray Combustion 16 Discrete Phase Injection 1

18. Discrete Phase - Injection Geometry

We need to define the position of the injector and spray outflow direction.

  1. Go to Geometry tab
  2. Set the position of injector
    Position \({\sf [m]}\)1e-031e-030.013
  3. Set the injection direction
    Direction \({\sf [-]}\)110.35
  4. Set the outer cone angle \(\Theta_{outer} \; [deg]\) to 20
Spray Combustion 17 Discrete Phase Injection 2

19. Discrete Phase - Injection Distribution

We will select the Rosin-Rammler distribution model and define the necessary parameters. Models need to define the minimum and maximum spray droplet diameter and size which is the largest probability.

  1. Switch to Distribution tab
  2. Select the Rosin-Rammler model from drop down list
  3. Set the minimal, maximal and nominal droplet diameter:
    Min \({\sf [m]}\)1e-05
    Max \({\sf [m]}\)2e-04
    d \({\sf [m]}\)1e-04
Spray Combustion 18 Discrete Phase Injection 3

20. Discrete Phase - Models

We need to define which models will be used in this simulation. We select the Sphere Drag model to account for the drag force acting on the droplets. We choose the Ranz-Marshall heat transfer model to take into account heat transfer between the spray droplets and surrounding gas. For accounting mass transfer from the droplets to the gas as a result of the evaporation and boiling we use the Evaporation & Boiling model.

  1. Switch to Models tab
  2. Set the drag model as Sphare Drag
  3. Set the heat transfer model as Ranz-Marshall
  4. Set the drag model as Evaporation & Boiling
Spray Combustion 19 Discrete Phase Models

21. Turbulence

For the purpose of this tutorial, we will simulate the turbulence phenomenon using the Realizable \(k {-} \varepsilon\) model.

  1. Go to Turbulence panel
  2. Select RANS turbulence formulation
  3. Select Realizable \(k {-} \varepsilon\) model
Spray Combustion 20 Turbulence

22. Solution - PIMPLE

To increase the stability of the simulation we will increase the number of iterations per time step.

  1. Go to Solution panel
  2. Switch to the PIMPLE tab
  3. Set Outer Correctors to 2
Spray Combustion 21 Solu PIMPLE

23. Initial Conditions - Basic

Initially, the entire domain is filled with air. We will set the initial pressure and temperature in the chamber.

  1. Go to Initial Conditions panel
  2. Set the initial pressure in the chamber P to 5e6 Pa
  3. Set the initial temperature in the chamber T to 800 Kelvin
Spray Combustion 21 Initial Condition

24. Monitors - Temperature

In order to measure maximum and minimum temperature, we will use the volume monitor.

  1. Go to Monitors panel
  2. Expand the Fields for the Minimum volume monitors
  3. Select the temperature field T
  4. Repeat this step for the Maximum and Average volume monitors.
    Selected fields will be visible next to the volume monitor names.
Spray Combustion 22 Monitors

25. Run - Time Control

Before running computations, adjust the time controls in order to capture the physical and chemical phenomena that occur during the process.

  1. Go to RUN panel
  2. Set the Simulation Time [s] to 5e-03
  3. Set the Time Stepping \(\Delta \sf{t[s]}\) to 5e-06
Spray Combustion 23 Run Time Control

26. Run - Output

We can control how often results should be saved on the hard drive. We will write the results at the interval of \(5e-05\) second. Note, that only saved data will be available during postprocessing.

  1. Switch to Output tab
  2. Set the Interval [s] to 5e-05
Spray Combustion 24 Run Output

27. Run - CPU

This simulation will require high CPU usage and might take several hours to finish the calculation depending on the machine used. To speed up the calculation process increase the number of CPUs basing on your PC capability. We recommend using at least 4 cores for this tutorial. The free version allows you to use only 2 processors in parallel mode. To get the full version, you can use the contact form to Request 30-day Trial

Estimated computation time for 2 processors: 2 hours

  1. Switch to CPU tab
  2. Use parallel mode
  3. Increase the Number of processors
  4. Click Run Simulation button
Spray Combustion 25 Run CPU

28. Results - Temperature

Keep track of the domain’s maximum and minimum temperature. A sudden increase in temperature is a result of the combustion process.

  1. Switch tab to T in volume next to the residuals
Spray Combustion 25 Temperature monitor

29. Postprocessing - ParaView

After the computation is finished we can do a comprehensive visualization of our results with ParaView.

  1. Go to POSTPROCESSING panel
  2. Click on Run ParaView
Spray Combustion 26 Postprocessing ParaView

30. ParaView - Load Results (I)

Load the results into the program.

  1. Select turbidity_current
  2. Click Apply to load results into ParaView
Spray Combustion 27 ParaView Load Results 1

31. ParaView - Load Results (II)

ParaView skips the initial time step by default, therefore we need to add the zero time to simulation.

  1. Uncheck Skip Zero Time
  2. Click Refresh
  3. Click Apply
  4. Set the time or time step to 0
  5. Select temperature T
Spray Combustion 28 ParaView Load Results 2

32. ParaView - Clip

We will slice the domain in the direction of spray combustion.

  1. Select Clip options from top menu
  2. Define the origin and normal of the clip plane:
    Origin000
    Normal1-10
  3. Click Apply
  4. Check the clip in the 3D graphic window
Spray Combustion 29 ParaView Clip

33. ParaView - Temperature (I)

Now we will check the temperature distribution during the process.

  1. Uncheck Show Plane for better visualisation
  2. Select Rescale to data range over all timesteps
  3. Confirm choise by clicking Rescale and disable auromatic rescaling
Spray Combustion 30 ParaView Temp Rescale

34. ParaView - Temperature (II)

  1. Play with animation buttons to track the results of the analysis.
Spray Combustion 31 ParaView Temp Map

35. ParaView - Spray Phase

Finally, we will look at the spray particle movement.

  1. Select C7H16 (partial) from the list
  2. Click Rescale to Custom Data Range
  3. Set the range from 0 to 0.1
  4. Confirm by clicking Rescale and disable automatic rescaling
  5. Play with an animation buttons to track the results of analysis.
Spray Combustion 32 ParaView Spray Phase

36. Advanced Postprocessing with ParaView

This concludes the tutorial, covering all the aspects we intended to showcase. For a finely tuned presentation of the results, you may take advantage of the more advanced features.

In ParaView, you can display streamlines, contour plots, vector fields, line or time plots, calculating volume or surface integrals and create animations.

To familiarize yourself with the ParaView capabilities, it’s worth checking out our video tutorial, Paraview CFD Tutorial - Advanced Postprocessing in ParaView, in which we demonstrate some of the most commonly used post-processing techniques.