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

Слошинг в CFX


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

@piden @soklakovВ продолжении этого сообщения.

http://cccp3d.ru/topic/98674-взаимодействие-с-водной-средой/?do=findComment&comment=989426

В общем считаю в CFX слошинг для простого двумерного квадрата 256х256 мм, наполовину заполненного водой.

Показать содержимое  

Initial_Volume_Fraction.thumb.PNG.13df6cff00850c7b0f8fc48a5ae28604.PNG

Hide  

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

Показать содержимое  

Load.PNG.4b07ec7ebd9eb347746fda2d1038bad2.PNG

Hide  

Рабочие тела - воздух и вода, оба несжимаемые. Модель турбулентности - SST. Использовал гомогенную (Homogeneous multiphase model) с опцией Free surface model  - Standard. Поверхностным натяжением пренебрегаю. Также включил плавучесть. До этого выполнил туториал Flow around bump, откуда и почерпнул основные настройки и выражения.

Расчетный домен замкнутый - четыре стены и две плоскости симметрии, задача плоская.

В настройках анализа задал от 3 до 10 Coeff. Loops., шаг по времени - пока начал с 0.1 мс - пока я в процессе поиска адекватного шага и размера сетки. Также в настройках анализа, на вкладке Advanced я задал Advanced option -> Volume Fraction Coupling -> Coupled. Все расчеты выполняю с двойной точностью.

Теперь - с какими проблемами я столкнулся. При расчете на одном ядре все в порядке но при расчете на нескольких ядрах решение сразу разваливается с ошибкой Fatal overflow in linear solver.

Сейчас пересчитал на другой машине - все работает. Странно.

В любом случае у меня есть еще несколько вопросов которые я буду постепенно проверять на своей модели но если кто-то можем что-то полезное посоветовать то будет неплохо.

1) Можно ли обойтись без турбулентности.

2) Как можно сравнивать разные расчеты (с разными сетками, шагами по времени), что можно принять за параметры сходимости. Я пока смотрю на результирующую силу на стенках, точнее на ее график.

3) Имеет ли смысл сделать вверху небольшую трубочку и установить на торце Opening или это нормально когда домен замкнутый.

4) Можно ли доверять статистике по дисбалансам. Меня мучают мысли что после всех этих бултыханий численные ошибки съедают или точнее быть - выпивают часть моей воды и в конце расчета ее меньше/больше чем в начале.

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

Вроде пока все. Любые замечания приветствуются.

Прикладываю в архиве два файла с флюентовскими сетками, ccl файл с настройками проекта, и два out файла - для одно и многоядерного расчета. Све создано в ансисе версии 2019R3.

Заранее благодарю за участие всех кто откликнется.

И надеюсь что тема не скатится в срач вокруг устойчивости балок, линеек или пружин)

Animation.gif.1fc20b323fe32527db909337a7c4e587.gif

2D Sloshing.zip

Темп продублирована на cfd-online. Так что если тамошние старожилы дадут полезные советы, то я об этом сообщу.

https://www.cfd-online.com/Forums/cfx/224753-fatal-overflow-linear-solver-occur-when-execute-solution-parallel.html

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


26 минут назад, karachun сказал:

Модель турбулентности - SST.

я у Волкова с Емельяновым читал, что URANS теоретического обоснования не имеют. интригующая спорная фраза.

28 минут назад, karachun сказал:

я в процессе поиска адекватного шага и размера сетки.

и вот чего у URANS нет, так это сеточной сходимости. мне нравится les, но, говорят, сейчас модно sbes. Хотя в такой задаче гибрид ни к чему вроде, но это должно быть быстрее, проще и настраивать ничего не надо. Да вообще laminar попробовать стоит)

32 минуты назад, karachun сказал:

что можно принять за параметры сходимости.

может все-таки эксперимент подобрать? на эксперимент даже urans скалибровать можно будет. только размер сетки будет калибровочным параметром.

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

