Перейти к публикации

Слошинг в Fluent


Рекомендованные сообщения

Здравствуйте!

Считаю тестовую задачу. Слошинг для двумерной геометрии - квадрат 256х256 мм. Домен наполовину заполнен водой. Вторая половина - воздух.

Initial_Volume_Fraction.PNG

На домен действует постоянное ускорение свободного падения по вертикали и переменное ускорение по горизонтали - бак трясеться. переменное ускорение изменяется по такому закону, амплитуда - 8g.

Load.PNG

Я уже посчитал эту задачу в CFX, теперь я хочу сделать то же самое во Флюенте. Я ознакомился с примером в туториалах (там где считаем каплю чернил). Еще я нащел туториал на похожую тему - слошинг в бензобаке.

Но у меня еще остались вопросы.

1. Я сделал Transient Table для переменного ускорения, таблица успешно считывается но в поле ускорения (там где Expression, UDF и все такое) не отображается.

2. На вкладке General есть поле для задания ускорений и в Operation Conditions тоже есть поле для ускорений. Мне надо дублировать все ускорения и туда и туда или постоянное в Operation Conditions а переменное в General? В туториале по баку ускорение вообще задавалось только в Operation Conditions.

3. В CFX я задавал гидростатическое давление в жидкости, нужно ли мне его задавать во Флюенте или оно само посчитается из НУ, в туториале гидростатику не задавали?

4. Как можно изменить допустимые уровни Residuals? В окне на картинке они неактивны, я жал все кнопки подряд но они так и не активировались.

Residual Monitors.png

Прикладываю файлы проекта (2019R3), сетку, файл с Transient Table и туториал по баку.

Acceleration.txt box_2D.cas.gz box_2D.msh Tutorial_Fuel_Tank_Sloshing_Introduction.pdf

Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts

С некоторыми вопросами разобрался.

Зависимость нагрузки от времени задал с помощью ужасного Expreddion. @piden должно понравиться)

IF(t<=0.02[s],8*g*(t/0.02[s]),0*g)+IF(AND(t>0.02[s],t<=0.05[s]),8*g,0*g) +IF(AND(t>0.05[s],t<=0.07[s]),8*g*(1-(t-0.05[s])/0.02[s]),0*g)+IF(t>0.07[s],0*g,0*g)

Как я понял - ускорения на вкладке General потом дублируются в Operating conditions.

Результаты в модели странные - тоже есть большое падение давления и сам график весь в зазубринах. График похож на то что получалось в CFX пока я не задал Pressure Level. Только во флюенте я задал давление в Operating conditions.

1344384771_.thumb.PNG.2bc6bc06295e362da2ec0e1e853b5a87.PNG

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

https://imgur.com/a/PLiWqXC

Прикладываю обновленный файл проекта.

box_2D.cas

Ссылка на сообщение
Поделиться на других сайтах

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

https://imgur.com/a/LMzp7Lr

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

559619609_3.thumb.PNG.e444edc82bcb3feeb7bc7bd8ab548a21.PNG

box.zip

Ссылка на сообщение
Поделиться на других сайтах

@piden, @soklakov Я разобрался с нефизичными давлениями. Оказалось что данных из Operating Conditions недостаточно для задания правильного уровня давления в домене. Я добавил к комену маленькую трубочку с Pressure Outlet на конце и все заработало!

 

Снимок.PNG

Снимок1.PNG

Ссылка на сообщение
Поделиться на других сайтах
В 23.03.2020 в 18:48, karachun сказал:

При этом результаты хорошо совпадают с CFX

Так наверное считалось по одним и тем же моделям просто

Ссылка на сообщение
Поделиться на других сайтах

@MotorManiac Задача вообще не сильно чувствительна к "тонким" настройкам. Модели турбулентности, поверхностное натяжение, гомогенная/негомогенная постановка многофазности почти не влияют на результат.

А вот сама постановка задачи - наличие данных о уровне давления - критично. Без него получаются нефизичные отрицательные давления. В CFX без задания Pressure Level был отрицательный горб на графике давления и при этом с уменьшением сетки горб все рос без намеков на сходимость.

Pressure_Level.png

Graph.PNG

Изменено пользователем karachun
Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, karachun сказал:

А вот сама постановка задачи

видимо да, основа основ)  Вы не знаете как средствами post cfd осреднить значение переменной на выбранном интервале (на графике, скажем, с 0.15с до 0.2с)? или это нужно вытягивать данные, например, в эксель и там уже смотреть ?

Ссылка на сообщение
Поделиться на других сайтах

@MotorManiac В CFX можно задать осреднение еще до запуска, в настройках мониторинга. А если все посчитано то по моему мнению проще вытянуть в ексель. В CFD-Post есть Table Biewer, по идее в нем должен быть базовый функционал екселя, но я в нем не работал. Еще в посте есть возможность писать пользовательские скрипты, но это для меня темный лес. Так что ексель/маткад будет удобнее всего.

Ссылка на сообщение
Поделиться на других сайтах

Получается интересная ситуация - если взять простой бак и добавить несколько перегородок но сделать перегородки не на всю ширину то давление на торцевую стенку будет намного больше чем в баке без перегородок.

