Star-CCM+

From Alliance Doc
Jump to navigation Jump to search
This page is a translated version of the page Star-CCM+ and the translation is 100% complete.
Other languages:

STAR-CCM+ est une suite logicielle de simulation utilisée dans plusieurs spécialités de génie. Elle permet la modélisation dans des domaines variés dont l'acoustique, la dynamique des fluides, le transfert thermique, la rhéologie, l'écoulement polyphasique, le flux de particules, la mécanique des solides, les fluides réactifs, l'électrochimie et l'électromagnétisme.

Limites de la licence

Les binaires STAR-CCM+ sont installés sur nos serveurs, mais nous n'avons pas de licence pour utilisation générale; vous devez donc posséder votre propre licence. Vous pouvez acheter une licence POD (Power On Demand) directement de Siemens. Autrement, vous pouvez utiliser une licence locale hébergée par votre établissement pourvu que le pare-feu permette à la grappe où les tâches seront exécutées d'y accéder.

Configurer votre compte

Afin de configurer votre compte pour utiliser un serveur de licence, créez le fichier $HOME/.licenses/starccm.lic comme suit :

File : starccm.lic

SERVER <server> ANY <port>
USE_SERVER


server et port sont remplacés respectivement par le nom de l'hôte (ou l'adresse IP) et le port statique du fournisseur du serveur de licence.

Fichier pour une licence POD

Si vous avez acheté une licence POD de Siemens vous pouvez indiquer le fichier de licence dans un fichier texte comme ci-dessous. Ceci fonctionne sur toutes les grappes sauf Niagara.

File : starccm.lic

SERVER flex.cd-adapco.com ANY 1999
USE_SERVER


Dans votre script pour l'ordonnanceur, configurez LM_PROJECT comme étant CD-ADAPCO PROJECT ID. Remarquez qu'il n'est plus nécessaire de configurer manuellement CDLMD_LICENSE_FILE="<port>@<server>" dans le script de soumission de la tâche.

Soumettre des tâches en lot sur nos grappes

Sélectionnez l’un des modules disponibles, selon vos besoins :

  • starccm pour le format double précision, soit module load starccm/19.04.007-R8
  • starccm-mixed pour le format précision mixte, soit module load starccm-mixed/19.04.007.

Quand vous soumettez des tâches sur une grappe pour la première fois, vous devrez configurer votre environnement pour l’utilisation de votre licence. Si vous utilisez le serveur de licences distant pay-on-usage de Siemens, créez le fichier ~/.licenses/starccm.lic comme décrit ci-dessus dans Fichier pour une licence POD; ceci devrait fonctionner immédiatement. Par contre, si vous utilisez un serveur de licence de votre établissement, créez d'abord le fichier ~/.licenses/starccm.lic et soumettez une demande d'assistance au soutien technique. Nous vous aiderons à coordonner les modifications du pare-feu réseau nécessaires pour y accéder (en supposant que le serveur n'a jamais été configuré pour communiquer via la grappe de l'Alliance que vous voulez utiliser). Si vous rencontrez toujours des problèmes pour faire fonctionner la licence, essayez de supprimer ou de renommer le fichier ~/.flexlmrc car les chemins de recherche et/ou les paramètres précédents du serveur de licence pourraient y être stockés. Notez que des fichiers de sortie de tâches déjà exécutées peuvent s'accumuler dans des répertoires cachés nommés .star-version_number et consommer ainsi votre quota. Ceux-ci peuvent être supprimés périodiquement en exécutant périodiquement rm -ri ~/.starccm* et en répondant oui à l'affichage de l'invite.

Scripts pour l'ordonnanceur

File : starccm_job.sh

#!/bin/bash

#SBATCH --account=def-group   # indiquez le nom du compte
#SBATCH --time=00-01:00       # indiquez la limite de temps (jj-hh:mm)
#SBATCH --nodes=1             # indiquez 1 ou plusieurs nœuds
#SBATCH --cpus-per-task=40    # demandez tous les cœurs par nœud
#SBATCH --mem=0               # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1   # ne pas modifier

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