Ламинарное течение выгладит более привлекательным. По идее суть процесса в перемещении больших масс жидкости под действием сил инерции и здесь пристеночные эффекты слабо влияют на результат.

21 минуту назад, soklakov сказал:

может все-таки эксперимент подобрать?

Ищу но пока нашел только документ NASA, но там тонкие материи, наподобие определения демпфирования жидкости и считалось это все на суперкомпьютере. Скорее всего должно что-то быть по задачам типа "разрушение дамбы".

Вообще это все делается для того чтобы потом извлечь давления и приложить их в трансиенте к МКЭ сетке бака и потрясти его.

А что касается вылета при запуске на нескольких ядрах - завтра поставлю 2020R1, может в нем такой ошибки не будет.

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

Вообще это все делается для того чтобы потом извлечь давления и приложить их в трансиенте к МКЭ сетке бака и потрясти его.

звучит пугающе)

не верится, что оно того стоит.

будет интересно увидеть сравнение со статическим решением.

Ссылка на сообщение
Поделиться на других сайтах
22 minutes ago, karachun said:

1) Можно ли обойтись без турбулентности.

2) Как можно сравнивать разные расчеты (с разными сетками, шагами по времени), что можно принять за параметры сходимости. Я пока смотрю на результирующую силу на стенках, точнее на ее график.

3) Имеет ли смысл сделать вверху небольшую трубочку и установить на торце Opening или это нормально когда домен замкнутый.

4) Можно ли доверять статистике по дисбалансам. Меня мучают мысли что после всех этих бултыханий численные ошибки съедают или точнее быть - выпивают часть моей воды и в конце расчета ее меньше/больше чем в начале.

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

1. Как уже говорилось - вполне себе да.

2. Если в конечном итоге интересует давление жидкости на стенки - то конечно. Плюс дисбалансы, о которых ниже)

3. Если сосуд не сообщается с атмосферой - то лучше и делать замкнутый, информация о давлении берется из инициализации.

4. Have a look) Сейчас во флуенте учитываю коэф. поверхностного натяжения (0.072 N). И, как ты поймешь из прочитанного, настройки из туториала - довольно странные.

5. Если в п.2 интересуют силы, то вряд-ли учет сжимаемости окажет сколь-нибудь заметное влияние. Если же размер пузырьков смотреть, то наверно)

 

Попробовал сетку 4mm - да, вылетает с дефолтными настройками при многоядерности.

Запустил с IBM MPI Local Parallel на 4 core - пошло. На 10 core - вылетело после 60 итерации.

Посчитал 500 на single и перешел на 4 core с Intel MPI Local Parallel - тоже полет нормальный.

 

Учитывай, что грубая сетка сглаживает колебания, добавляет свою "численную вязкость".

Во флуенте сейчас считаю с адаптивным шагом, с заданным CFL - так выходит быстрее, чем с постоянным. Но размерность растет пропорционально кубу уменьшения размера элемента + зависимость CFL от размера = пропорциональность 4 порядку. Из-за этого при равномерном уменьшении размера элемента в домене задача из "считается за час" очень быстро превращается в "где-то за месяц".

Так что сейчас разбираюсь с динамической адаптацией во флуенте) В cfx динамической, увы, нет.

34 minutes ago, karachun said:

А что касается вылета при запуске на нескольких ядрах - завтра поставлю 2020R1

Я считал на 2019r2, если что. Еще не попробовал, но есть ощущение, что если вытянуть домен в глубину ячейки на три, то проблем с партишинингом и многоядерностью не будет.

Ссылка на сообщение
Поделиться на других сайтах
48 минут назад, soklakov сказал:

звучит пугающе)

Конечно можно было бы кинуть всю массу на одну стенку и посчитать консервативный вариант. Или поискать упрощенные методики. Но клиент хочет именно слошинг.

