Description

ANSYS Fluent software contains the broad physical modeling capabilities needed to model flow, turbulence, heat transfer, and reactions.

Availability

Fluent is available on all Flux nodes. To access it, you will need to load the Fluent module.

$ module load fluent

There are a limited number of licenses available for Fluent for all users of Flux. You should include in your PBS script a request for a license, which is done with the following command:

#PBS -l gres=aa_r:1

where aa_r is the license name for Ansys license that is needed to run Fluent, and the :1 indicates you wish to have one reserved. The system will check to make sure there is a license available before starting your job.

Running Fluent interactively

Fluent has a graphical user interface as its primary mode, and it is therefore not typically run in interactive mode on Flux. Typically, Fluent jobs that are run on Flux will have their input files prepared on a computer with a graphical interface, which are then copied to Flux and run in batch.

Running Fluent in batch mode

To run Fluent in batch mode, you need to run it with the -g switch to prevent it attempting to start a graphical interface. Here is an example, using the 3ddp version. This runs Fluent in serial mode, using a single processor. The commands to copy the example files are included in this example, in case you wish to run this yourself.

$ cp /scratch/data/examples/fluent/pipe.* .
$ fluent 3ddp -g -i pipe.in

That will create two files, monitor-1.out and pipe.dat, which should be deleted prior to running Fluent again.

Running Fluent from PBS

If you will be running Fluent in serial mode with just a single processor, then the command given above should be included in your PBS script. If you wish Fluent to use more than one processor, however, you need to specify additional information. Here is an example of the full command.

fluent 3ddp -g -i pipe.in -mpi=intel -t $PBS_NP -ssh -cnf=$PBS_NODEFILE

Note that we specify which type of MPI to use with -mpi. The number of processors is specified with -t, and here we are using an environment variable created by PBS when the job starts that contains the number of processors allocated to the job. We need to specify how communication among nodes will be effected with -ssh, and finally, we pass the list of nodes allocated to the job with -cnf.

Here is an example of a PBS script that you can use as a template. You need to modify it to match your allocation and account.

#!/bin/bash
####  PBS preamble

#PBS -N fluent_test_script
#PBS -M grundoon@umich.edu
#PBS -m abe

#PBS -A example_flux
#PBS -l qos=flux
#PBS -q flux
#PBS -l gres=aa_r:1

#PBS -l nodes=4:ppn=2,pmem=2gb
#PBS -l walltime=1:15:00
#PBS -j oe
#PBS -V

####  End PBS preamble
if [ -s "$PBS_NODEFILE" ] ; then
    echo "Running on"
    cat $PBS_NODEFILE
fi

if [ -d "$PBS_O_WORKDIR" ] ; then
    cd $PBS_O_WORKDIR
    echo "Running from $PBS_O_WORKDIR"
fi

fluent 3ddp -mpi=intel -g -t $PBS_NP -i pipe.in 
     -ssh -cnf=$PBS_NODEFILE