# chargez le module starccm/18.04.008-R8
module load starccm-mixed/18.04.008

# Comment the next line when using an institutional license server
LM_PROJECT='my22digitpodkey'  # Specify your Siemens Power on Demand (PoD) Key

# ------- no changes required below this line --------

slurm_hl2hl.py --format STAR-CCM+ > $SLURM_TMPDIR/machinefile
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))

if [ -n "$LM_PROJECT" ]; then
   # Siemens PoD license server
   starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE
else
   # Institutional license server
   starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE
fi


File : starccm_job.sh

#!/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=48    # Request all cores per node (32 or 48)
#SBATCH --mem=0               # Request all memory per node
#SBATCH --ntasks-per-node=1   # Do not change this value

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

SIM_FILE='mysample.sim'       # Specify your input sim filename
#JAVA_FILE='mymacros.java'    # Uncomment to specify an input java filename

export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"

slurm_hl2hl.py --format STAR-CCM+ > machinefile-$SLURM_JOB_ID

slurm_hl2hl.py --format STAR-CCM+ > $SLURM_TMPDIR/machinefile
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))

if [ -n "$LM_PROJECT" ]; then
   # Siemens PoD license server
   starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE -mpi intel -fabric psm2
else
   # Institutional license server
   starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE -mpi intel -fabric psm2
fi


File : starccm_job.sh

#!/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=32    # Request all cores per node (32 or 44)
#SBATCH --mem=0               # Request all memory per node
#SBATCH --ntasks-per-node=1   # Do not change this value

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

SIM_FILE='mysample.sim'       # Specify your input sim filename
#JAVA_FILE='mymacros.java'    # Uncomment to specify an input java filename

export STARCCM_TMP="${SCRATCH}/.starccm-${EBVERSIONSTARCCM}"
mkdir -p "$STARCCM_TMP"

slurm_hl2hl.py --format STAR-CCM+ > machinefile-$SLURM_JOB_ID

slurm_hl2hl.py --format STAR-CCM+ > $SLURM_TMPDIR/machinefile
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))

if [ -n "$LM_PROJECT" ]; then
   # Siemens PoD license server
   starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE -mpi intel -fabric psm2
else
   # Institutional license server
   starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE -mpi intel -fabric psm2
fi


File : starccm_job.sh

#!/bin/bash

#SBATCH --account=def-group   # indiquez le nom du compte
#SBATCH --time=00-01:00       # indiquez la limite de temps (jj-hh:mm)
#SBATCH --nodes=1             # indiquez 1 ou plusieurs nœuds
#SBATCH --cpus-per-task=64    # demandez tous les cœurs par nœud
#SBATCH --mem=0               # demandez toute la mémoire par nœud
#SBATCH --ntasks-per-node=1   # ne pas modifier

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

SIM_FILE='mysample.sim'       # Specify your input sim filename
#JAVA_FILE='mymacros.java'    # Uncomment to specify an input java filename

# Comment the next line when using an institutional license server
LM_PROJECT='my22digitpodkey'  # Specify your Siemens Power on Demand (PoD) Key

# ------- no changes required below this line --------

slurm_hl2hl.py --format STAR-CCM+ > $SLURM_TMPDIR/machinefile
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))

if [ -n "$LM_PROJECT" ]; then
   # Siemens PoD license server
   starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE -mpi openmpi
else
   # Institutional license server
   starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE -mpi openmpi
fi


File : starccm_job.sh

#!/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=40    # Request all cores per node
#SBATCH --mem=0               # Request all memory per node
#SBATCH --ntasks-per-node=1   # Do not change this value
 
module load CCEnv

#module load StdEnv/2020      # Versions < 18.06.006
module load StdEnv/2023

#module load starccm/18.06.006-R8
module load starccm-mixed/18.06.006

SIM_FILE='mysample.sim'       # Specify input sim filename
#JAVA_FILE='mymacros.java'    # Uncomment to specify an input java filename