@piden По пункту 4. Вроде Негомогенная модель для всяких капель, частиц и прочей чепухи, которая мне не нужна. А вот решение по контролю за массовой долей воды в домене очень элегантное. Я хотел находить содержание в каждой ячейке потом брать среднее арифметическое и это работало только для простейшей регулярной сетки. А все оказалось просто - Volume Fraction по всему объему. У меня на слишком больших шагах в конце расчета небаланс по массе доходил до 17%, но с уменьшением шага все приходит в норму. Завтра проверю результаты через выражение. Также надо будет почитать гайды по течениям со свободной поверхностью из хелпа ансиса.

п. 5 Нужны только силы.

46 минут назад, piden сказал:

Во флуенте сейчас считаю с адаптивным шагом, с заданным CFL - так выходит быстрее, чем с постоянным.

Glenn Horrocks на cfd-online советовал вообще не смотреть на куранта для несжимаемых течений, мол CFD и Fluent используют разные алгоритмы в нестационаре (если не ошибаюсь, то CFX неявный а Fluent - явный) и Куранты нужны только для сжимаемых нестационарнарных задач. Он рекомендует задавать 3-5 или 3-10 Coeff Loops и играть шагом по времени чтобы решатель успел сойтись за эти внутренние итерации до приемлемых невязок, обычно 1Е-4. В моей задаче по большей части так и получается, все сходится менее чем за 10 Loops.

 

46 минут назад, piden сказал:

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

Я завтра тоже попробую, хотя aspect ratio небольшой 1:8 - 1:4.

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

 

46 минут назад, piden сказал:

В cfx динамической, увы, нет.

На переправе коней не меняют, так что "Маємо те, що маємо".

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

@piden Проверил разные варианты.

-) вытягивание сетки не помогло.

-) иногда расчет работает на 2 или 3 ядрах, самая грубая сетка работает на 4.

-) проверил содержание воды по ходу расчета - все в порядке объем воды не убывает.

Вот этот мой комментарий

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

Вроде Негомогенная модель для всяких капель, частиц и прочей чепухи, которая мне не нужна.

на самом деле спорный. Я почитал Best Practice и в нем наоборот рекомендуют гомогенную модель для свободного течения в канале  а негомогенную для слошинга и разбивания волн. Сейчас буду пересчитывать.

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

Graph.PNG

2mm_Pressure.thumb.png.6bf89ee96bc02bd1469540c74b6ba996.png2mm_VolumeFraction.thumb.png.a76c225d7e071b01a295c4701f593025.png

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

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

Отчего ты считаешь, что это неправильный результат?

 

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

 

 

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

@karachun,

еще от этого

LIBRARY: 
  CEL: 
    EXPRESSIONS: 
     
      RampedTime = t/20[ms]*step((20[ms]-t)/1[ms])+step((50[ms]-t)/1[ms])*step((t-20[ms])/1[ms])+(1-(t-50[ms])/20[ms])*step((70[ms]-t)/1[ms])*step((t-50[ms])/1[ms])
    
    END
  END
END

аж больно становится)

 

Попробуй импортируй такой ccl:

LIBRARY:
  CEL:
    EXPRESSIONS:
      RampedTime2 = MyLovelyFunction(t)
    END
    FUNCTION: MyLovelyFunction
      Argument Units = [ms]
      Option = Interpolation
      Result Units = []
      INTERPOLATION DATA:
        Data Pairs = 0,0,20,1,50,1,70,0,100,0
        Extend Max = On
        Extend Min = No
        Option = One Dimensional
      END
    END
  END
END


 

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

@piden Блин, с становиться все сложнее и сложнее. Сейчас есть три совершенно разных результата, при этом давление пока намного больше чем давление насыщенного пара. Если даже предполодить что все сойдется на сетке размером 1 мм то для исследуемой конструкции это выльется в сетку на 50-100 миллионов элементов.

15 часов назад, soklakov сказал:

может все-таки эксперимент подобрать

Нашел во такую статью - по параметрам превосходит мою задачу - аж 30 g но сама геометрия простая. Более того размеры тестового бака имеют тот же порядок что и у моего.

