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

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

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




  • Сообщения

    • maxx2000
      а если делать канавку снаружи на глубину чуть больше толщины кольца, а потом изнутри растачивать и кольца будут повисать прямо на резце.
    • Orchestra2603
      Да, в рот мне ноги... Ну, считает же Ансис, считает! Блин.. Как до вас донести простой мэсеж. Мне често, пофигу, делает он там себе факторизацию или еще что-то. Но то, что он нормально считает Ланцошем для случая с вырожденной матрицей жесткости - это факт! А раз он считает, то либо (А) вы хрень несете про факторизацию, либо (Б) он такую факторизацию делат сам без проблем. Третьего тут быть не может, и выходит, что в любом случае ваши тезисы оказываются несостоятельными.   Какая вам нужна факторизация? давайте! заказывайте! На какие вам надо матрицы разложить? с какими свойствами? давайте ваш заказ!   Вы на мой пердак не зарьтесь! Смотрите, чтоб ваш функционировал исправно! А то того и гляди, фекализация случится.  
    • Иван Васильев
      Доброго времени суток! Удалось решить проблему?
    • ДОБРЯК
      Вам похоже ничего не нужно, а для алгоритму Ланцоша нужно сделать численную факторизацию. Вам только нужно побольше букв и слов написать. :=) Всё подгорел пердак? :=)
    • Orchestra2603
      При чем здесь это? Речь не идет про эффективные или неэффективнеы алгоритмы. Вы утвержаете, что это просто невозможно.   При чем здесь первые или не первые, все или не все... Какое это имеет значение? У Ансис есть алгоритм Ланцоша, он находит столько, сколько запросите. В Маткаде - он да, находит все. Наверное, можно и не все, но я хз, как это делать. Я не понимаю, какое это имеет отношение к разговору.   Неа Ткните пальцем и объясните, в чем ошибка в конкретном рассуждении   Как я должен решать методом Гаусса задачу на собственные значения? Мне же не решения СЛАУ нужны! Их то, ясен пень, бесконечное множество для системы с вырожденной матрицей. Мне собственные значения нужны! Мне нужно базис найти, чтобы матрица (или матрицы в обобщенном случае) оператора была диагональной.   Сначала скажаите мне, зачем ее дать! В чем идея заключается? Вы все слюной брызжете, но ничего по делу еще не сказали. Какой-то нормальный контраргумент от вас можно толковый услышать?   Как еще изволите вас обслужить? Вы - полегче, уважаемый!
    • ДОБРЯК
      Вам нужно десять раз написать одно и тоже, чтобы вы поняли. Почитайте документацию к программе там же всё написано. Мне не сложно копировать...:=) Те алгоритмы которые вы используете находят все собственные числа и вектора. Для разреженных матриц это приводит к их заполняемости. Смекаете о чем я говорю. Или нужно еще разжевать? Во всех.   Решайте методом Гаусса. Матрица 2х2 в чем проблема сделать численную факторизацию любым методом? :=) Больше дела, меньше слов и букв...
    • mannul
      Скорость резания от 8 до 12 м/мин, подача 0,04 мм/зуб, глубина резания - 1,5 мм.
    • Orchestra2603
      " Стою на асфальте я, в лыжи обутый: То ли лыжи не едут, то ли я ..." (с)   1. Вы утверждаете, что для расчетов на СЗ и СВ в случае вырожденной матрицы жесткости нужно провести ее факторизацию. Без нее - никак! Непонятно, какую и зачем, но надо. Ок, допустим.  2. @Jesse,  я, @Fedor, да и вы сами показываете, что таки СЗ определяются для вырожденной матрицы. Значит, либо ваше утверждение про факторизацию неверно, либо она таки делается тихонько себе за кадром. 3. Еще одно наблюдение... Матлаб говорит, что он делает QZ разложение для матриц, у которых нет положительной определенности, т.е. для которых не работает разложение Холецкого. При этом опять же с собственные числа с одной вырожденной матрицей считаются нормально. Т.е. даже если вдруг и необходима такая факторизация (хотя я сомневаюсь, что вот прям обязательно она нужна), то делается она без особых трудностей.   В каком месте я неверно рассуждаю?   Так и не обязательно их записывать для расчета собственных колебаний. Ну... Можно конечно, но тогде некоторые частоты и формы, которые такой симметрией могут и не обладать, вы потеряете в расчете, поскольку введенные условия симметрии их исключат просто из модели.    
    • gudstartup
    • gudstartup
      у меня рободриллы и чпу и тем не менее picture нет наверно она к роботам относится
×
×
  • Создать...