Ansys

From SciNet Users Documentation
Revision as of 19:50, 6 November 2026 by Ejspence (talk | contribs)
Jump to navigation Jump to search

The Ansys engineering simulation tools are installed in the CC software stack.

Getting a license

CMC Microsystems no longer provides Ansys licences. Trillium users should use the Alliance-wide SHARCNET licence, which is free for academic use on any Alliance cluster, or an Ansys licence server at their own institution.

To use the SHARCNET licence, create the file ~/.licenses/ansys.lic containing:

setenv("ANSYSLMD_LICENSE_FILE", "1055@license1.computecanada.ca")

The SHARCNET licence is shared first come, first served and has a per-researcher core limit. The Alliance Ansys page gives the current limit, the products covered, and the instructions for using a local institutional licence server.

Running on Trillium

Load the following modules (current as of Apr 2026, newer versions may be available):

module load StdEnv/2023
module load ansys/2025R2.04

Programs available:

  • fluent
  • ansysedt
  • mapdl
  • ...

You can use the Ansys graphical tools to set up your problem, but you cannot use the graphical tools to submit your job. The job must be submitted to the scheduler for running.

More information can be found here: https://docs.alliancecan.ca/wiki/ANSYS

Setting up your .mw directory

Ansys will attempt to write to your $HOME/.mw directory. This will work when you are testing your workflow on the login nodes, because they can write to $HOME. However, recall that the compute nodes cannot write to the /home filesystem. If you attempt to run Ansys from a compute node using the default configuration, it will fail because Ansys cannot write to $HOME/.mw.

The solution is to create an alternative directory called $SCRATCH/.mw, and create a soft link from $HOME/.mw to $SCRATCH/.mw:

mkdir $SCRATCH/.mw
ln -s $SCRATCH/.mw $HOME/.mw

This will fool Ansys into thinking it is writing to $HOME/.mw, when in fact it is writing to $SCRATCH/.mw. This command only needs to be run once.

Running ansys

Example submission script for a job running on 1 node, with max walltime of 11 hours:

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=192
#SBATCH --time=11:00:00
#SBATCH --job-name test

module load StdEnv/2023
module load ansys/2025R2.04

# DIRECTORY TO RUN - $SLURM_SUBMIT_DIR is directory job was submitted from
cd $SLURM_SUBMIT_DIR

machines=$(srun bash -c 'hostname -s' | sort | uniq | awk '{print $1 ":" 40}' | paste -s -d ':')
ansys252 -b -j JOBNAME -dis -machines "$machines" -i ansys.in

Custom license server

To use your own license server for Ansys, you'll need to open SSH tunnels to the required ports and point Ansys at the tunnels. For example:

ssh tri-gw -fNL 1055:license.server:1055
ssh tri-gw -fNL 1056:license.server:1056
ssh tri-gw -fNL 2325:license.server:2325

export ANSYSLI_SERVERS=2325@localhost
export ANSYSLMD_LICENSE_FILE=1055@localhost
export LM_LICENSE_FILE=1055@localhost

The tunnels leave through the SciNet gateway tri-gw, which serves both Trillium and Balam and has outgoing address 142.150.188.58. Ask your license provider to allow connections from that address and confirm which ports the tunnel should use.