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

Free Surface и граничное условие Opening


fluent3000

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

CFX 14.5

Для всех доменов Domain Models -> Pressure -> Reference Pressure = 1[atm]

Верхняя грань определена как Opening (Mass and Momentum -> Option = Entrainment, Relative Pressure = 0 [atm], Turbulence -> Option = Zero Gradient). Volume Fraction на этой границе для воздуха 1, для воды 0.

Инициализация Static Pressure -> Relative Pressure задано с использованием функции step() или if(). Так что там где воздух получается 0, а там где вода - градиент с увеличением в сторону вектора гравитации.

Основная проблема в том, что со временем вода уходит. Т.е. сосуд ограничен стенками, а сверху Opening. Я прорешал 20 секунд и вижу что уровень воды убывает. Смотрю на вектора скорости, а они направлены вверх (там где должен быть только воздух).

Так же в начальный момент времени в CFX-Post видно что там где воздух давление равно 0 Pa. Так и должно быть? Я ведь так понимаю, что в Static Pressure -> Relative Pressure указывается давление относительно Reference Pressure в параметрах домена.

Но там где воздух в начальный момент времени 0 Pa, как я уже сказал.

Точно такая же ситуация в туториале "Chapter 9: Free Surface Flow Over a Bump" (там тоже в начальный момент времени там где воздух давление 0 Pa).

Как делать правильно? Как сделать так чтобы верхняя грань была Opening, но чтобы через неё не уходила вода.

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


Как делать правильно? Как сделать так чтобы верхняя грань была Opening, но чтобы через неё не уходила вода.

Ну.. задать гравитацию)

Шучу. Надеюсь, это сделано. Но пока кажется, что где-то ошибка. Проверьте, как задана Buoyancy в домене, удостоверьтесь, что гравитация направлена в нужную сторону.

Так же в начальный момент времени в CFX-Post видно что там где воздух давление равно 0 Pa. Так и должно быть? Я ведь так понимаю, что в Static Pressure -> Relative Pressure указывается давление относительно Reference Pressure в параметрах домена

Pressure в CFX-Post = Relative Pressure

Absolute Pressure = Relative Pressure + Reference Pressure -- то, что Вы хотели посмотреть.

Я прорешал 20 секунд и вижу что уровень воды убывает. Смотрю на вектора скорости, а они направлены вверх (там где должен быть только воздух).

Как-то очень субъективно.. Посмотрите, какое значение Volume Fraction (Water) на этой границе, MassFlow(Water).. Сделайте разделение сред не по VolumeFraction(Water) = 0.5, а по 0.1, к примеру. Сделайте расчет с простейшим кубиком, куда доливаете воду, с Opening наверху. Если и там будет такая проблема -- выложите этот простой проект.
Ссылка на сообщение
Поделиться на других сайтах

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

А рапределение давления иниацилизовано как для кубика.

В результате получается как-то так (30сек симуляции в 5 сек видео)

1. Правильно ли я понимаю, что всё стремится нормализоваться? Или в результате неправльной инициалиазии давления так и будет нефизичное поведение?

2. Как лучше инициализировать рапределение давление, если исходный объем жидкости сложной формы (да еще обрезанный по типу "обрушения платины")?

3. Если создать Inlet с рапределением давления на подобие ПЛОТНОСТЬ*g*(ВЫСОТА - z), то это будет нормально?

4. Какие есть еще удобные способы задания начального распределения давления?

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

Попробовал -- такое же неподобство получается..

Интересно, что статика нормально решается, а при transient уровень воды все время падает.

Выложите, пожалуйста, тот кубик, где "воспроизвести проблему не удалось". Т.к. у меня даже на кубиках она присутствует)

UPD: разобрался в причинах) Утром объясню. Если вкратце: причина -- это бесстыдно большой шаг по времени. Уже для 0.1s решается нормально. Для любой формы контейнера с жидкостью)

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

Вот мой кубик (30сек симуляции в 13сек видео). В первую секунду видно перераспределение давления. Но уровень воды не падает.

В приложении файл с проектом.

На видео, где "стакан", он там из тетра сетки. А мой "беспроблемный" кубик в hex. Подумал что может тут собака зарыта (мол в начальном положении уровень менее стабильный). Сделал кубик в тетрасетке и тоже всё ок.

Вообще, изначально я это заметил при таких обстоятельствах. У меня происходило "обрушение плотины" в объеме напоминающем тот "стакан" на первом видео. Разумеется в первые секунды всё хаотично плещется. Но когда успокаивается оказывается что осталось нереально мало воды и она вроде как успокоилась, но все равно продолжает убывать.

Я начал думать, что в процессе всплеска какая-то часть попадала на Opening и он прилично так всасывал/увлекал в себя еще докучи (Entrainment переводится как "увлекать", вроде). Но я пробовал другие подобные настройки для Opening из туториалов и ситуация не менялась.

