ANSYS - CFX, Fluent, Mechanical#
Versions Installed
Kay: 19.2 / 2019R3 / 2020R1 / 2021R1
LXP:
Description#
Ansys suite of software provides multi-disciplinary modelling and simulation tools. It includes popular solvers such as Fluent, CFX. More information can be found here.
License#
In order to use any Ansys software a user must contact the Helpdesk and request to be added in the respective user group.
Benchmarks#
N/A.
CFX Job Submission Example#
Like other jobs on ICHEC systems, CFX jobs must be submitted using a Slurm submission script. The following is an example Slurm submission script for running a CFX job on 2 nodes for 1 hour wall time (the CFX definition file is called test.def
):
#!/bin/sh
# All the information about queues can be obtained using 'sinfo'
# PARTITION AVAIL TIMELIMIT
# DevQ up 1:00:00
# ProdQ* up 3-00:00:00
# LongQ up 6-00:00:00
# ShmemQ up 3-00:00:00
# PhiQ up 1-00:00:00
# GpuQ up 2-00:00:00
# Slurm flags
#SBATCH -p ProdQ
#SBATCH -N 2
#SBATCH -t 1:00:00
#SBATCH --job-name=myjobname
# Charge job to myproject
#SBATCH -A myproject
# Write stdout+stderr to file
#SBATCH -o output.txt
# Mail me on job start & end
#SBATCH --mail-user=myemailaddress@universityname.ie
#SBATCH --mail-type=BEGIN,END
cd $SLURM_SUBMIT_DIR
#Create a list of available nodes for the CFX executable:
hostnames=`scontrol show hostnames $SLURM_JOB_NODELIST`
hostnames=`echo $hostnames | sed -e 's/ /,/g'`
#Load the ansys module - CFX is then accessible
version=19.2
module load ansys/$version
#Partition + Solve:
cfx5solve -def test.def -par-dist $hostnames -start-method 'HP MPI Distributed Parallel'
This job can be submitted using the command
sbatch scriptname.sh
where scriptname.sh
is the filename of the sample Slurm submission script.
Fluent Job Submission Example#
Like other jobs on ICHEC systems, Fluent jobs must be submitted using a Slurm submission script. The Slurm submission script should launch the Fluent executable with the Graphical User Interface (GUI) disabled. This can be achieved by specifying the -g
argument on the command line. When the GUI is disabled, Fluent commands can be issued using the Fluent Text User Interface (TUI). A series of TUI commands can be saved to a text file, which can subsequently read by the Fluent solver using the -i
command line argument. The following is a minimal example Slurm submission script for running a steady-state 3D Fluent job on 2 nodes for a wall time of 1 hour (the Fluent case file is called “example.cas.gz”):
#!/bin/sh
# All the information about queues can be obtained using 'sinfo'
# PARTITION AVAIL TIMELIMIT
# DevQ up 1:00:00
# ProdQ* up 3-00:00:00
# LongQ up 6-00:00:00
# ShmemQ up 3-00:00:00
# PhiQ up 1-00:00:00
# GpuQ up 2-00:00:00
# Slurm flags
#SBATCH -p ProdQ
#SBATCH -N 2
#SBATCH -t 1:00:00
#SBATCH --job-name=myjobname
# Charge job to myproject
#SBATCH -A myproject
# Write stdout+stderr to file
#SBATCH -o output.txt
# Mail me on job start & end
#SBATCH --mail-user=me@mydom.ie
#SBATCH --mail-type=BEGIN,END
cd $SLURM_SUBMIT_DIR
#Load the ansys module - Fluent is then accessible
version=19.2
module load ansys/$version
# Load intel module for using the Intel MPI libraries
module load intel
# Get hostnames of the allocated nodes
scontrol show hostnames $SLURM_JOB_NODELIST > hostNamesFile.txt
#Run the fluent executable:
fluent 3ddp -t80 -cnf=hostNamesFile.txt -g -i fluentCommandsFile.txt -platform=intel -mpi=intel
The following is a summary of Fluent command line parameters used in the above Slurm submission script:
parameters |
Description |
---|---|
|
Run a 3D simulation in double precision (remove dp for single precision). |
|
Use 80 cores (i.e. 2 nodes of 40 cores each) |
|
Provides the Fluent solver with the list of nodes allocated to the Slurm job |
|
Run Fluent without the GUI |
|
Read Fluent commands from fluentCommandsFile.txt [1]. |
|
Use the Fluent executable optimized for Intel processors |
|
Use the Intel MPI for communication among Fluent processes |
For this example, fluentCommandsFile.txt contains the following Fluent commands (comments in this file begin with a semicolon ;
):
; Read the Fluent case file
/file/read-case/ example.cas.gz
; Initialise the flow field
/solve/initialize/initialize-flow
; Run the solver for 200 iterations
/solve/iterate 200
; Write the results to a data file
/file/write-data example.dat
; Exit Fluent
/exit yes
This job can be submitted using the command
sbatch scriptname.sh
where scriptname.sh is the filename of the sample Slurm script.
Mechanical Job Submission Example#
Like other jobs on ICHEC systems, Ansys Mechanical jobs must be submitted using a Slurm submission script. The following is an example Slurm submission script for running a Ansys Mechanical job on 1 node for 1 hour wall time (the input file is ./myinput.inp
):
#!/bin/sh
# All the information about queues can be obtained using 'sinfo'
# PARTITION AVAIL TIMELIMIT
# DevQ up 1:00:00
# ProdQ* up 3-00:00:00
# LongQ up 6-00:00:00
# ShmemQ up 3-00:00:00
# PhiQ up 1-00:00:00
# GpuQ up 2-00:00:00
# Slurm flags
#SBATCH --partition=ProdQ
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=40
#SBATCH --time=1:00:00
#SBATCH --job-name=myjobname
# Charge job to myproject
#SBATCH --account=myproject
# Write stdout+stderr to file
#SBATCH --output=log_slurm.txt
# Mail me on job start & end
#SBATCH --mail-user=me@mydom.ie
#SBATCH --mail-type=BEGIN,END
cd $SLURM_SUBMIT_DIR
#Load the ansys module - Ansys Mechanical is then accessible
version=19.2
module load ansys/$version
# Get hostnames of the allocated nodes
MYMACHINES=$(srun hostname | sort | uniq -c | \awk '{print $2 ":" $1}' | \paste -s -d ":" -)
# Run Ansys MAPDL
mapdl -dis -mpi INTELMPI \
-machines $MYMACHINES \
-j "file" \
-s noread \
-b list \
-i ./myinput.inp \
-o ./file.out
This job can be submitted using the command
sbatch scriptname.sh
where scriptname.sh
is the filename of the sample Slurm submission script.