Получается что в промежутке между перегородками вода сильнее разгоняется и происходит что-то наподобие гидроудара.

В архиве приложил .cas файлы. Баки наполовину наполнены водой, в моделях уже есть Cell Register для инициализации.

https://imgur.com/a/wbrgVmH

Chart.png

1.png

2.png

simplified_water_tank_NoBulkheads.zip

Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах
В 03.04.2020 в 09:05, an_rushin сказал:

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

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

 

 

Еще такой вопрос возник по выражениями во Флюенте, которые только недавно появились.

Хочу сделать адаптацию сетки около свободной поверхности, как в этом видео.

https://www.youtube.com/watch?v=AiDFNevhJ98

Для этого создаю выражения для отслеживания объемной доли воды но в меню выражений сама переменная для объемной доли называется Volumefraction - без уточнения к какой фазе она относиться. В таком виде переменная не работает, при запуске появляется ошибка. Я пробовал добавлять название нужной фазы так Volumefraction_water или так Volumefraction(water) но само окно редактора становиться красным - такие варианты не подходят. Искал в Fluent Users Guide но там только есть упоминание что переменная Volumefraction существует, без указаний синтаксиса.

И собственно вопрос - как правильно задать эту переменную?

Domain.PNG

VolumeFraction.PNG

Expression.PNG

Adapt_Refine_Window.PNG

box_2D_Outlet_Coarse.zip

Ссылка на сообщение
Поделиться на других сайтах

Подсказали на CFD-online.com.

https://www.cfd-online.com/Forums/fluent/225658-fluent-vof-dynamic-mesh-adaptation-problem.html

Переменная должна иметь такой вид:

Volumefraction(phase="water")

И в хелпе об этом написано.

1.PNG.b3afd0bf8bfb9ac317ac48901a5b8911.PNG

После исправления переменной адаптация заработала.

https://imgur.com/a/T6ZnY63

2.PNG.fa3750e0caeeabf73cd067b0f64daa15.PNG

Ссылка на сообщение
Поделиться на других сайтах

Значить так, господа @an_rushin, @MotorManiac, @soklakov, @piden и прочие сочувствующие. У меня появилась гипотеза!

Я посмотрел на положение свободной поверхности в момент времени, соответствующий пику на графике.

Chart.png

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

539586174_5.thumb.PNG.72fe3de7ee8e0d25e8cb194d29907886.PNG

А в модели с перегородками водяной столб намного выше - в этот момент (на самом деле по чему-то в момент на 0.001 секунд позже - буквально мгновение после) вода полностью заполняет пространство между перегородками. А так как вода у меня несжимаемая то получается что теперь объем жидкости уже не может двигаться по направлению вдоль бака (по X). Получается что жидкость должна затормозить и повернуть вбок, чтобы перемещаться туда где еще есть свободное место. И это резкое торможение жидкости и вызывает этот пик.

Так как воздух несжимаемый то он без проблем передает часть напора с каждой "волны" дальше до конца бака. Но даже если бы воздух был сжимаемым то это только частично сгладило пик.

Если мои догадки верны то если взять бак с увеличенной высотой то такого скачка давления там не будет так как вода не сможет перекрыть все зазоры между стенкой и перегородкой. А даже если и перекроет то сам пик будет немного смещен дальше по времени так как нужно будет еще какое-то время чтобы вода поднялась выше.

https://imgur.com/a/3yR3NSz

1038426932_6.thumb.PNG.7bd324f7f646b6f8815ecc74f0c187e0.PNG

157144778_7.thumb.PNG.b5bd7ee4be3d2127b7895c541e155eaa.PNG

Ссылка на сообщение
Поделиться на других сайтах

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

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

Так что нужно учесть сжимаемость.

Ссылка на сообщение
Поделиться на других сайтах
В 07.04.2020 в 18:06, karachun сказал:

Но даже если бы воздух был сжимаемым то это только частично сгладило пик.

сразу подозрительно выглядело.

Ссылка на сообщение
Поделиться на других сайтах
  • 4 месяца спустя...
1 час назад, Jesse сказал:

Слошинг в Флоу Симулейшн..)

Не, мне религия не позволяет.

Да и слошинг для меня уже пройденный этап.

Хотя... сама презентация мне понравилась, похоже что комментаторша хорошо в теме разбирается.

Ладно, все равно у меня мощностя пока простаивают. Посмотрим, где окажется кривая солидворкса. Может заодно и результаты у Fluent/CFX улучшу.

Снимок3.PNG

Изменено пользователем karachun
Ссылка на сообщение
Поделиться на других сайтах

@karachun кстати, насчёт мощности: в видео девушка говорила, что на ночь оставляла расчёт слошинга в этой автоцистерне на не очень точной сетке. видимо, на обычном домашнем компухтере. А у тебя ведь доступ к кластеру есть?) Сколько твоя задачка считалась?) 

13 часов назад, karachun сказал:

Посмотрим, где окажется кривая солидворкса

если она окажется ближе к эксперименту, то это можно уверенно списать на случайность/погрешность/флуктуацию:biggrin:

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...