https://pdfs.semanticscholar.org/23c4/34469e479820e214973a905c15d3b1e53db6.pdf?_ga=2.242433482.971727049.1583313574-1741748893.1549961664

16 минут назад, piden сказал:

Отчего ты считаешь, что это неправильный результат?

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

Показать содержимое  

7-Figure14-1.png

6-Figure13-1.png

 

Hide  
8 минут назад, piden сказал:

аж больно становится)

Но ведь работает)

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

Сейчас еще посмотрел видосы про shock induced cavitation..

В общем, с учетом

16 hours ago, karachun said:

и импульсная нагрузка 8 g, направленная вбок

1 hour ago, karachun said:

но потом во время движения обратно во всем домене образуется сильное разрежение и оно тем сильнее чем меньше сетка

кажется, что нужно учитывать сжимаемость жидкости для корректного расчета этого разрежения... И тогда CFL будет определяться не скоростью перемещения свободной поверхности, а скоростью распространения волн..

 

14 hours ago, karachun said:

На переправе коней не меняют

Смотри, а то может и правда легче будет в явном решателе все сделать.. И сразу FSI получишь)

 

 

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

Смотри, а то может и правда легче будет в явном решателе все сделать..

Я тут задумался и пришел к тем же выводам. Во флюенте есть нормальный 2Д режим, который считается быстрее и с автоматическим дроблением сетки я смогу сэкономить кучу расчетного времени - не надо будет мельчить всю сетку.

Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, piden сказал:

sph

Это слишком сложное кунг-фу для меня. Конечно интересно просчитать и с SPH но это не влезет в рамки проекта, возможно потом, для повышения своего уровня развития.

18 минут назад, piden сказал:

cel

А это что такое?

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

Прикольно но пока слишком много разных возможностей. Мне бы CFD довести до ума. Буду иметь в виду.

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

@piden, еще бы хорошо дать возможность жидкости выбежать из банки, если очень захочется.

 

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

UPD. Настроил автоматический шаг по времени и это безобразие с низкими проблемами прекратилось, но это не точно - нужно еще пару сеток просчитать.

Возможно это было вызвано численными ошибками - на некоторых шагах была плохая сходимость и в результате давления получались ниже чем должны были быть. Прямо как с подбрасыванием монетки на линейке в МКЭ: слишком большой шаг+контакт=грубое нарушение закона сохранения энергии.

Расчеты с негомогенной моделью и со сжимаемостью все равно на очереди.

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

@piden @soklakovНа cfd-online Гленн Хоррокс подкинул идею что вылет связан с тем что свободная поверхность попадает на границу партишнов и предложил сделать партишны в виде вертикальных полос. Только вот в моей задаче все так бултыхается что свободная поверхность гуляет по всему домену и придумать форму разбиения партишнов на любой случай жизни будет сложно.

Я пока просчитал несколько вариантов SST vs Laminar. Разницы почти нет так что турбулентность выкидываю.

Теперь на очереди гомогенная vs негомогенная модели многофазности.

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

На cfd-online Гленн Хоррокс подкинул идею что вылет связан с тем что свободная поверхность попадает на границу партишнов и предложил сделать партишны в виде вертикальных полос.

Да, я видел, и попробовал.. Но у меня на 4х ядрах считает.... где-то до 0.264 [sec] :blush:

И я уже считал с негомогенной. Попробую во флуенте сделать.

 

On 3/3/2020 at 8:12 PM, karachun said:

CFХ и Fluent используют разные алгоритмы в нестационаре (если не ошибаюсь, то CFX неявный а Fluent - явный)

Если для свободной поверхности - во флуенте оба есть.

 

На счет разрежения и его действия на бак:

Существует мнение, что человеческое тело (мешок с жидкостью) может переносить очень высокие перегрузки (over 100g), если они очень кратковременны.

Твой пик низкого давления тоже весьма кратковременный - успеет ли он оказать существенное влияние на НДС бака?

 

 

 

 

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

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

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

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

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

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

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

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

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

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

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




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