Prerequisites - getting access to Fluent
Fluent (version 6.3.26) is installed and available on the Lonsdale, IITAC and Parsons clusters. To use Fluent, you must first apply for an account on one of these machines.
Before you run Fluent, you must ensure that the fluent module is loaded in your environment settings. To add the fluent module to your environment, run the command:
module load apps fluent
You can also add this line to your
~/.bashrc file which will automatically load fluent next time you log in.
Licenses - Fair Usage Policy
There are a limited number of Fluent licenses, at present there are 16. A fair usage policy applies to these use of these licenses and no one users should check out more than 4 licenses at any time. It is important to note that College holds an academic license for Fluent. If you wish to carry out commercial work using the software you must contact the Centre to commence a process and obtain an appropriate license.
Staff and Students at Trinity College can gain access to Fluent Software and Training material at:
Note: This material is available to TCD stuff and students for non-commercial research only.
How do I run Fluent on TCHPC systems
Fluent can be run in either interactive mode or batch more. In interactive mode, you open an X terminal and run a user driven simulation using the Fluent GUI, much as you would run Fluent from your Desktop. In batch mode, you set up a fluent journal file and run a batch driven simulation.
- To find out more about running interactive GUI jobs see here.
- To find out more about running batch jobs see here.
Running Fluent Interactively from Windows
Once you have following the instructions here, you should be logged into one of the compute nodes (e.g. 'lonsdale-n143').
Now, run the following to start fluent:
[neil@lonsdale-n143 ~]$ module load apps fluent [neil@lonsdale-n143 ~]$ fluent [neil@lonsdale-n143 ~]$
To run Fluent in batch mode, you need to decide what compute resources you require and set up a journal file with all the commands needed for Fluent to run.
Joe has set up a 3D Fluent model to simulate steady state airflow over an aircraft wing on his Desktop. He has read in a mesh file
"aircraft.msh", selected appropriate materials, specified initial and boundary conditions, a solver, etc., and initialised the problem. He has then saved a case and data file of his complete setup as
Joe wants to iterate until his model converges to steady state airflow. From past experience, he predicts that this simulation can be performed without human intervention, and he estimates that it will take 800 iterations to converge. However, Joe also knows that there is a possibility that the problem will not converge in 800 iterations, and that it may need some human intervention to, say, refine selected cells if the gradient of variables in some regions are too high.
So, Joe decides to iterate for 1000 steps and save the output of the iteration every 250 steps. If the simulation fails to converge, Joe will be able to compare the residuals after 250, 500, 750 and 1000 steps, pick the most advantageous one, and carry out any adjustments necessary to ensure future convergence.
Fluent Journal Script
Joe's Fluent journal script (e.g. "
journalfile.jou") might look like this:
file/read-case-data aircraft.cas it 250 wcd "aircraft250.cas" it 250 wcd "aircraft500.cas" it 250 wcd "aircraft750.cas" it 250 wcd "aircraft1000.cas"
Submitting a Batch Fluent Job to Slurm
With the correct journal file set up, the final step is to submit this to the Slurm queuing system.
This will involve creating a Slurm batch file like the following (please see here for more general details on the options in Slurm):
#!/bin/sh #SBATCH -n 1 # 1 core #SBATCH -t 1-03:00:00 # 1 day and 3 hours #SBATCH -p compute # parition name #SBATCH -J fluent_batch # sensible name for the job # load the relevant module files. NB: if unsure about # what you need, please contact ops source /etc/profile.d/modules.sh module load apps fluent # run slurm in batch on the allocated node(s) # the '-t4' specifies 4 cores (academic licensing) fluent 2d -g -t4 -i journalfile.jou > outputfile.out
The fluent options in the above Slurm script are:
|the fluent version used|
|no graphical environment|
|read the journal file provided|
Running fluent in parallel
Example submission script:
#!/bin/sh #SBATCH -n 16 # cores #SBATCH -t 1-00:00:00 # 1 day walltime #SBATCH -p compute # partition name #SBATCH -J paraFluent # sensible name for the job # load the relevant module files source /etc/profile.d/modules.sh module load apps fluent default-intel-impi FLUENTNODES="$(scontrol show hostnames)" echo $FLUENTNODES fluent 3ddp -t 16 -mpi=intel -ssh -pinfiniband -cnf=$FLUENTNODES -g -i test.jou > output.`date '+%F_%H-%M-%S'`
Notes on the example script:
- In order for MPI to work the
default-intel-impimodule or similar are required and must be loaded in the batch script
-t 16specifies 16 cores
-mpi=intelensures the correct mpi is used
-sshforces fluent to use ssh instead of rsh which isn't available
-cnf=$FLUENTNODES- fluent requires a hosts list, which can be acquired from the slurm environment.