Инженеры АО «СимуЛабс» победили в конкурсе ANSYS HOF 2107

sailboat2016_halloffame

Поздравляем коллектив АО «СимуЛабс» с очередной большой победой!

В этом году наши коллеги Д.П. Хитрых и И.В. Погорнев в 5 раз стали победителями международного конкурса на лучший
инженерный проект, выполненный в программном комплексе ANSYS — ANSYS Hall of Fame Competition.

В этом году на суд компетентного жюри была представлена работа, посвященная численной проработке прототипа нового инновационного вспомогательного «движителя» для спортивной яхты. Прототип изделия основан на классической турбине со спиралевидными лопастями. Но в отличии от классического варианта, в новой турбине используются оптимизированные в ANSYS OptiSLang лопасти переменной толщины, гироскопическое стабилизирующее устройство и профилированный несущий корпус.

Данный проект носит исследовательский характер и не направлен на коммерческое использование.

Коллектив АО «СимуЛабс»,
30 декабря 2016 г., Москва.

1 апреля — День ANSYS Fluent на cfd-blog.ru

ВелосипедСегодня мы целый день посвятим расчетному CFD-пакетуANSYS Fluent. И рассмотрим с вами около двух десятков вопросов, которые поступили в адрес службы технической поддержки компаний ANSYS и КАДФЕМ.

А так же поделимся нашим личным опытом работы с этим программным комплексом. Большинство вопросов являются универсальными и не привязаны к конкретной версии ANSYS Fluent. Учитывая объем представленной информации, допускаю, что в некоторых ответах могут содержаться небольшие неточности. О всех замеченных ошибках вы можете писать мне на форму обратной связи.

fluentСамый первый вопрос связан с инсталляцией ANSYS Fluent версии 17.0. На моей рабочей станции установлена операционная система Windows 7 и при инсталляции 17-й версии ANSYS у меня (и, вероятно, у многих других пользователей) возникли проблемы при работе c GUI Fluent. Решение данной проблемы заключалось в установке пакета обновлений для Window 7 — KB2533623, который предназначен для повышения безопасности работы со внешними библиотеками. Скачать этот пакет можно с официального сайта Microsoft по следующей ссылке https://support.microsoft.com/ru-ru/kb/2533623.

fluentСледующий вопрос связан с оценкой сходимости нестационарной задачи в ANSYS Fluent на каждом временном шаге по заданному критерию сходимости (например, по изменению величины какого-либо интегрального параметра). Для этого можно использовать команду stptmstp (=SToP TiMe STeP) языка Scheme. Более детальное описание этой команды можно получить набрав в консоли (Console) следующую последовательность символов: (stptmstp-docu-alt).

Все значения переменных, которые используются в команде stptmstp по умолчанию, можно отредактировать. Например, набрав команду вида (set! stptmstp-n 7), вы измените количество итераций, за которые собирается статистика по заданной переменной, с 3-х (это значение по умолчанию) до 7-и.

Или, например, с помощью команды set! stptmstp-maxrelchng вы можете изменить значение  относительной разницы между собственными значениями заданной переменной, вычисленными в последовательных итерациях. По умолчанию, ее величина соответствует 1.e-03. Таким образом, для того, чтобы изменить значение этой переменной с 1.e-03 на 1.e-5, вам следует набрать команду set! stptmstp-maxrelchng 1.e-05.

Далее мы приведем небольшой пример использования команды stptmstp в интерфейсе Fluent. Откройте последовательно закладки Solution → Calculation Activitie s→ Execute commands. Сначала введите первую команду command-1: (stptmstp-resetvalues). И выберите опцию Time Step. Эта команда «сбросит» анализ предыдущего шага по времени. После этого введите команду  (stptmstp-chckcnvrg ‘ ( «/report/surface-integrals/integral wall () heat-flux n»)) и выберите опцию Iteration. С помощью этой команды будет выполнен анализ последних трех итераций (3 итерации — это значение по умолчанию в ANSYS Fluent, как мы уже говорили выше), и будет выполнена проверка насколько изменился тепловой поток на заданной поверхности за эти три последних итерации. При этом относительное изменение ограничено значением 1e-03 (по умолчанию).

execute

