раздел 2.2.2.) лежит подход, предложенный в [37] и реализованный
для интегрирования уравнений Навье-Стокса в работе [90], в котором алгоритм
расщепляется в явной и неявной частях по трем независимым сеточным направлениям
шестигранного блока. Блоки вычислительной области собраны в цепи с размерностью
, и вычисления выполняются однородно для всех ячеек цепи в выбранном
направлении . Этот подход непосредственно применим к структурированным сеткам,
либо ассоциациям структурированных доменов с сетками Н-, О- и С- типов.
Дальнейшим развитием подхода является переход к описанию расчетной области
вместо цепей их составляющими - одномерными нитями (), составленными из ячеек,
плотно заполняющих расчетную область[43,44]. Идея организации счета в двумерном
случае имеет определенную аналогию с процессом ткачества ткани из нитей.
Декомпозиция произвольной расчетной области на нити в коде [43] осуществляется
в модуле препроцессора, что позволяет унифицировать вычислительный алгоритм и
повысить производительности расчетного модуля (солвера). При этом блочная
архитектура расчетной области используется только на стадиях пре- и
постпроцессора, а солвер работает с однородной, разбитой на шестигранные ячейки
областью, составленной из одномерных структур – нитей. Каждая нить начинается и
заканчивается либо на границах расчетной области, либо образует замкнутое
кольцо. Все нити обрабатываются солвером независимо. При этом в рамках одного
временного шага в пространственном случае каждая ячейка обрабатывается трижды,
что обеспечивает разностную аппроксимацию уравнения переноса в каждом сеточном
направлении. Такой подход делает вычислительный алгоритм независимым от
геометрической и сеточной топологии расчетной области. Производительность
вычислительного алгоритма зависит от средней длины нитей. Чем больше эта длина
(при постоянном количестве ячеек в расчетной области), тем выше эффективность
вычислений.
Разработанный алгоритм и созданный на его основе программный комплекс допускают
эффективное расщепление процесса решения для вычислительных платформ с
несколькими процессорами. Распараллеливание заключается в создании набора
рабочих подпроцессов (обычно количество подпроцессов меньше либо равно
количеству располагаемых процессоров), каждый из которых обрабатывает свое
подмножество нитей . Критерием разделения на подмножества служит обеспечение
равенства суммарных длин нитей (в ячейках) во всех подмножествах. При таком
распределении объема вычислений величина коэффициента распараллеливания слабо
зависит от топологии расчетной области.
Структура алгоритма и программного кода не диктуется требованиями
параллелизации. Наоборот, именно ниточная организация вычислений допускает
возможность эффективного распараллеливания. Описанная стратегия способна
эффективно использовать произвольное число процессоров и может быть реализована
на любой вычислительной платформе.
Алгоритм допускает также кластерную систему организации вычислений. При этом
расчетная область разбивается на сегменты (подобласти), имеющие интерфейсные
поверхности. В этом случае эффективность распараллеливания зависит как от
сбалансированности мощности сеток сегментов, так и от размера интерфейсных
поверхностей, определяющего объем массивов обмена между сегментами и задержки
на синхронизацию полей параметров на каждом шаге.
2.3. Особенности имплементации моделей турбулентности Спаларта-Аллмараса и
Ментера
Модель Спаларта-Аллмараса. Уравнение переноса турбулентной вязкости С-А (1.7)
подобно по форме осредненным уравнениям Навье-Стокса (1.6) и поэтому
интегрируется той же разностной схемой с использованием рассмотренных
алгоритмов.
Явная аппроксимация уравнения Спаларта-Аллмараса обнаруживает малый интервал
устойчивости, поэтому рекомендуется неявное представление во времени
конвективных и диффузионных членов. Некоторые солверы (см. обзор[66]) для
обеспечения устойчивости применяют аппроксимацию 1-го порядка для восполнения
внутри ячейки. По опыту автора применение аппроксимации 2-го порядка на сетках
с [50] практически не вносит коррекции в получаемые газодинамические решения, в
том числе и в местах перемены режима течения, а в отдельных случаях снижает
устойчивость алгоритма и вынуждает применять специальные мероприятия. Поэтому
применение процедуры 1-го порядка широко распространено в практике.
Особого внимания требует описание группы источниковых членов различной
физической природы. Именно, диффузионный член первого порядка может быть учтен
в левой части уравнения переноса и вычислен расщеплением по трем независимым
направлениям. Генерирующий, деструктивный и переходный члены вычисляются
локально осреднением по ячейке и аппроксимируются неявно по времени. Для
неявной части алгоритма в соответствии с рекомендациями работы[98] вследствие
сильно нелинейного поведения источниковых членов используется их простая
линеаризация по времени в том случае, когда их сумма усиливает диагональное
преобладание неявной матрицы коэффициентов:
Перечисленные приемы применяются для обеспечения положительных значений
вихревой вязкости в областях ее малости при интегрировании уравнения (1.7).
Непосредственное нестационарное разрешение модели С-А для специальных
исключительно мелких сеток позволяет существенно уточнить моделирование
турбулентности путем выделения отсоединенных вихрей. Эта, так называемая модель
[48], впервые предложенная П. Спалартом и M.Стрельцом, является аналогом
процедуры моделирования больших вихрей в модели [49], однако подобные расчеты
являются существенно более трудоемкими и пока не получили широкого применения в
про
- Киев+380960830922