Turbulent Flow with Concentration#

This tutorial demonstrates how to simulate a 2D incompressible turbulent flow with constituent transport using TrioCFD’s k-ε model. Figure 6 shows the geometry of the test case you will run in this tutorial.

marche

Figure 6 Geometry of the downward march case#

Problem Setup#

Fluid Properties#

Property

Value

Dynamic viscosity \(μ\)

\(3.7 \cdot 10^{-5} kg \cdot m^{-1} \cdot s^{-1}\)

Density \(ρ\)

\(2 kg \cdot m^{-3}\)

Reynolds number \(Re\)

54,054

Boundary Conditions#

Location

Velocity

Pressure

k

ε

Notes

Inlet

\(U_0 = 1 m \cdot s^{-1}\)

-

\(10^{-2}\)

\(10^{-3}\)

Imposed velocity, dimensionless k and ε

Outlet

-

\(P_0 = 0\)

0

0

Constant pressure

Top/Bottom walls

\(U = 0\)

-

Standard flux

Null

No-slip condition

Study Template Preparation#

To start, copy the base Marche study, which provides a foundation for 2D incompressible turbulent flow using the k-ε model.

Navigate to your working directory: $MY_TRUST_TUTORIAL and execute:

triocfd -copy Marche

Since we’ll be working with constituent diffusion, the Constituants study also needs to be copied as it demonstrates 2D incompressible laminar flow with constituents:

triocfd -copy Constituants

Documentation access is available through the TrioCFD index system, which provides access to the Reference Manual containing the necessary keywords for problem configuration:

triocfd -index

You can also find those informations in the TrioCFD Documentation

Test Case Implementation#

Problem Configuration and Constituent Setup#

First, open the Marche.data file.

The data file modification begins by renaming the problem to accommodate concentration equations.

Check the TrioCFD Reference Manual to find the appropriate keywords.

Then, add 3 constituents of equal diffusivities (\(\alpha = 1 m \cdot s ^{-1}\)) in the block problem after the fluid definition)

Define the concentration equation into the problem with the correct initial (\(C_1 = C_2 = C_3 = 0\)) and boundary conditions. Remember that concentrations are a vectors of 3 components.

Use the Schmidt model to close the turbulence model in the concentration equation

Turbulence Model Modification#

Chage the Navier-Stokes turbulence model to an anisotropic concentration-coupled version: Source_Transport_K_Eps_aniso_concen { C1_eps 1.44 C2_eps 1.92 C3_eps 1. }

This modification ensures proper coupling between the flow field and concentration transport.

Additionally, the fluid definition must include a volume expansion coefficient for concentration (beta_co) set as a uniform field equal to 0, along with a gravity field initialized to 0.

Initial Validation and Sub-domain Definition#

Try to run your update test case:

triocfd marche

Now, you will define the sub domain in grey in Figure 6.

To do so, you will need to use the Sous_Zone keyword. To find an example of the Sous_Zone keyword usage, run the following:

trust -search Sous_Zone

It will give you tha list of TRUST test cases that use this keyword. You can for example edit the PCR.data file of the PCR test case.

Source Term Implementation#

The second constituent requires a specific source term (S₂ = 1 m⁻³) applied exclusively to the defined sub-domain. This implementation uses the Champ_Uniforme_Morceaux keyword to ensure spatial localization of the source effects.

Post-processing and run#

Now, add a source term for the second constituent only ($S_2 = 1 m^{-3}) applied on the sub domain thanks to the keyword Champ_Uniforme_Morceaux.

Change post-processing format to lata in the post-processing block.

Add the keywords concentration0, concentration1, concentration2 in the fields of the post-processing block to write the 3 concentrations into the .lata file.

Run the calculation:

triocfd marche

And check the results with Visit. You will be able to see the different concentrations.