Jump to content

Как вырастить сетку 2D-airfoil правильно?


Recommended Posts

zerganalizer

Я сделал работающую версию генератора 2D-сетки для пакетного CFD-анализа профилей. Она полностью на питоне и строит сетку через API GMSH 4.13.1. Пока это гибридная сетка, но с настройками пограничного слоя, загущения по кривизне, в районе хвостика и следа профиля.

 

Более того - заставить ее считаться в SU2 - было для меня сложно. Заработал расчёт только после указания 'MGLEVEL': '2' и создания в сетке ещё одной физического маркера nearfield и назначить 'MARKER_EULER': '( nearfield )' как границы между прямоугольного пограничного слоя и остальной треугольной сеткой.

 

И вот общий вид - вертикальная линия и хвост просто выведены для вопросов, на сетку не влияют.

mesh_all1.png

 

 

Крупнее:

mesh_all+1.png

Район носа:

mesh_lob1.png

Хвост:

mesh_hvost1.png

У меня в настройки вынесено - на сколько сдвинуть профиль относительно лобовой полудуги farfield. Сейчас Move_airfoil=1.1 - это значит носик задвинут вперёд на хорду + 10%, и я не знаю, насколько это правильно. Вы видите - airfoil слева от вертикальной линии "нуля" центра дуги. А вдруг он должен быть справа, посредине или ещё как?

 

Вот базовые настройки:

 

# base mesh sizes
fact = 1                               #Мастштаб ячеек
lc1 = 0.01 * fact                  #Минимальная ячейка
lc2 = 1 * fact                       #Максимальная ячейка
LenNET=50                         #Удаление farfield от профиля, хорд
Move_airfoil=1.1                #Сдвиг профиля от нуля полудуги
Загущение_профиля = 5  #Загущение профиля по кривизне - соотношение размеров max/min ячеек
Загущение_сетки = 90     #Загущение профиля и сетки спереди - сколько точек на 360 градусов дуги.
Thickness=0.01*fact          #Толщина погранслоя профиля
Ratio=1.3                           #Коэффициент роста погранслоя
Size=2.7e-4                       #Начальная толщина ячейки погранслоя

 

Есть ещё куча параметров - по дополнительным загущениям, по алгоритму обработки хвостика профиля и прочее.

 

Вот интересный вопрос - Загущение_сетки = 90, если сделать 720, то лобовая часть перехода от полудуги к носику профиля станет гораздо плотнее, от этого есть профит???

mesh_all1-720d.png

Но меня мучит вопрос - я сделал не по образцам обучалок мешер - им вообще можно пользоваться в SU2 и других CFD? Я видел подобные вопросы про гибридные сетки на CFD-форуме, но информации мало.

 

Или вообще лучше сразу делать упорядоченную трансфинитную, как в родном мешере SU2_EDU? Её гораздо сложнее делать - как по мне. А ещё куча вопросов по соотношению настроек продувки и настроек мешера сетки. Я уже упоминал - для пакетной продувки под разные скорости и углы атаки для точности нужно делать сетку "на лету" и под текущие режимы продувки.

 

Edited by zerganalizer

Автоматизирую все, что логично.

Link to post
Share on other sites
  • 4 months later...


UnPinned posts
a_schelyaev

В разных отчетах могут по разному приводить данные. Где то исходные и обработанные, где-то сразу обработанные.  Идеальных данных нет, как и не бывает двумерных продувок.

С уважением

Link to post
Share on other sites
zerganalizer
7 часов назад, a_schelyaev сказал:

Идеальных данных нет, как и не бывает двумерных продувок.

После предварительной калибровки именно сетки получил на NACA 2412 +/- 90 градусов на 0.1 МАХа и RMS_DENSITY 6+, вблизи больших значений 7+. Гонять детальнее буду в понедельник.

Автоматизирую все, что логично.

Link to post
Share on other sites
zerganalizer

