Introduction
This demonstration case models unsteady turbulent 3D melt flow in a laboratory model of Czochralski crystal growth system using OpenFOAM. The buoyancy effects as well as the crystal and crucible rotation are considered.
Large Eddy Simulation (LES) model is used to describe the turbulence effects. Optionally, Reynolds-Averaged Navier–Stokes (RANS) model, such as k-ω SST or k-ε can be used instead. For the mesh generation, the Gmsh program is used. The physics simulations are performed using the OpenFOAM library.
This demonstration can be used for evaluation of the melt flow in a Czochralski crystal growth system. Another purpose is to demonstrate the typical workflow and steps of HPC calculations.
Problem background
This case considers a 3D simulation domain describing the melt inside a crucible according to the paper Krauze, A., Jēkabsons, N., Muižnieks, A., Sabanskis, A., & Lācis, U. (2010). Applicability of LES turbulence modeling for CZ silicon crystal growth systems with traveling magnetic field. Journal of crystal growth, 312(21), 3225-3234. The geometry is axisymmetric, the crystallization interface is flat and its center coincides with the symmetry axis. The heat input from the crucible side and heat losses from the free melt surface are specified by the user. Melt velocity U and temperature T are calculated. Their values are averaged in time; the temperature fluctuations are computed as well, see Figure below.
To get these visualizations, ParaView program is required.

Boundary conditions for melt velocity are:
- Rotational velocities at
crystalandcrucible - Slip condition at
freesurf
Boundary conditions for melt temperature are:
- Fixed temperatures at
crystal - Prescribed heat flux density at
crucibleandfreesurf(depending on the radial position)
Running the case on an HPC cluster
The demonstration case is prepared as a public Git repository. It can be cloned and run using this link. Automatization of pre- and post-processing (for improving convenience for first-time users) is realized by Python and shell scripts.
For example, to prepare mesh, just execute the following command:
./run1-create-mesh.sh
A quarter of the whole mesh (mesh.msh) is first generated by Gmsh from mesh.geo, which is then imported to OpenFOAM and mirrored across xy and xz planes to create the full axisymmetric geometry. After the mesh is ready, mesh-*.png files will appear in the current directory. They show mesh slices in three planes (xz, yz and xy) and allow to check if the mesh looks good before continuing to the next step. An example of these images is shown below:

To make adjusting the most relevant parameters easier, they are collected in the file parameters.py. For example, to change the geometry, adjust the values assigned to geometric parameters before starting the simulation.
For the detailed step-by-step instructions see this link.