Работа с программами из пакета ANSYS

В приведенных примерах запуска решателей используются академические лицензии (параметр -p aa_r). Если Вам необходимо запускать коммерческие версии решателей обращайтесь в техническую поддержку СКЦ.

Запуск решателя ANSYS CFX.

Для запуска решателя ANSYS CFX, необходимо:

  1. Загрузить на суперкомпьютер файл с исходными данными (.def - файл)
  2. Создать в директории с .def файлом, файл задания для системы пакетной обработки заданий, например run.pbs. В этот файл необходимо скопировать приведенный ниже шаблон.

#!/bin/bash
#
#PBS -N name_of_the_job
#PBS -A код_проекта
#PBS -q ansys
#PBS -l procs=8
#PBS -l walltime=12:00:00
#PBS -m ae
cd $PBS_O_WORKDIR
#
DEF=test2h.def
DIR=test2h_001.dir
HOSTLIST=`uniq -c $PBS_NODEFILE | awk '{ print $2"*"$1 }' | paste -s -d ','`
export CFX5RSH=ssh
#sleep 37800 && /ansys_inc/v160/CFX/bin/cfx5stop -dir ./${DIR} &
/ansys_inc/v160/CFX/bin/cfx5solve -par-dist ${HOSTLIST} \
-start-method 'Intel MPI Distributed Parallel' -batch -P aa_r -def ./${DEF}

В шаблоне необходимо поменять значения полей, помеченных красным цветом, где:

  • #PBS -N name_of_the_job - имя задания (произвольное название);
  • #PBS -A myaccount - название аккаунта, выданного администратором СКЦ;
  • #PBS -l procs=8 - количество процессорныхядер;
  • #PBS -l walltime=12:00:00 - приблизительное время выполнения задания;
  • DEF=test2h.def - имя файла задания.
  • DIR=test2h_001.dir - имя директории в которой будет выполняться задание.
  • #sleep 37800 - (37800 - время в секундах 10,5 часов. Эту строку необходимо раскомментировать (убрать символ #) если Ваше задание не имеет предельного времени выполнения (не ограничена по шагам и т.п.). Эта строка необходима для корректного завершения работы решателя FLUENT с сохранением результатов в файл. Если эту строку не раскомментировать, то задание будет принудительно прервано через указанное в параметре walltime время.

3. Поставить задание в очередь на выполнение

[user@mgt1 ~]$ qsub run.pbs

4. Чтобы вручную остановить выполнение пакетного задания с сохранением результатов, необходимо дать команду:

[user@mgt1 ~]$ /ansys_inc/v160/CFX/bin/cfx5stop -dir название_директории

где, название_директории - это имя директории в которой выполняется задача, например (task_001.dir).

Запуск решателя ANSYS FLUENT.

Для запуска решателя ANSYS FLUENT необходимо проделать аналогичные приведенным выше шаги, за исключением того что исходные файлы имеют другой формат и расширение. Шаблон для системы пакетной обработки заданий (run.pbs) приведен ниже.

#!/bin/bash
#
#PBS -N name_of_the_job
#PBS -A код_проекта
#PBS -q ansys
#PBS -l procs=8
#PBS -l walltime=12:00:00
#PBS -m ae
cd $PBS_O_WORKDIR
#
#sleep 37800 && touch /tmp/exit-fluent &
/ansys_inc/v160/fluent/bin/fluent 3d -t $PBS_NP -p ib -cnf=$PBS_NODEFILE \
-ssh -gu -driver null -mpi=intel -i fluent.in > fluent.out

Дополнительно необходимо создать файл с набором команд для решателя (fluent.in), например:

; Read and simulate the first case
/file/read-case-data case1.cas
/solve/iterate 3000
/file/write-case-data case1.cas yes
; Read and simulate the second case
/file/read-case-data case2.cas.gz yes
/solve/iterate 4000
/file/write-case-data case2.cas.gz yes
; Exit from FLUENT session
/exit yes

В этом файле в каждой строке заносятся команды для решателя. Строки начинающиеся с ; это комментарии, они игнорируются решателем. В данном случае исходные данные находятся в файлах case1.cas (несжатый) и case2.cas.gz (сжатый стандартной утилитой gzip).

Запуск решателя ANSYS Mechanical

Запуск решателя ANSYS Mechanical аналогичен предыдущим. Файл run.pbs:

#!/bin/bash
#
#PBS -N name_of_the_job
#PBS -A код_проекта
#PBS -q ansys
#PBS -l procs=8
#PBS -l walltime=12:00:00
#PBS -m ae
cd $PBS_O_WORKDIR
#
export MPI_REMSH=/usr/bin/ssh
HOSTLIST=`uniq -c $PBS_NODEFILE | awk '{ print $2":"$1 }' | paste -s -d ':'`
/ansys_inc/v160/ansys/bin/ansys160 -dis -b nolist -machines ${HOSTLIST} -j jobname -p aa_r -mpi intel -i cmd.in > outfile.out

Важный момент. -mpi intel не поддерживает MPP режим. Для расчета более чем на 1 узле этот ключ нужно убрать.

В файле cmd.in, как и в ситуации с FLUENT, необходимо занести команды решателю:

RESUME,'data','db'
/SOLU
!
solve
FINISH

Здесь файл исходных данных с именем data.db.