Тестирую новую калиброванную по 2-м результатам продувок NACA 2412 и конфиг, на котором я калибровался. Не факт, что при сильно другой скорости результаты линейно (корректно) смасштабируются, но цифры, какие я в баттле получил для профилей по вашим ссылкам теперь может чуть ниже. Словом, я пытаюсь начать баттл на Re 100.000 с тем же шагом до 0.1 МАХа, и поточнее.

 

Пока "кларк" более-менее норм считается, хотя точность я чутка занизил для быстроты теста. Если качество расчёта меня устроит во всём этом диапазоне - я приму это решение за текущий стандарт для дальнейших баттлов.

 

Это решение (мешер + CFD) пока работает от 0.001 МАХа до примерно 1.4 МАХа в диапазоне +/-30 градусов, хотя бОльшая часть диапазона считается +/-90. Точность примерно такая, расчёт в процессе.

 

Запуск расчета: Mach=0.029176066127226598, AOA=16.0
CEff = 9.045397418, Итераций: 1225, RMS_DENSITY = -7.226307772, 
время расчета: 15.9 сек
RE_NUMBER = 698094.9592580154
Режим RANS (Mach = 0.03)

 

 

 

polar_animation_ALL.gif

изображение.png

А вообще поищу способ подкалиброваться для более гладких и быстрых поляр. И подстроить визуальное оформление - я введу в набор данных имена профилей, чтобы автоматом их в легенду выводить. Есть куда копать, сюда например:

 

изображение.png

Edited by zerganalizer

Автоматизирую все, что логично.

Link to post
Share on other sites
zerganalizer
07.11.2025 в 21:53, a_schelyaev сказал:

Идеальных данных нет, как и не бывает двумерных продувок.

У меня весьма подлый вопрос - а загущения на расчёт и цифры влияют? Я уже заметил, что без загущений у носа и хвоста на отрицательных углах поляры заметно меняются. Как выбрать оптимальные, чтобы было похоже на правду? Как в вашей CFD загущения влияют на результаты? В моей если я конвертирую достаточно плотную сетку в квады - разница невелика, а вот плотность и распределение их по длине профиля (20%, 50%) помимо затруднённой сходимости поднимают CL и CMx на отрицательных углах атаки в районе -30...-15. В первой сетке загущения более локальные, во второй более растянуты к середине профиля, но менее плотные. А у вас как?

 

изображение.png

изображение.png

Квадовая сетка вообще так считается:


 

Запуск расчета: Mach=0.005, AOA=-7.0
CEff = -1.207534152, Итераций: 1575, RMS_DENSITY = -9.402019354, 
время расчета: 32.0 сек
RE_NUMBER = 119634.86719111959
Режим RANS (Mach = 0.01)

Запуск расчета: Mach=0.005, AOA=-6.0
CEff = -0.6015896296, Итераций: 1747, RMS_DENSITY = -9.425882009, 
время расчета: 35.8 сек
RE_NUMBER = 119634.86719111959
Режим RANS (Mach = 0.01)

Запуск расчета: Mach=0.005, AOA=-5.0
CEff = 0.08023469333, Итераций: 4065, RMS_DENSITY = -9.596826622, 
время расчета: 60.3 сек
RE_NUMBER = 119634.86719111959
Режим RANS (Mach = 0.01)

Запуск расчета: Mach=0.005, AOA=-4.0
CEff = 0.8314032372, Итераций: 1712, RMS_DENSITY = -9.713293005, 
время расчета: 29.9 сек
RE_NUMBER = 119634.86719111959
Режим RANS (Mach = 0.01)

 

Edited by zerganalizer

Автоматизирую все, что логично.

Link to post
Share on other sites
a_schelyaev

Влияет и это везде так. Нужно исследовать сходимость по сетке. Нужная сетка это и есть решение задачи.

С уважением

Link to post
Share on other sites
zerganalizer
15 часов назад, a_schelyaev сказал:

Нужная сетка это и есть решение задачи.

