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

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 пользователей

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




  • Сообщения

    • gudstartup
      @gudi продублировали ответы по теме а зачем неясно....
    • ANT0N1DZE
      Упрощенный план действий: Начните со стр. 155 https://www.utgt73.ru/uploads/biblioteka/fizika 10.pdf Если будет вращаться быстро и не в вакууме, то надо будет учесть "парус" этого тела, там сопротивление газа зависит от скорости движения. Это уже примерно 1 курс университета (тоже гуглится спокойно). 
    • MagicNight
      Заметил такую особенность, что в PowerMill v6 (возможно и в других тоже) происходит следующее... Создаю NC-файл и туда сбрасываю траектории (около 10-15 на разные фрезы), на выходе некоторые траектории не прописывает вкл охлаждения. То есть в графе Охлаждение на одну из 10-15 траекторий пишет НЕТ, на всех остальных -Стандартное (то есть да) Получается, что из, условно десяти траекторий, одна или две прописываются без включения СОЖ. Но что интересно по отдельности программы выходят с включенной СОЖ, всегда! Не могу понять зависимость с этим. Кто-нибудь сталкивался с этим?
    • ЮрЮрыч
      Вам нужно просто общее количество или оптимальную раскладку для резки наподобии нестинга?
    • Jesse
      да. Забыл добавить. Я там в тестовом примере ещё сверху шум накинул небольшой амплитуды, в 10 раз меньше чем основной сигнал. Если шум убрать, то получится что амплитуда дискретного фурье спектра растёт примерно в sqrt(N2/N1) раз, где N2 - число отсчётов для правого графика, а N1 - для левого. Но не суть.. Мой главный вопрос как получить "рабочую", правильную амплитуду DFT, которую можно было бы вбить в прогу?   не, у меня более простой второй вариант) вот когда скажут заморочиться с ансамблем и случайными процессами, тогда и будуда и комиссии если что-то подобное пробубнить, то мне точно прилетит..   Harmonic Response. На резонанс проверить.   вот сейчас только в голову пришло! Там ведь поправочные коэффы в DFT используются! Типа 1/sqrt(2*Pi) чё т такое. Пойду курить вольфрам
    • Orchestra2603
      Я, честно скажу, не знаю как на практике это проходит, что в нормах пишут и т.д. Стоит задача провести вероятностный анализ (вероятност ьпревышения пределеа текучести, например), или надо просто посчитать динамику на одну вот эту вот историю ускорений, и все? Второй вариант проще, но по-правильному, наверное надо, как в первом варианте.   а какой анализ вы хотите делать?   Если больше отсчетов по частоте, то повышается разрешение в частотной области, и просто пик становится более резким. В предельном случае будет просто одно значение в районе частоты действия силы, а вокруг него везде нули. Но, когда разрешение падает, то амплитуда с пика "сползает" и "растекается" на соседние частоты. Но сама сумма в силу равенства Парсеваля, как вы правильно сказали,  должна быть такой же.   Это очень странно. Впечатление такое, что как будто где-то какой-то косяк с БПФ. Если в начале во времени был синус с амплитудой 1, то на спектр еможет быть 1 (если однсторонний спектр), либо 1/2, если двухстронний спектр. Может, оконная функция какая-то странная? Надо разбираться...  Так а если он задаст на уровне земли как кинематическое возбуждение опорного контура? Вроде же норм... Или речб о том, чтобы убрать из модели опорную конструкцию, на которой держится оборудовнаие?
    • Борман
      и не только. При отсутствии отраслевого ГОСТа, пользуйтесь СП 14.13330.2018. Там найдете нужные коэффициенты.
    • Jesse
      у нас по НП-068-05 в отсутствие акселерограмм и спектров ответа и на 3g трясут.. мне тоже один мужик с испытательного центра посоветовал типа "бери максимум с акселерограммы да и всё". Максимум в районе 0.5g и получается   имеете в виду, что если оборудование расположено выше, то там и ускорение больше будет?
    • serg-nn
      Подскажите новичку что не так в этой программе. Деталь простая, на выходе получается полная ерунда- фасок нет, качество поверхности жуткое, самый малый диаметр вообще накатан. В симуляции , что в станке, что в программе все хорошо. Считаю по формулам- подачи сходятся... УП https://cloud.mail.ru/public/XUNu/xwkFybupZ https://ibb.co/zfZVSsL
    • Борман
      Вот вам 0,4 Надо задавать с графика выше в этом посте. Но это ускорение на поверхности земли. Надо его превратить в расчетное ускорение.
×
×
  • Создать...