# Static Mixer - CFD Simulation

Source: https://help.sim-flow.com/tutorials/static-mixer
Last updated: 2026-10-02

[Video](https://help.sim-flow.com/tutorials/images/static-mixer.mp4)

## 1. Introduction

In this tutorial, we demonstrate a feature called *Passive Scalar*. Passive scalar adds a transport equation to the system of governing equations. The passive scalar does not influence the flow itself but only introduces a marker for tracing fluid transport. This tutorial is used to track the mixing of gases entering from 2 different inlets. The flow is still solved as a single phase, and *Passive Scalar* only tracks how fluid travels from one inlet and mixes with the same fluid coming from the other inlet. In some cases, this technique can be used to track different fluids, as long as the properties of the fluid are very close to each other (density, viscosity). In postprocessing, you will learn how to create *Streamlines* in ParaView.

## 2. Download SimFlow

SimFlow is a general-purpose [CFD Software](https://sim-flow.com/download/cfd-simulation-software/)

To follow this tutorial, you will need the SimFlow free version. You may download it via the following link:
[Download SimFlow](https://sim-flow.com/download-simflow/)

## 3. Create Case

Open SimFlow and create a new case named *static mixer*

1. Click **New**
2. Provide name `static mixer`
3. Click **Create** to open a new case

![simflow-launcher](https://help.sim-flow.com/tutorials/images/launcher-static_mixer.png)

## 4. Import Geometry

Firstly, we need to [Download GeometryStaticMixer](https://help.sim-flow.com/tutorials/downloads/static-mixer/staticMixer.stl)

1. Click **Import Geometry**
2. Select geometry file *staticMixer.stl*
3. Click **Open**

![staticMixer 02 Import geometry](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_02_Import_geometry.png)

## 5. Imported Geometry Units

The STL format does not contain the unit information which is 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 the *Geometry size* label. In our case, the default unit meter is correct.

1. To confirm default unit *meter*, press **OK**

![staticMixer 02 unit](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_02_unit.png)

## 6. Geometry - Static Mixer

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

1. Click **Fit View** to zoom in on the geometry.

![staticMixer 03 Geometry](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_03_Geometry.png)

## 7. Meshing Parameters - Static Mixer

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

1. Go to **Hex Meshing** panel
2. Select **staticMixer** geometry
3. Enable *Mesh Geometry*

![staticMixer 04 Hex mesh](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_04_Hex_mesh.png)

## 8. Base Mesh - Domain

The imported geometry represents only the mixer blades. By using a cylinder base mesh, we will define the pipe housing.

1. Switch to **Base** tab
2. Choose base mesh type
   *Base Mesh Type* *Cylinder*
3. Set the cylinder axis
   *Axis* *Z*
4. Set the size of the cylinder base mesh:
   *Length \({\sf [m]}\)*`0.12`
   *Radius \({\sf [m]}\)*`0.0154`
5. 67 Set the following parameters accordingly
   *Radial Division*`12`
   *Axial Division*`100`
   *Central Division*`21`

![staticMixer 05 Base Mesh v2](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_05_Base_Mesh_v2.png)

## 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. Choose boundary names accordingly
   *First Disk* *inlet*
   *Second Disk* *outlet*
   *Cylinder* type `wall` in the text box
   To edit a name: place the cursor to modify text, or double-click to select and overwrite text. Adding a new name will automatically save it to the list.
2. Choose boundary types accordingly
   *First Disk* *patch*
   *Second Disk* *patch*
   *Cylinder* *wall*

![staticMixer 06 Mesh Boundaries](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_06_Mesh_Boundaries.png)

## 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 outside the blades.

1. Switch to **Point** tab
2. Specify the location of the material point inside staticMixer
   *Material Point*`0``0``0.1`

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

![staticMixer 07 Material point](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_07_Material_point.png)

## 11. Start Meshing

1. Go to **Mesh** tab
2. Start the meshing process with **Mesh** button

![staticMixer 08 Meshing](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_08_Meshing.png)

## 12. Mesh

After the meshing process is finished, the mesh should appear in the graphics window.

1. Click **Fit View** to zoom in on the mesh

![staticMixer 09 Mesh](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_09_Mesh.png)

## 13. Create Geometry - Box

To provide two different fluids into the mixer, we need to split the inlet boundary into two separate ones. We will use additional geometry to mark the selection for the extraction.

1. Go to **Geometry** panel
2. Select **Create Box**
3. Set the origin and box dimensions
   *Origin \({\sf [m]}\)*`-0.02``0``-5e-03`
   *Dimensions \({\sf [m]}\)*`0.05``0.02``1e-02`

![staticMixer 11 Geometry box](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_11_Geometry_box.png)

## 14. Inlet Boundary (I)

Now, using the new geometry, we will extract a new boundary from the original inlet.

1. Go to **MESH** panel
2. Expand the **Options** list next to inlet boundary
3. Select **Extract From** option

![staticMixer 12 Inlet extract](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_12_Inlet_extract.png)

## 15. Inlet Boundary (II)

1. Check *box_1*
2. Click **Extract**

![staticMixer 13 Inlet extract 2](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_13_Inlet_extract_2.png)

## 16. Inlet Boundary (III)

1. Change the names accordingly
   *inlet* → `inlet_scalar0`
   *inlet_in_box_1* → `inlet_scalar1`
   (double-click on the name to change it)

![staticMixer 14 Inlet extract 3](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_14_Inlet_extract_3.png)

## 17. Inlet Boundary (IV)

As a result of the extraction, we should receive two separate inlet boundaries. Both boundaries can be distinguished by the different colors.

1. Expand **Graphics Objects List**
2. Uncheck the icon next to the *Geometries* to hide all geometry and press the `Esc` key
3. Check if the inlet boundaries are colored differently

![staticMixer 15 Inlet preview](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_15_Inlet_preview.png)

## 18. Domain Modification (I)

With SimFlow, the user can also modify the existing mesh domain. We can extend the volume by extruding a specific boundary. For the purpose of this tutorial, we will extend the mixer tube by extruding the outflow face.

1. Select **outlet** boundary
2. Expand the **Options** list
3. Select **Extrude** option

![staticMixer 16 Domain Modification 1](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_16_Domain_Modification_1.png)

## 19. Domain Modification (II)

The outlet boundary will be extended by 5 cm, and the additional mesh will be split into 37 cells in the extrusion direction.

1. Set the number of layers accordingly
   *Number of Layers*`37`
2. Set the thickness accordingly
   *Thickness*`0.05`
3. Click **Extrude**

![staticMixer 17 Domain Modification 2](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_17_Domain_Modification_2.png)

## 20. Simulation Type

We want to analyze the transient and incompressible flow in a static mixer. For this purpose, we will use a single-phase, transient, incompressible flow simulation.

## 21. Turbulence

In this tutorial, we will consider a laminar flow.

1. Go to **Turbulence** panel
2. Make sure the *Laminar* model is selected

![staticMixer 19 Turbulence](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_19_Turbulence.png)

## 22. Transport Properties

In order to define water properties, we go to the transport properties panel. We will use predefined fluid properties from the material database.

1. Go to **Transport Properties** panel
2. Click on **Material Database**
3. Select the *water*
4. Click **Apply**

![staticMixer 20 Transport properties](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_20_Transport_properties.png)

## 23. Passive Scalar

We will use passive scalar to simulate the mixing of two different fluids. Passive scalar adds an additional transport equation to the system of governing equations. Note that the passive scalar does not influence the flow itself but only introduces a marker for tracing fluid transport. The scalar takes a value between 0 and 1 (0 represents clear water, and 1 represents water with air dissolved in it). To control scalar properties, we can define either the Schmidt number or custom diffusivity. In our case, we will define custom diffusivity equal to 2.0e-09, which corresponds to the water-air mixture.

1. Go to **Passive Scalars** panel
2. Press **Add new passive scalar Equations** button
3. Click on **scalar1** to expand options list
4. Check the *Custom Diffusivity*
5. Set the diffusivity
   *Diffusivity \({\sf [m^2/s]}\)*`2e-09`

![staticMixer 21 Passive Scalar](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_21_Passive_Scalar.png)

## 24. Boundary Conditions - Inlet Scalar 0 (Flow)

We will define the constant inlet velocity for both inlets.

1. Go to **Boundary Conditions** panel
2. Select **inlet_scalar0** boundary
3. Set the boundary character
   *inlet_scalar0* *Velocity Inlet*
4. Change the type and value of the velocity
   *U**Type*`Fixed Value`
   *U**Value \({\sf [m/s]}\)*`0``0``0.15`

![staticMixer 22 BC Inlet flow](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_22_BC_Inlet_flow.png)

## 25. Boundary Conditions - Inlet Scalar 1 (Flow)

Repeat these steps for the second inlet.

1. Select **inlet_scalar1** boundary
2. Set the boundary character
   *inlet_scalar1* *Velocity Inlet*
3. Change the type and value of the velocity
   *U**Type*`Fixed Value`
   *U**Value \({\sf [m/s]}\)*`0``0``0.15`

![staticMixer 23 BC Inlet flow2](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_23_BC_Inlet_flow2.png)

## 26. Boundary Conditions - Inlet Scalar 1 (Scalars)

For the inlet_scalar1 boundary, set the inflow phase value.

1. Switch to **Scalars** tab
2. Set the value of scalar1 to:
   *scalar1**Inlet Value \({\sf [-]}\)*`1`

![staticMixer 24 BC Inlet 2 Scalar](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_24_BC_Inlet_2_Scalar.png)

## 27. Initial Conditions

Before we start the simulation, we need to define the initial conditions. We will specify a constant velocity equal to *0.15 m/s*, which corresponds to the inlet velocity.

1. Go to **Initial Conditions** panel
2. Set the velocity
   *U* `0``0``0.15`

![staticMixer 25 Initial Condition](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_25_Initial_Condition.png)

## 28. Monitors - Create Slice (I)

During calculation, we can observe intermediate results on a section plane. To add sampling data on a plane, we need to define plane properties and also select variables that will be sampled. Note that runtime postprocessing can only be defined before starting calculations and cannot be changed later on.

1. Go to **Monitors** panel
2. Switch to **Sampling** tab
3. Select **Create Slice**
4. Expand **Fields** list
5. Select all available options
   *Fields* *p* *U* *scalar1*
6. The normal is defined along the Z axis. Set the point to:
   *Point \({\sf [m]}\)*`0``0``0.05`

![staticMixer 26 Monitor Slice 1](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_26_Monitor_Slice_1.png)

## 29. Monitors - Create Slice (II)

Create the next slice above the mixer.

1. Expand **Options** list next to the slice_1
2. Click **Duplicate**
3. Click on **slice_2** to expand options list
4. Change the point coordinate
   *Point [m]* `0``0``0.1`

![staticMixer 27 Monitor Slice 1](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_27_Monitor_Slice_1.png)

## 30. Monitors - Create Slice (III)

Duplicate the slice once again and move it to the vicinity of the outlet.

1. Expand **Options** list next to the slice_2
2. Click **Duplicate**
3. Click on **slice_3** to expand options list
4. Change the point coordinate
   *Point [m]* `0``0``0.15`

![staticMixer 28 Monitor Slice 2](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_28_Monitor_Slice_2.png)

## 31. Run - Time Controls

Before running computations, adjust the time controls in order to capture appropriate time scales of the flow features.

1. Go to **RUN** panel
2. Set the simulation time
   *Simulation Time [s]* `3`
3. Set the time stepping
   *Time Stepping \(\Delta t[s]\)* `1e-03`

![staticMixer 29 Run Time Control](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_29_Run_Time_Control.png)

## 32. Run - Output

We can control how often results should be saved on the hard drive. We will write the results at the interval of ` 0.1 ` seconds. Note that only saved data will be available during postprocessing.

1. Switch to **Output** tab
2. Set the write control interval
   *Write Control* *Interval [s]* `0.1`

![staticMixer 30 Run Output](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_30_Run_Output.png)

## 33. Run - CPU

To speed up the calculation process, take advantage of parallel computing and increase the number of CPUs based on your PC’s capability. The free version allows you to use only one processor (serial mode). To get the full version, you can use the contact form to [Request 30-day Trial](https://license.sim-flow.com/trial)

Estimated computation time for serial mode: 30 minutes

1. Switch to *CPU* tab
2. Click **Run Simulation** button

![run cpu serial](https://help.sim-flow.com/tutorials/images/run-cpu-serial.png)

## 34. Residuals

When the calculation is finished, we should see a similar residual plot.

![staticMixer 31 Residuals](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_31_Residuals.png)

## 35. Results - Slice

The Slices tab appears next to Residuals. Under this tab, we can preview results on the defined slice planes. The results preview is available during the calculation, and we can track it on a regular basis. The newly calculated time step will be updated automatically as long as the time selector points to the latest time step.
We want to check if the fluids are mixed at the end of the mixer. We will display the scalar1 contribution at each slice in the mixer.

1. Change tab to **Slice**
2. Change displayed results by selecting **scalar1**
3. To adjust the color range to actually displayed data, click **Adjust range to data**
4. Play with animation buttons to view the results of the analysis.

![staticMixer 31 Results scalar](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_31_Results_scalar.png)

## 36. Postprocessing - ParaView

After computations are finished, we can do complex visualization of our results with ParaView.

1. Go to **POSTPROCESSING** panel
2. Click on **Run ParaView**

![staticMixer 32 Postprocessing ParaView](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_32_Postprocessing_ParaView.png)

## 37. ParaView - Load Results

Load the results into the program.

1. Select *static_mixer.foam*
2. Click **Apply** to load results into ParaView
3. After loading results, they will be shown in the 3D graphics window
4. Click on a **Load a colour palette** from the top menu and select **White Background**

![staticMixer 33 PV Read Results](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_33_PV_Read_Results.png)

## 38. ParaView - Streamline (I)

We can visualize the flow by displaying the streamlines.

1. Select **Stream Tracer** from top menu
2. Set the maximum streamline length
   *Maximum Streamline Length* `0.3`
3. Change the seed type
   *Seed Type* *Point Source*
4. Type the center coordinate and radius of the sphere:
   *Center*`0``0``0`
   *Radius*`0.016`
5. Uncheck the *Show Sphere*
6. Increase the number of points
   *Number of Points* `200`
7. Click **Apply**
8. Select the *scalar1* from the list
9. Play with animation buttons to track the results of the analysis.

![staticMixer 34 PV Streamline 1](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_34_PV_Streamline_1.png)

## 39. ParaView - Streamline (II)

To show the geometry together with the streamlines, we will follow the steps below:

1. Click on the eye next to *static_mixer.foam*
2. Select *Solid Color* from the list
3. Change the opacity
   *Opacity* `0.3`

![staticMixer 35 PV Streamline 2](https://help.sim-flow.com/tutorials/images/static-mixer/staticMixer_35_PV_Streamline_2.png)

## 40. 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, calculate 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 postprocessing techniques.

[Paraview CFD Tutorial - Advanced Postprocessing in ParaView](https://www.youtube.com/watch?v=5M6VgXyHB60&list=PLy7xPqn9xXckoD2gZgPpv8mrxillJ9PWU&index=21)