3 ха-ха! Чтобы узнать правильную сетку - надо продуть вживую и подгонять под эксперимент??? Я давно заметил - всякие аномальные загущения (повторюсь) дают аномальные поляры. Убрал загущения, подобрал сетку под равномерное распределение и параметром роста ячеек от профиля к периферии подогнал под заветные 47 попугаев у NACA 2412. И взял наименее разогнанный конфиг, которым я баттл делал. И всё, как к бабушке сходил: RMS_DENSITY 10+, время расчёта в 3-4 раза быстрее, нет проблем ни на каких углах атаки. Только вот беда - формы поляр сильно изменились. При том, что на скорости 0.3 МАХа пик там, где надо (вроде), а на 0.005 МАХа значения в пике выросли почти вдвое, а CMx провалилась на больших углах атаки. При этом поляры такие гладенькие, как попа младенца.

 

С одной стороны - мне пофиг, если я сравнивать одно с другим буду на одних настройках. Понять же - где тут истина - я не представляю как. Хорошо только одно: расчёт быстр и стабилен в хорошем диапазоне и можно считать у секретарши на планшете. Вот сетка:

 

изображение.png

Edited by zerganalizer

Автоматизирую все, что логично.

Link to post
Share on other sites
a_schelyaev

Это вопрос всеобъемлющий, где требуется также учитывать и алгоритм. Я пишу в предположении, что вопрос алгоритмов и качества сетку тут уже согласован. Если же код недописан, то будете ловить сами себя за хвост. Такова селяви.

С уважением

Link to post
Share on other sites
green_fly
1 час назад, zerganalizer сказал:

гладенькие, как попа младенца

С чего Вы взяли, что поляры должны быть гладкими?

 

Link to post
Share on other sites
zerganalizer
1 час назад, a_schelyaev сказал:

Это вопрос всеобъемлющий, где требуется также учитывать и алгоритм.

Именно - сетка проектируется под метод обдува и опции SST, под SA сходимость совсем другая, и медленная. ТО, что попрёт на ROE - на HLLC в разы медленнее, и цыферьки прилично отличаются, а AUSM-серия будет уже в дивергенте))). Или можно под неё, но широты диапазона не гарантирую, как и стабильности + RMS_DENSITY заметно ниже, уже волнуешься - попал/не попал? Не, можно отключить оптимизатор CFL, и сразу искать кластер))). В моей любительской поделке я пожертвовал даже любимым HLLC: разве что сделаю позже версию поточнее на нём под мощный комп, особенно если я начну денег нехило поднимать или получу пару нобелевских...

 

Кстати - зачем 2-й порядок в турбуленции??? А без неё проблемные углы атаки просто перестают сходиться, даже за 10к проходов при норме в 1к.

Автоматизирую все, что логично.

Link to post
Share on other sites
zerganalizer
31 минуту назад, green_fly сказал:

С чего Вы взяли, что поляры должны быть гладкими?

Уже по практике с XFLR5 заметил - тупорылые профили дают гладкие поляры, расчёты с максимальной сходимостью - аналогично. Есть теорема на 1 млн. долларов, которую просят разрешить - можно ли уравнениями Навье-Стокса получить гладкие поляры или нет, за доказательство или опровержение тезиса всё-равно миллион. 

 

Из практики возни с пакетными продувками - импульсы всегда признак либо преждевременной сходимости (неправильное соотношение степени линейного решателя и степени критерия сходимости как вариант), либо расчёт прекратился по лимиту проходов, не достигнув достаточно точной сходимости. Изломы бывают на полярах с крупным шагом, как на NACA 2412 при обрушении поляры в минус на -15 градусах (или около), но просчёт через 1 градус пока не показывал поляр с изломами даже на остроносых профилях. Если ваша поляра ломаная - она неправильная или слишком грубая по шагу. Это из моей практики борьбы за качество поляр. Всегда находилось объяснение, например, при чрезмерном или логически некорректном "форсаже" расчёта он пробегает мимо решения и после может не попасть в него уже никогда.

 

Вот начал перерасчёт - на низких скоростях всё ок, при повышении скорости в 8 раз "форсаж" расчёта понизил RMS_DENSITY вдвое и перестал успевать сходиться в лимит проходов, даже большой. Я попробовал на проблемном угле увеличить число проходов - но расчёт расходился всё дальше, прыгая со всё бОльшей амплитудой вокруг "ложного решения", куда его форсаж расчёта и загнал.

 