# Comment the next line when using an institutional license server
LM_PROJECT='my22digitpodkey'  # Specify your Siemens Power on Demand (PoD) Key

# 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 port
VENDPORT=2099                    # Specify server static vendor port
LICSERVER=flex.cd-adapco.com     # Specify license server hostname

# ------- no changes required below this line --------

export CDLMD_LICENSE_FILE="$FLEXPORT@127.0.0.1"
ssh nia-gw -L $FLEXPORT:$LICSERVER:$FLEXPORT -L $VENDPORT:$LICSERVER:$VENDPORT -N -f

slurm_hl2hl.py --format STAR-CCM+ > $SLURM_TMPDIR/machinefile
NCORE=$((SLURM_NNODES * SLURM_CPUS_PER_TASK * SLURM_NTASKS_PER_NODE))
 
# 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=1
RET=-1
while [ $i -le 5 ] && [ $RET -ne 0 ]; do
        [ $i -eq 1 ] || sleep 5
          echo "Attempt number: "$I
          if [ -n "$LM_PROJECT" ]; then
          # Siemens PoD license server
          starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -power -podkey $LM_PROJECT -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE
        else
          # Institutional license server
          starccm+ -jvmargs -Xmx4G -jvmargs -Djava.io.tmpdir=$SLURM_TMPDIR -batch -np $NCORE -nbuserdir $SLURM_TMPDIR -machinefile $SLURM_TMPDIR/machinefile $JAVA_FILE $SIM_FILE
        fi
        RET=$?
        i=$((i+1))
done
exit $RET


Visualisation à distance

Préparation

Configurez votre compte pour visualiser à distance :

  1. Créez le fichier de licence ~/.licenses/starccm.lic comme décrit ci-dessus.
  2. Si vous avez une licence POD (Power-on-demand),
configurez export LM_PROJECT='CD-ADAPCO PROJECT ID' et
ajoutez -power aux autres options ligne de commande, comme montré ci-dessous.

Nœuds de calcul

Connectez-vous à un nœud avec TigerVNC et ouvrez une fenêtre de terminal, puis

STAR-CCM+ 15.04.010 (ou versions plus récentes)
module load StdEnv/2020
module load starccm-mixed/17.02.007 **OU** starccm/16.04.007-R8
starccm+
STAR-CCM+ 14.06.010, 14.04.013, 14.02.012
module load StdEnv/2016
module load starccm-mixed/14.06.010 **OU** starccm/14.06.010-R8
starccm+
STAR-CCM+ 13.06.012 (ou versions moins récentes)
module load StdEnv/2016
module load starccm-mixed/13.06.012 **OU** starccm/13.06.012-R8
starccm+ -mesa

Nœuds VDI

Connectez-vous à gra-vdi avec TigerVNC et connectez-vous. Quand le bureau distant est affiché, cliquez sur ouvrez une fenêtre de terminal (Applications-->Systems Tools-->Mate Terminal) pour ouvrir une fenêtre de terminal et indiquez la version de Star-CCM que vous voulez charger (voir ci-dessous). Si vous avez déjà chargé un StdEnv, vous pouvez faire afficher les versions disponibles avec la commande module avail starccm-mixed. Présentement, seulement l'implémentation MESA de OpenGL peut être utilisée sur gra-vdi avec starccm en raison de problèmes avec virtualgl qui offre l'accélération des GPU locaux pour les graphiques OpenGL.

STAR-CCM+ 18.04.008 (ou versions plus récentes)
module load CcEnv StdEnv/2023
module load starccm-mixed/18.04.008 **OU** starccm/18.04.008-R8
starccm+ -mesa
STAR-CCM+ 15.04.010 --> 18.02.008 (de version X jusqu'à version Y)
module load CcEnv StdEnv/2020
module load starccm-mixed/15.04.010 **OU** starccm/15.04.010-R8
starccm+ -mesa
STAR-CCM+ 13.06.012 (ou versions moins récentes)
module load CcEnv StdEnv/2016
module load starccm-mixed/13.06.012 **OU** starccm/13.06.012-R8
starccm+ -mesa