STAR-CCM+ is a multidisciplinary engineering simulation suite to model acoustics, fluid dynamics, heat transfer, rheology, multiphase flows, particle flows, solid mechanics, reacting flows, electrochemistry, and electromagnetism. It is developed by Siemens.
The Alliance is authorized to host STAR-CCM+ binaries on its clusters. Researchers will need to purchase a license from Siemens in order to use the software. There are two options. Most research groups will purchase a Power-on-Demand (PoD) license which simply connects to a remotely hosted license server and requires only a license key to use. The second option is more complex and requires setting up and then managing a locally hosted institutional license server along with the purchase of a Simcenter STAR-CCM+ academic pack. For this to work, the local firewall of your STAR-CCM+ license server will need to be reconfigured. You will need to ask the administrator of your license server at your institution to open its flex and static vendor ports so they are BOTH reachable from the Network Address Translation (NAT) nodes for each of the Alliance clusters that you will be using. To get a list of NAT nodes for your administrator, submit a ticket including:
1. the names of ALL of the Alliance clusters you will be using
2. the hostname (FQDN) or public IP address of your STAR-CCM+ license server along with its flex and static vendor port numbers.
To configure your account to use a license server with the Star-CCM+ module, create a license file $HOME/.licenses/starccm.lic with the following layout:
SERVER <server> ANY <flexport>
USE_SERVER
where <server> and <flexport> should be changed to specify the hostname (or IP address) and the static vendor port of the license server respectively.
Note
Manually setting CDLMD_LICENSE_FILE equal to <port>@<server> in your Slurm script is not required, as this variable is automatically set whenever a Star-CCM+ module is loaded.
To run jobs, researchers with a Power-on-Demand (PoD) license must manually set the LM_PROJECT environment variable to your 22digit-PoD-License-Key, as shown in the sample Slurm scripts below. The following ~/.licenses/starccm.lic file must also be configured on each cluster where jobs are to be run:
Before submitting jobs on a cluster, you must set up a ~/.licenses/starccm.lic file on each cluster where you will run jobs. If you have a PoD license, the required firewall changes have already been done on all of the Alliance clusters. If, however, you will be using a local institutional license server, you will need to submit a problem ticket to technical support to request that one-time network firewall changes be made between the cluster(s) and your local license server.
Tip
If you have problems getting the licensing to work, try removing or renaming the file ~/.flexlmrc, as previous search paths and/or license server settings may be stored in it.
Warning
Temporary output files from Star-CCM+ job runs may accumulate in hidden directories named ~/.star-version_number, consuming valuable quota space. These can be removed by periodically running rm -ri ~/.starccm* and replying yes when prompted.
#!/bin/bash#SBATCH --account=def-group # Specify some account#SBATCH --time=00-01:00 # Time limit: dd-hh:mm#SBATCH --nodes=1 # Specify 1 or more nodes#SBATCH --cpus-per-task=16 # Specify cores per node (192 max)#SBATCH --mem=64G # Specify memory per node (0 max)#SBATCH --ntasks-per-node=1 # Do not change this value#SBATCH --constraint=granite # Use intel cpu only base nodes#SBATCH --switches=1 # Use 1 network switch (optional)moduleloadStdEnv/2023
#module load starccm/21.02.008-R8moduleloadstarccm-mixed/21.02.008
modulelist
SIM_FILE='mySample.sim'# Specify your input sim filename#BATCH_CMD='myMacro.java,run' # Uncomment to specify java macros, mesh, run, step# Comment the next line when using a local institutional license serverLM_PROJECT='22digit-PoD-License-Key'# Specify your Siemens PoD Key here# ------- no changes required below this line --------# Redirect from ~/.star-VERSION# to $SLURM_TMPDIRexportSTARCCM_TMP="$SLURM_TMPDIR"slurm_hl2hl.py--formatSTAR-CCM+>"$SLURM_TMPDIR/machinefile"NCORE=$((SLURM_NNODES*SLURM_CPUS_PER_TASK*SLURM_NTASKS_PER_NODE))echo"Checking $CDLMD_LICENSE_FILE ..."server=$(head-n1"$CDLMD_LICENSE_FILE"|awk'{print $2}')port=$(cat"$CDLMD_LICENSE_FILE"|grep-Eo'[0-9]+$')nmap"$server"-Pn-p"$port"|grep-v'^$';echoCPU_VENDOR=$(lscpu|awk'/Vendor ID/{print $3}')echo"CPU_VENDOR= $CPU_VENDOR"if["$CPU_VENDOR"==GenuineIntel];thenif["${EBVERSIONSTARCCM:0:2}"-lt20];thenSTAR_UCX="-xsystemucx"exportFLEXIBLAS=StarMKL
elseSTAR_FLEXIBLAS="-flexiblaslib MKL"fiSTAR_MPI="-mpi intel"STAR_FABRIC="-fabric tcp"elif["$CPU_VENDOR"==AuthenticAMD];thenif["${EBVERSIONSTARCCM:0:2}"-lt20];thenSTAR_UCX="-xsystemucx"exportFLEXIBLAS=StarAOCL
elseSTAR_FLEXIBLAS="-flexiblaslib AOCL"STAR_PRELOAD="-ldpreload /usr/lib64/libdrm_amdgpu.so.1"fiSTAR_MPI="-mpi openmpi40"fiif[-n"$LM_PROJECT"];thenecho"Siemens PoD license server ..."starccm+-jvmargs"-Xmx4G -Djava.io.tmpdir=$SLURM_TMPDIR"-batch"$BATCH_CMD"-power-podkey"$LM_PROJECT"-np"$NCORE"-nbuserdir"$SLURM_TMPDIR"-machinefile"$SLURM_TMPDIR/machinefile""$JAVA_FILE""$SIM_FILE""$STAR_MPI""$STAR_UCX""$STAR_FABRIC""$STAR_FLEXIBLAS""$STAR_PRELOAD"elseecho"Institutional license server ..."["$(command-vlmutil)"]&&lmutillmstat-c~/.licenses/starccm.lic-a|egrep"license1|UP|use|$USER";echostarccm+-jvmargs"-Xmx4G -Djava.io.tmpdir=$SLURM_TMPDIR"-batch"$BATCH_CMD"-np"$NCORE"-nbuserdir"$SLURM_TMPDIR"-machinefile"$SLURM_TMPDIR/machinefile""$JAVA_FILE""$SIM_FILE""$STAR_MPI""$STAR_UCX""$STAR_FABRIC""$STAR_FLEXIBLAS""$STAR_PRELOAD"fi
#!/bin/bash#SBATCH --account=def-group # Specify some account#SBATCH --time=00-01:00 # Time limit: dd-hh:mm#SBATCH --nodes=1 # Specify 1 or more nodes#SBATCH --cpus-per-task=16 # Specify cores per node (192 max)#SBATCH --mem=64G # Specify memory per node (0 max)#SBATCH --ntasks-per-node=1 # Do not change this valuemoduleloadStdEnv/2023
#module load starccm/21.02.008-R8moduleloadstarccm-mixed/21.02.008
modulelist
SIM_FILE='mySample.sim'# Specify your input sim filename#BATCH_CMD='myMacro.java,run' # Uncomment to specify java macros, mesh, run, step# Comment the next line when using an institutional license serverLM_PROJECT='22digit-PoD-License-Key'# Specify your Siemens PoD Key here# ------- no changes required below this line --------# Redirect from ~/.star-VERSION# to $SLURM_TMPDIRexportSTARCCM_TMP="$SLURM_TMPDIR"slurm_hl2hl.py--formatSTAR-CCM+>"$SLURM_TMPDIR/machinefile"NCORE=$((SLURM_NNODES*SLURM_CPUS_PER_TASK*SLURM_NTASKS_PER_NODE))echo"Checking $CDLMD_LICENSE_FILE ..."server=$(head-n1"$CDLMD_LICENSE_FILE"|awk'{print $2}')port=$(cat"$CDLMD_LICENSE_FILE"|grep-Eo'[0-9]+$')nmap"$server"-Pn-p"$port"|grep-v'^$';echoexportFLEXIBLAS=NETLIB
STAR_MPI="-mpi openmpi"if["$RSNT_CPU_VENDOR_ID"==intel];thenexportFLEXIBLAS=StarMKL
STAR_MPI="-mpi intel"elif["$RSNT_CPU_VENDOR_ID"==amd];thenexportFLEXIBLAS=StarAOCL
fiecho"FLEXIBLAS=$FLEXIBLAS"if["${EBVERSIONSTARCCM:0:2}"-lt20];thenSTAR_UCX="-xsystemucx"fiif[-n"$LM_PROJECT"];thenecho"Siemens PoD license server ..."starccm+-jvmargs"-Xmx4G -Djava.io.tmpdir=$SLURM_TMPDIR"-batch"$BATCH_CMD"-power-podkey"$LM_PROJECT"-np"$NCORE"-nbuserdir"$SLURM_TMPDIR"-machinefile"$SLURM_TMPDIR/machinefile""$SIM_FILE""$STAR_MPI""$STAR_UCX"elseecho"Institutional license server ..."["$(command-vlmutil)"]&&lmutillmstat-c~/.licenses/starccm.lic-a|egrep"license1|UP|use|$USER";echostarccm+-jvmargs"-Xmx4G -Djava.io.tmpdir=$SLURM_TMPDIR"-batch"$BATCH_CMD"-np"$NCORE"-nbuserdir"$SLURM_TMPDIR"-machinefile"$SLURM_TMPDIR/machinefile""$SIM_FILE""$STAR_MPI""$STAR_UCX"fi
#!/bin/bash#SBATCH --account=def-group # Specify some account#SBATCH --time=00-01:00 # Time limit: dd-hh:mm#SBATCH --nodes=1 # Specify 1 or more nodes#SBATCH --cpus-per-task=192 # Specify cores per node (192 max)#SBATCH --mem=0 # Specify memory per node (0 max)#SBATCH --ntasks-per-node=1 # Do not change this value#SBATCH --output=slurm-%j.out # Writes to slurm-$SLURM_JOB_ID.outcd"$SLURM_SUBMIT_DIR"# Submit from $SCRATCH/some/dirmoduleloadStdEnv/2023
#module load starccm/21.02.008-R8moduleloadstarccm-mixed/21.02.008
modulelist
SIM_FILE='mySample.sim'# Specify your input sim filename#BATCH_CMD='myMacro.java,run' # Uncomment to specify java macros, mesh, run, step# Comment the next line when using an institutional license serverLM_PROJECT='22digit-PoD-License-Key'# Specify your Siemens PoD Key here# These settings are used instead of your ~/.licenses/starccm.lic# (settings shown will use the cd-adapco pod license server)FLEXPORT=1999# Specify server static flex portVENDPORT=2099# Specify server static vendor portLICSERVER=flex.cd-adapco.com# Specify license server hostname# ------- no changes required below this line --------# Redirect from ~/.star-VERSION# to $SLURM_TMPDIRexportSTARCCM_TMP="$SLURM_TMPDIR"exportCDLMD_LICENSE_FILE="$FLEXPORT@127.0.0.1"sshtri-gw-L"$FLEXPORT":"$LICSERVER":"$FLEXPORT"-L"$VENDPORT":"$LICSERVER":"$VENDPORT"-N-f
slurm_hl2hl.py--formatSTAR-CCM+>"$SLURM_TMPDIR/machinefile"NCORE=$((SLURM_NNODES*SLURM_CPUS_PER_TASK*SLURM_NTASKS_PER_NODE))exportFLEXIBLAS=StarAOCL
echo"FLEXIBLAS=$FLEXIBLAS"STAR_MPI="-mpi openmpi"if["${EBVERSIONSTARCCM:0:2}"-lt20];thenSTAR_UCX="-xsystemucx"fi# Workaround for license failures:# until the exit status is equal to 0, we try to get Star-CCM+ to start (here, for at least 5 times).i=1RET=-1
while["$i"-le5]&&["$RET"-ne0];do["$i"-eq1]||sleep5echo"Attempt number: "$iif[-n"$LM_PROJECT"];thenecho"Siemens PoD license server ..."starccm+-jvmargs"-Xmx4G -Djava.io.tmpdir=$SLURM_TMPDIR"-batch"$BATCH_CMD"-power-podkey"$LM_PROJECT"-np"$NCORE"-nbuserdir"$SLURM_TMPDIR"-machinefile"$SLURM_TMPDIR/machinefile""$SIM_FILE""$STAR_MPI""$STAR_UCX"elseecho"Institutional license server ..."starccm+-jvmargs"-Xmx4G -Djava.io.tmpdir=$SLURM_TMPDIR"-batch"$BATCH_CMD"-np"$NCORE"-nbuserdir"$SLURM_TMPDIR"-machinefile"$SLURM_TMPDIR/machinefile""$SIM_FILE""$STAR_MPI""$STAR_UCX"fiRET=$?i=$((i+1))doneexit"$RET"
To run Star-CCM+ in graphical mode, it is recommended to use an OnDemand or JupyterLab system to start a remote desktop. In addition to configuring ~/.licenses/starccm.lic, research groups with a PoD license should also run export LM_PROJECT='22digit-PoD-License-Key' before starting starccm+. Additional command line options such as -power may also need to be appended depending on your license type.
Note
Running module avail starccm will display all mixed and R8 versions that are available to load within the StdEnv version you currently have loaded (e.g., 2020 or 2023). Alternatively, running module spider starccm will show all mixed and R8 module versions available to load within both StdEnv module versions (e.g., 2020 and 2023).
These instructions are retained for legacy purposes only:
1. Connect with a VncViewer client to a login or compute node by following TigerVNC.
2. Open a new terminal window in your desktop and run one of:
* STAR-CCM+ 18.04.008 (or newer versions)
* module load StdEnv/2023 (default)
* module load starccm-mixed/21.02.008ORstarccm/21.02.008-R8
* starccm+ -rr serverORstarccm+ -rr server -np 2 -mpi openmpi40
* STAR-CCM+ 15.04.010 -> 17.06.008 (version range)
* module load StdEnv/2020 (retired)
* module load starccm-mixed/17.06.008ORstarccm/17.06.008-R8
* starccm+