Так что я тут не так давно разработал форсаж, всегда попадающий правильно и куда надо, с огромным RMS_DENSITY , но при сильно бОльших скоростях и углах атаки расчёт валится в дивергент. Поэтому в диапазоне высоких скоростей настройки будут те же, но форсаж скромнее.

 

А иногда сетка слишком "слабая", чтобы сойтись с заданной точностью, и тут вы увидите проверку её "на вшивость": хорошая сетка будет трясти расчёт мелкой дрожью, которая не даст сойтись, но RMS_DENSITY будет также трястись, до самого конца лимита проходов, "зубами держась за решение". А плохая будет трястись с нарастающей амплитудой, понижая RMS_DENSITY вплоть до дивергента. А идеальная сетка сойдётся с тем RMS_DENSITY, на которое способна, если контроля RMS_DENSITY не задано в конфиге - будет удивительно увидеть сошедшиеся решения с заниженным RMS_DENSITY и гладкой полярой. Я уже много настроек мешера отправил в утить с диагнозом "не держит решение".

Edited by zerganalizer

Автоматизирую все, что логично.

Link to post
Share on other sites
zerganalizer
18.11.2025 в 15:42, green_fly сказал:

Вот здесь хорошие картинки

Кончайте уже постить неработающий ютуб. И вообще поздняк что-то тут постить - я в-основном SU2 освоил по части 2D. Остальное пофик...

изображение.png

Автоматизирую все, что логично.

Link to post
Share on other sites
zerganalizer
15 часов назад, green_fly сказал:

Все работает.

Где, в хохляндии? У нас нет.

Автоматизирую все, что логично.

Link to post
Share on other sites
green_fly

В видеоролике представлены экспериментальные результаты продувки профилей с числом Маха около М=0.7 на малых углах атаки. Показана и объяснена структура течения. Приведены результаты моделирования. Показано, что в некоторых режимах подъемная сила крыла может периодически меняться на 20% вверх и вниз. Показана расчетная сетка. Думаю, интересующимся специалистам и новичкам это может быть полезно.

 

20 часов назад, zerganalizer сказал:

Остальное пофик

Вам уже рассказали, как делать правильно. Вы можете делать так, как Вам хочется.

 

3 часа назад, zerganalizer сказал:

У нас нет.

На нет и суда нет.

Link to post
Share on other sites
zerganalizer
23 минуты назад, green_fly сказал:

результаты продувки профилей с числом Маха около М=0.7 на малых углах атаки. Показана и объяснена структура течения.

Догадываюсь, что это так. А ещё не слишком "подходящие" профили могут иметь "внезапный отрыв и даже присоединение" потока. На довольно большом шаге поляры это будет выглядеть скачками. Но дискретизация шага поточнее даст всё-равно гладкую поляру, по моему мнению. "Внезапный" отрыв он тоже плавный, а не острыми "пилами" на поляре. Я предполагаю, что обтекание крыла со всеми вихрями при малой дискретизации шага исследования даст плавные кривые. Словом, я придерживаюсь мнения, что Стоксом-Навье процессы МОЖНО описать гладко. Вопрос только точности и дискретизации пакетного расчёта. Поэтому такого вида поляры (в фоне) точно посчитаны с ошибками:

 

polar_animation_ALL.gif

Вот гоняю свой туннельник остроносый - проскакивающие в фоне поляры тоже плохо просчитаны:

 

polar_animation_CEff.gif

Автоматизирую все, что логично.

Link to post
Share on other sites
green_fly
46 минут назад, zerganalizer сказал:

Я предполагаю, что обтекание крыла со всеми вихрями при малой дискретизации шага исследования даст плавные кривые. Словом, я придерживаюсь мнения, что Стоксом-Навье процессы МОЖНО описать гладко.

То, чем Вы занимаетесь, слабо относится к решению уравнений Навье-Стокса и уж тем более к одной из т. н. задач тысячелетия. 