P.S. Сейчас смотрю на стакан и к концу видео он вроде как почти устаканился :) Надо до 50сек дальше прорешать.

UPD: разобрался в причинах) Утром объясню

о супер! жду с нетерпением :)

cube.zip

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

Если вкратце: причина -- это бесстыдно большой шаг по времени. Уже для 0.1s решается нормально. Для любой формы контейнера с жидкостью)

К сожалению, не могу подтвердить :) Прорешал 30сек на стакане с шагами 0.1с и 0.025с. Падение уровня воды немного меньше, но все равно очень заметно. Причем для шагов 0.1 и 0.025 результат одинаковый.

Сейчас буду пробовать шаг 0.01с

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

Ну а если изначально воду поставить параллелепипедом, то вроде как все в норме. Если не считать, что в результате всплеска объем воды уменьшился на четверть. Но это наверное объясняется тем, что она ушла через Opening.

На видео 23сек симуляции в 12сек видео. Из них последние секунды это тоже самое что вначале по второму кругу.

Файл проекта в прикрепленном файле.

simple_exmaple.zip

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

Бросаю кубики воды в том же "стакане". Тоже вроде всё в норме. Пока думаю что проблема всё же в неправильной инициализации давления.

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

Даже для такой простой задачи нужно курить мануалы на тему Courant Number..

С "инициализацией давления" все в порядке) Если не верите -- решите статику с теми же ГУ.

Ну, или предложите свой метод, отличный от CFX // Modeling Guide // 7. Multiphase Flow Modeling // 7.18. Free Surface Flow // 7.18.5. Modeling Advice for Free Surface Flow

Чтобы проще было смотреть, как влияет шаг на сходимость и результат, создайте в Output Control > Monitor > Monitor Object> Monitor Points and Expressions новое expression типа water.massFlow()@Opening (где water -- название жидкости в домене, а не материала).

При решении будет выводиться график этого выражения, можно будет оценить, сколько "уходит" воды. Для различных значений шагов по времени этот график будет сильно отличаться. Как и графики невязок) Увеличение количества coefficient loops при больших шагах не улучшает ситуацию.

Как подобрать адекватный шаг по времени? Еще тот вопрос.. Для своих быстрых прикидочных расчетов попробуйте найти тот шаг, когда расход воды через opening близок к 0 с неподвижной сеткой. Когда будете считать подвижную, тоже мониторте этот параметр..

Нижние графики на картинке -- расход через Opening, в кг/с, для вашего кубика в тетре. В первом случае tstep = 0.1 , во втором 1.

post-17421-1360949994_thumb.png

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

С "инициализацией давления" все в порядке) Если не верите -- решите статику с теми же ГУ.

Ну, или предложите свой метод, отличный от CFX // Modeling Guide // 7. Multiphase Flow Modeling // 7.18. Free Surface Flow // 7.18.5. Modeling Advice for Free Surface Flow

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

я же написал (и приложил файл проекта) что для случая со "стаканом" уменьшение шага у меня не работает. но стоит только в нем поставить воду параллелепипедом, как проблема исчезает.

понятно, что шаг тоже влияет. но для меня так же очевидно что не только он.

Чтобы проще было смотреть, как влияет шаг на сходимость и результат, создайте в Output Control > Monitor > Monitor Object> Monitor Points and Expressions новое expression типа water.massFlow()@Opening (где water -- название жидкости в домене, а не материала).

спасибо за указание на water.massFlow()@Opening . точками для мониторинга пользуюсь. как раз искал чем следить за расходом.

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

Поверхностное натяжение включено?

Если не включено - попробуйте включить. Должно сработать.

С уважением, BadArtem

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

Ok, попробую.

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

Непонятно почему в туториалах подобные задачи решаются и использованием Однородной модели (Homogeneous). Это правомерно, но с рядом допущений.

В общем с Inhomogeneous всё работает шикарно. Разница в утечках через Opening между Homogeneous и Inhomogeneous минимум 8 порядков!

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

Разница в утечках через Opening между Homogeneous и Inhomogeneous минимум 8 порядков!

Воистину... И считает с ней быстрее)

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

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

С негомогенной моделью ещё более запутанная ситуация. Если посмотреть в уравнения, там коэффициент межфазного взаимодействия получается из коэффициента сопротивления шара в потоке. Т.е. (IMHO) это совсем даже не для свободной поверхности модель.

Если кто-нибудь может внести ясность в вопрос "для каких задач правильнее применять гомогенную, а для каких негомогенную модель?" - прошу поделиться.

С уважением, BadArtem

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

Так же для Inhomogeneous есть возможность смотреть отдельно вектора скорости воздуха и отдельно воды. Что для homogeneous сделать нереально.

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

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

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

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

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

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

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

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

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

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

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




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