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

Слошинг в 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 пользователей

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




  • Сообщения

    • Turgenev
      Не, греться будет, конкретно, потому что разъем будет прямо на стенке "стакана", а сам "стакан" будет нагреваться от нагревателя до 300 градусов. 3Д модель в процессе. погуглил, это разъемы типа таких: У них все круто, но нет фланца, чтобы хоть как-то закрепить разъем на стенке "стакана". По вашей наводке нагуглил еще разъемов, стоят дорого и очень большой габарит: Есть интересные варианты, но я не смог найти к ним ответную часть:   Это что-то типа такого: Мне не подходит по форм-фактору. Нагреватель должен быть в форме диска- плоский цилиндр диаметром 75мм и высотой около 10-20мм То есть запах идет от обгорания металла нагревателя? Вариант с заливкой нагреватель термостойким бетоном был, я даже его опробовал, но очень уж трудозатратно выходит. Любой металл будет иметь запах при нагреве, если его никуда не засовывать?
    • FROST_R6
      Здравствуй, ты можешь свой дискорд дать и показать?
    • Guhl
      У вас питание силовое на привод приходит? Е09 - отсутствие силового питания
    • Максим604
      В мануале написано что подача при Резьбофрезеровании считается по центру инструмента. Ок. Тогда почему когда пишешь в кам системе, то выдает подачу для движение  по траектории.      Перефразирую.  Нужно нарезать внутреннюю резьбу М20х2.  Фреза 3 зуба ∅12. Скорость резания 50. (Оборотов 1326)  Подача на зуб 0.05   Когда пишу в джи кодах, то выдаётся подача 198.9 мм/мин. С этой подачей станок и режет.    А если написать через шопмилл, то при тех же условиях( скорость резания и подача на зуб), он подачу пересчитывает для центра фрезы.  И выходит подача 80 мм/мин.   И выходит что при одних и тех же условиях меняется время обработки.    Когда пишешь через кам, то подача считается по траектории, а шопмилл считает для центра.    И я не понимаю как правильно считать. И почему именно так.  И в мануалах не нашёл ответа. 
    • maxx2000
      Да вот так ему хочется. Вот такие гады разработчики. Небось и в мануале всё это описали. Я негодую вместе с тобой.
    • Максим604
      Поэтому и вопрос. почему шопмилл подачу меняет, когда пишешь через него(макропеременые), а когда через G код не меняется. как шопмилл просчитывает новую подачу я понимаю, но не понимаю как прравильно и почему именно так правильно, а не наоброт. почему шопмилл переводит подачу с движения по траектории на движение по центру?     
    • Snake 60
      Так а зачем, если вот эта кнопка  сохраняет все детали и подсборки входящие в нее: При желании можно повесить на горячую кнопку через Настройка-Клавиатура Или пересохранить имеется ввиду создать копию с новым именем? Если да, то для этих целей я бы посоветовал крутой макрос с именем Коперник от @tompsongun См. пост выше.
    • maxx2000
      ну хотя бы то что одна написана через макропеременные, вторая в джи кодах. Ты считаешь что при одинаковом результате у них одинаковые алгоритмы?  
    • Максим604
      А что должно смущать?
    • maxx2000
      Ничего не смущает?
×
×
  • Создать...