52 минуты назад, zerganalizer сказал:

На довольно большом шаге поляры

Что такое шаг поляры при фиксированном угле атаки я у Вас спрашивать не буду. Пусть читатель проведет мысленный эксперимент.

Link to post
Share on other sites
zerganalizer
2 часа назад, green_fly сказал:

Приведены результаты моделирования. Показано, что в некоторых режимах подъемная сила крыла может периодически меняться на 20% вверх и вниз.

Вынужден отчасти с вами согласиться. Вот прям сейчас нашёл аномальный всплеск там, где никогда не думал такое увидеть. Пересчитал мелким шагом дважды, со степенью линейного решателя от 4 до 6 и разными настройками, проверенные конфиги, понаблюдал процесс сходимости. Поняв, что это физика - как раз туннельник на скорости, где начинаются переходные трансзвуковые процессы - пересчитал кусок поляры шагом 0.1 градуса и запечатлел момент пика всплеска: 

 

изображение.png

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

 

изображение.png

 

Кстати - когда просчитывал 6-й степенью решателя - пики более гладкие были и чуть больше. Снимаю шляпу ! (с).

43 минуты назад, green_fly сказал:

слабо относится к решению уравнений Навье-Стокса

RANS это оно и есть, но вихри "синтетические". У меня была сетка, сходящаяся нормально чисто в NAVIER_STOKES, без симуляций и фантазий систем турбулентности.

43 минуты назад, green_fly сказал:

Что такое шаг поляры при фиксированном угле атаки я у Вас спрашивать не буду.

Вы когда последний раз поляры-то рисовали??? Вообще вам известно - ЧТО ЭТО??? Поляра, приведённая выше, выполнена с шагом УГЛА 0.1 градуса.

43 минуты назад, green_fly сказал:

Пусть читатель проведет мысленный эксперимент.

Читатель из вас лучше, чем писатель )))

Edited by zerganalizer

Автоматизирую все, что логично.

Link to post
Share on other sites
zerganalizer
4 минуты назад, green_fly сказал:

Да все мастера википедию гуглить - поляры-то разные бывают: как распределения давления по длине профиля, так и множественные поляры с переменными скоростями атаки и зависимыми от неё параметрами, как в моих полярах сейчас. Вы хоть уяснили, что в приведённых полярах ВЕЗДЕ угол переменный, т.е. нарисованы зависимости параметров ОТ ИЗМЕНЕНИЯ УГЛА АТАКИ. Так что ваш пук

55 минут назад, green_fly сказал:

Что такое шаг поляры при фиксированном угле атаки я у Вас спрашивать не буду. Пусть читатель проведет мысленный эксперимент.

попал в лужу)))

Edited by zerganalizer