fluentТретий вопрос регулярно обсуждается на различных CFD-форумах, его также часто адресуют в нашу службу технической поддержки. Но сегодня, чтобы дать на него полноценный ответ, мы воспользуемся популярным ресурсом Eureka. Задача формулируется следующим образом: как с помощью UDF определить табулированные свойства пользовательского материала. Соответствующий шаблон UDF приведен ниже (в раскрывающемся списке). Вы можете легко доработать его для решения вашей конкретной задачи.

Код UDF

#include "udf.h"

int NPts_mu = 10; /* number of entries in viscosity table */

/* Locate the place in the interpolation vector using bisection algorithm*/
int locate(float xx[], int n, float x)
{
int j = 0;
int jm = 0;
int jl = 0;
int ju = n+1;
int ascnd = 0;

ascnd = (xx[n] >= xx[1]);
while (ju-jl > 1)
{
jm = (ju+jl) >> 1;
if (x >= xx[jm] == ascnd)
jl = jm;
else
ju = jm;
}

if (x == xx[1])
j = 1;
else if (x == xx[n])
j = n-1;
else
j = jl;

return j;
}

float *temp_vec_mu,*visc_vec;
#define FAST_LOOKUP TRUE /* use bisection algorithm for interpolation */
#define TABLE_MESSAGES TRUE
#define DISPLAY_TABLES TRUE

/* Obtaine mu given temperature */
float get_mu_from_T(float xdata)
{
int i = 0;
int j = 0;
float xL,xU,ydata;

#if FAST_LOOKUP
j = locate(temp_vec_mu,NPts_mu,xdata);
xL = temp_vec_mu[j];
xU = temp_vec_mu[j+1];
ydata = visc_vec[j] + (xdata-xL)/(xU-xL)*( visc_vec[j+1] - visc_vec[j] );
#else
for ( i=1; i=xL)&&(xdata<=xU) ) { ydata = visc_vec[i] + (xdata-xL)/(xU-xL)*( visc_vec[i+1] - visc_vec[i] ); break; } } #endif if ( xdata>temp_vec_mu[NPts_mu] )
{
#if TABLE_MESSAGES
Message("n temperature is above the bound of visc-array n");
#endif
ydata = visc_vec[NPts_mu];
}
if ( xdata<temp_vec_mu[1] )
{
#if TABLE_MESSAGES
Message("n temperature is below the bound of visc-array n");
#endif
ydata = visc_vec[1];
}

return ydata;
}

/* Read in the data file containing viscosity as a function of temperature */
DEFINE_ON_DEMAND(read_viscosity)
{
int i = 0;
float xdata,ydata;
FILE* fp;

fp = fopen("viscosity.dat","r");
if ( fp!=NULL )
{
#if !RP_NODE
Message(" n");
Message("Reading file viscosity.dat n");
Message(" n");
#endif
}
else
{
#if !RP_NODE
Message(" n");
Message("Error opening file n");
Message(" n");
#endif
}

temp_vec_mu = (float *) malloc(NPts_mu*sizeof(float));
visc_vec = (float *) malloc(NPts_mu*sizeof(float));

if ( (temp_vec_mu==NULL)||(visc_vec==NULL) )
{
#if !RP_NODE
Message("Memory allocation error n");
#endif
}

for ( i=1;i<=NPts_mu;i++ )
{
fscanf(fp,"%f %e n",&xdata,&ydata);
temp_vec_mu[i] = xdata;
visc_vec[i] = ydata;
#if DISPLAY_TABLES
#if !RP_NODE
Message("%.1f %e n",temp_vec_mu[i],visc_vec[i]);
#endif
}
#else
}
#if !RP_NODE
Message(" n");
#endif
#endif

fclose(fp);
}

/* Interpolate viscosity from look-up table and assign to cell value */
DEFINE_PROPERTY(viscosity,c,t)
{
float mu_lam;
float temp = C_T(c,t);

/* interpolate mu_lam */
mu_lam = get_mu_from_T(temp);

return mu_lam;
}


fluentЧетвертый вопрос будет касаться начальной инициализации задачи со свободной поверхностью в ANSYS Fluent. Самый простой вариант — определить свободную поверхность как плоскую поверхность. Но, что делать, если геометрия свободной поверхности имеет более сложную форму?

Есть несколько вариантов решения данной проблемы. Вы можете использовать специальный «генератор» волн, встроенный в Fluent — Open Channel Wave Model (волны в открытом канале). При инициализации границы свободной поверхности (Free Surface Level) вместо опции Flat укажите опцию Wavy (см. Open channel Init. Method).

wavy