Автоматизирую все, что логично.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Сообщения

    • Ев.Гений
      ГОСТы - это идеальный мир. В жизни всё подстраивается под особенности производства. У нас ЭД тоже занимается отдельное подразделение. Так вот они эти ЭД офрмили в виде чертежа детали на одном листе А4, в котором нет собственно ЭД, только требованию на печатную продукцию. А уже в корпоративной ИС регулярно выкладывают новые ЭД на новые семейства изделий и обновленные ЭД для уже производимых изделий вместе с новыми вкладышами для предыдущих версий ЭД. И производство само заказывает в типографии и вкладыши в необходимом количестве (разработчик же не знает сколько сотен и тысяч экземпляров ЭД имеется в запасе на производстве) и потом уже, после исчерпания запасов, заказывает новые версии ЭД. Да, это не по ГОСТ, но это массовое производство.   "Дичь" искоренять надо, но если предприятию почти сотня лет и оно пережило не одну государственную систему оформления КД, то приходится приспосабливаться к нажитому опыту, тем более первые изделия были вообще лицензированы зарубежом с их КД. (у нас до сих пор применяются простые изделия, оформленные по сути переведенной сотню лет назад КД)   У нас разработчики - это одно юр. лицо со своим архивом (в том числе и электронным), а технологи - другое. И технологи не отказываются от получения некомплектной КД (в том числе и без СБ, хоть они и вписаны в СП). У них для этого свои аргументы (при этом периодически палкой тычут в бок, когда терки начинаются, но не отказываются от некомплекта).
    • kirass
      Дополню ответ С фаилами в закрытом состоянии может работать только системный админ(с логин паролем АДМИНа хранилища) С остальными  фаилами может пользователь с правом отмены разрегистрации.
    • Demek18
      Спасибо большое за ответы. Стало яснее. А что является часом икс для сдачи полного комплекта? Срок по ведомости исполнения? И еще можно уточнить, как тогда трактовать фразу ГОСТ 2.601: 4.5 ЭД разрабатывают на основе: - рабочей конструкторской документации - по ГОСТ 2.102; У нас тут подход такой: сначала заложим КД в архив, а потом мы будем делать ЭД. И даты утверждения КД и ЭД могут отличаться на полгода, например. Но при этом ЭД будет фигурировать в головной спецификации. Есть в этом какая-то логика или это нарушение? В идеальном мире. И на что можно ссылаться, если настаивать, чтобы готовили ПОЛНЫЙ комплект к сдаче или убирали ЭД из головной спецификации? Только если фиксировать в нашем СТП? Или я пропускаю в ГОСТах пункт, где это указано?  
    • kirass
      Из под пользователя с правами админа можно отменить разрегистрацию файлов версии выше первой. Т.е. пользователь регит фаил, фаил получает версию 1, пользователь разрегистрирует фаил и оставляет его в этом состоянии ...... Такой сценарий отменяется только системным админом(красная стрелка)!   Пользователь регит фаил, фаил получает версию 1, пользователь разрегистрирует фаил, работает с ним, снова региг, фаил получает версию 2, пользователь разрегистрирует фаил и оставляет его в этом состоянии ...... Такой сценарий может быть отменен пользователем с правом отмены разрегистрации(черная стрелка)!   В столбце разрегистрировано пользователь будет написан курсивом для файлов где отмена возможна только системным админом и обычным если отмена возможна пользователем с правом отмены разрегистрации.
    • brigval
      Вы можете не купить 1,7 м если Вам предлагают 50 м. Поэтому фактическое закупленной количество может быть и больше, чем указано в спецификации. Можно исходить из этого.     Если нарезка идет по спецификации, то удобнее указать в спецификации. Кому как удобнее для работы, тот так и напишет. Здесь нет смысла упорствовать. )
    • Kelny
      Спецификация это фактически документ на поставку (это не документ о намерениях или договорённостях), если вы записали туда материала меньше чем надо на изделие с учётом допусков, то материала может просто не хватить. Тогда с тем же успехом можно написать только в ТТ и в спецификацию не записывать вовсе, так же как это делается для припоя или клея. Хотя если расход клея или припоя значительный, то его имеет смысл записать в спецификацию.   Конечно графа примечания ваша, но с тем же успехом это можно записать в ТТ или нанести размеры прямо на деталь в сборочном чертеже, что может быть нагляднее и понятнее. Но если есть хотябы небольшая вероятность, что это будут резать не при сборке, то лучше всё таки сделать чертёж детали и не морочить производителю голову.  
    • DanilV
      Я все понимаю ESPRIT наше все. Вы не могли бы посмотреть в библиотеках ПП именно для CITIZEN CINCOM M 20 1999 г. в? Он еще M1, скорее всего называется.
    • MixaIT
      Тут еще интересно посмотреть как DXF надо будет открыть в текстовом редакторе, скопировать содержимое и вставить это содержимое в специальное окошечко. Это же мега удобная технология! 
    • mannul
      Опять вранье, не умеет твой киберолух централизованно обновляться и улучшаться, потому что он не генеративная нейросеть, а набор if then else. DXF нужен специально подготовленный, обычный не подойдет
    • brigval
      Закупать можно больше и без увеличения размеров в КД. Какие есть договоренности. Если договоренностей никаких нет, можно записывать и с запасом конечно.     Это в графе "Кол." Я написал "в примечании", это значит в графе "Примечание"...
×
×
  • Create New...