Если вы проводите инициализацию с помощью TUI, то после выполнения команды solve → initialize → open-channel-auto-init, вам необходимо выбрать опцию wavy free surface initialization.

Для инициализации границы свободной поверхности вы также можете использовать Custom Field Functions. Это своеобразный аналог CEL-выражений пакета ANSYS CFX.

VOF

И, наконец, самые продвинутые пользователи могут использовать UDF для начальной инициализации задачи со свободной поверхностью.

Более подробно о двух последних вариантах я расскажу в другой раз.

На сегодня всё. Поздравляю всех с праздником Всемирного Дурака, а в качестве подарка предлагаю вам полюбоваться на обновленный дизайн графического интерфейса ANSYS Fluent 17.0 (см. рис. ниже).

Измененный интерфейс ANSYS Fluent.

Измененный интерфейс ANSYS Fluent.

Традиционный интерфейс ANSYS Fluent.

Традиционный интерфейс ANSYS Fluent.

На следующей неделе мы продолжим отмечать 1 апреля вместе с ANSYS Fluent. Удачного Вам моделирования!

KhitrykhDP

 

С уважением, Денис Хитрых,
Директор SimuLabs4D.

Вычисляем значение переменной Wall Distance

соваСегодня мы рассмотрим с вами вопрос, который регулярно всплывает на разных форумах и которым обычно бывают озадачены все начинающие пользователи. Вы почти верно угадали, что этот вопрос связан с Y+ или чем-то подобным. Дело в том, что некоторые модели турбулентности напрямую не вычисляют расстояние от стенки до первого узла (эта переменная носит в ANSYS CFX название Wall Distance) и, соответственно, мы не можем «вытащить» значение этой переменной в CFD-Post. Что делать?

Решение будет следующим. Создайте Additional Variable в препроцессоре CFX со следующими параметрами:

Variable Type = Unspecified
Units = [m]
Tensor = Scalar

В настройках расчетного домена выберите для Additional Variable опцию ‘Algebraic Equation’ и далее укажите Wall Distance.

Можно поступить еще проще. Создайте любое выражение, в котором будет содержаться ссылка на переменную Wall Distance. Далее используйте это выражение в качестве «монитора» (закладка Output Control). После этого решатель начнет записывать значения переменой Wall Distance в res-файл.

«Жаворонки» уже проснулись, поэтому ответ на этот вопрос первыми прочтут «совы».

С уважением, Денис Хитрых
Директор R&D Центра SimuLabs4D
(Адаптация и разработка CAE программного обеспечения).

К вопросу о выборе значения константы Смагоринского

Модель Смагоринского (Smagorinsky model) является одно из наиболее популярной подсеточной моделью для LES. В этой модели константа Cs (константа Смагоринского), входящая в уравнение для подсеточной турбулентной вязкости, определяется заранее.

constant

Строго говоря, выбор значения этой константы зависит, как от класса моделируемого течения, так и от используемого численного метода, в том числе и схемы аппроксимации невязких потоков.

Если для выбранного численного метода решения задачи характерна существенная численная диссипация, то значение константы Сs следует уменьшить, и, наоборот, при использовании менее диссипативных схем, рекомендуется увеличить значение этой константы. Поэтому для каждой численной схемы следует предварительно проводить калибровку константы Смагоринского.

Кроме того, для неизотермических течений значение константы Смагоринского обычно меньше, чем для изотермических течений.

Такую калибровку обычно проводят на задаче о затухании однородной и изотропной турбулентности. Для неё существуют теоретические оценки закона затухания турбулентных пульсаций со временем (см., например, работу https://mipt.ru/upload/medialibrary/b76/105-113.pdf).

DITx

В первом приближении можно рекомендовать использовать следующие значения константы Cs*:

table

*Акира Ёсидзава (A. Yoshizawa). Hydrodynamic and Magnetohydrodynamic Turbulent Flows: Modelling and Statistical Theory. Kluwer Academic Pub, 2011.

Для оценки значения константы Смагоринского также можно использовать закон Обухова-Колмогорова, который после соответствующих преобразований и подстановок приводит к выражению вида:

kolmogorov

Здесь Сk — постоянная Колмогорова (Сk = 1,4-2,2).

Модель Смагоринского позволяет учесть взаимодействие молекулярного и молярного обмена вблизи стенки в вязком подслое и в переходной области течения.  Для этого используются т. н. демпфирующие функций, которые позволяют рассчитать изменение коэффициента турбулентного обмена или длины пути смешения поперек потока около стенки. В ANSYS CFX доступно две демпфирующие функции: Ван Дриеста (Van Driest, 1956) и функция Пиомелли (Piomelli, 1987).

Удачного Вам моделирования!

С уважением, Денис Хитрых.

Новая оболочка CADFEM AirfoilSuite — расчеты аэродинамики профилей

Сегодня мы подведем с вами итоги уходящего 2014 года, а пока я хочу порадовать вас новостями, связанными с разрабатываемым компанией КАДФЕМ (Москва) специализированным приложением CADFEM AirfoilSuite.

Во-первых, у нашего приложения (ACT-расширения) появилась вполне удобная и дружественная оболочка, которая идеально вписывается в ANSYS Workbench, использует и в отдельных случаях расширяет функционал его модулей.

Приложение CADFEM AirfoilSuite предназначено для расчетов околозвуковой и трансзвуковой аэродинамики авиационных и вертолетных профилей. Так же оно может быть использовано для профилирования лопастей ветряных турбин.

CADFEM AirfoilSuite.

CADFEM AirfoilSuite.

В CADFEM AirfoilSuite  интегрирована расширенная база профилей серии NACA, RAE, AGARD, ЦАГИ и мн. др. Вы можете для расчета загрузить профиль из базы, или импортировать координатный файл. Далее  AirfoilSuite автоматически построит расчетную область и автоматически сгенерирует структурированную сетку на основе шестигранников.

По умолчанию для генерации сетки в AirfoilSuite достаточно указать степень дискретизации расчетной сетки (для этого существуют предустановки): coarse (грубая), medium (средняя), fine (точная) и extra fine (высокоточная).

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

Расчетная сетка AirfoilSuite.

Расчетная сетка AirfoilSuite.

Читать далее

Противообледенительная система мотогондолы самолета

Nacelle anti-icing systemОдной из серьезных прикладных задач, для которой актуальным является применение технологии распределенных вычислений (HPC) и самых современных подходов к моделированию турбулентности, является задача проектирования противообледенительной системы самолета (ПСС).

Д-р Бенжамин Дуда (Тулуза, Франция) выполнил серию нестационарных расчетов ПСС c использованием ANSYS CFD в рамках исследовательской программы  Airbus Operations SAS, при участии компании Ansys Germany GmbH и исследовательского центра ONERA.

В расчетах использовались как гибридные модели (SAS и DDES), так и «зональная» ELES модель турбулентности. Так же исследовалось влияние топологии сетки на результаты численного моделирования.

В презентации дается краткое описание выполненной работы.

Мы так же рекомендуем вам ознакомиться с результатами трехмерных нестационарных расчетов, которые вы можете скачать отдельно по этой ссылке:

Естественная конвекция в закрытой каверне

Иллюстрация: Penn State's Gas Dynamics Lab. и A World of Weather: Fundamentals of Meteorology.

Иллюстрация: Penn State’s Gas Dynamics Lab. и A World of Weather: Fundamentals of Meteorology.

Процессы естественной конвекции и циркуляции, которые возникают в неоднородном поле силы тяжести, весьма распространены в природе и в технике.

Типичными примерами «работы» конвекции в природе является процесс парения птиц (и планериста), процесс  глобальной циркуляции атмосферных масс воздуха и даже (что удивительно) процесс горообразования. 

В атомной энергетике свободно-конвективный теплообмен является основным механизмом охлаждения активной зоны реактора при авариях.

Кроме того, процессы естественной конвекции находят применение и при разработке систем альтернативной энергетики (на основе возобновляемых источников энергии).

Компания ANSYS, Inc. при разработке и совершенствовании своей линейки гидрогазодинамических пакетов ANSYS CFD, уделяет большое внимание процессам верификации и валидации расчетных кодов. В том числе и на задачах свободной конвекции.

В 2000 г. Betts & Bokhari опубликовали результаты экспериментальной работы по изучению свободной конвекции в закрытой каверне. Эти результаты были использованы ANSYS при выполнении верификационного расчета.

Вы можете самостоятельно воспроизвести эти результаты. Основные шаги, описывающие постановку данной задачи, описаны в прилагаемой презентации:

Если у вас возникнут затруднения с построением расчетной модели или сетки, то рекомендуем вам написать нам напрямую, воспользовавшись закладкой «Как с нами связаться» (см. верхний правый угол).