Все ответы об инженерном анализе

Применение динамических в ANSYS Fluent

Аватар пользователя Kirill Pestov

В рамках вебинара будут рассмотрены следующие вопросы: введение в методологию динамических сеток, типы движения границ или сеточных зон, методы динамических сеток, использование решателя с шестью степенями свободы (6DOF solver), дополнительные опции.

Комментарии

Аватар пользователя Gregory

На моменте 51:39 используется файл "****.prof" можно ли узнать какие команды можно туда писать, список или какой-нибудь туториал по профилям этим, не совсем понятно как создавать такой код.

Аватар пользователя Kirill Pestov

Здравствуйте!

Можете в данном разделе документации почитать: Fluent > User Guide > 6.Cell Zone and Boundary Conditions > 6.6. Profiles

Аватар пользователя Alex_kade

Добрый день!

Попробовал сделать  простейший 2d поршень в цилиндре в виде прямоугольника с движущейся нижней стенкой  botton layering ,  согласно UDF файла Все работает отлично.

А вот с так называемым top layering возникает проблема.

Добавил в Dynamic Mesh Zones, как было показано в вебинаре,  еще стенки/зоны:

  • одну зону-внутреннюю-interior surface body. Обозначил ее, как Rigit Body, и задал такой же закон движения, что и у  нижней стенки botton (через тот же UDF файл)
  • вторую стенку-top. Обозначил ее, как Stacionary.

Файл UDF оставил неизменным (как и был для botton layering)- он для прошлой задачи работал.

И получил следующую проблему после команды Preview:

Сетка начала двигаться вверх, как и должно быть. Самая верхняя строчка ячеек (возле верхней стенки) начала сжиматься, как и должно быть. Но почему то не «схлопнулась» в ничто, чтобы в дальнейшем начать сжимать следующую строку ячеек. А продолжала сжиматься до тех пор, пока не слилась с верхней стенкой поршня.

После чего вылетела такая ошибка: Update Dynamic Mesh failed. Negative cell volume detected.

В чем может быть причина этой ошибки и как ее исправить?

Аватар пользователя Kirill Pestov

Проблема в том, что вы для внутренней зоны задали значение высоты ячейки сетки, а это делать не нужно, так как Fluent надо указывать значение высоты ячейки только для границ, на которых непосредственно происходит перестроение сетки. Оставьте значения по нулям и все будет OK!

Аватар пользователя Alex_kade

Спасибо! Все получилось. Сейчас пробую более сложнуюю геометрию поршня и метод remesing. Выбираю Local cell и region face. Под этот метод перестроил прямоугольную сетку на треугольную. Доходит до 73 временного шага и выдает ошибку- отрицательный объем ячеек. В чем может быть причина?

Аватар пользователя Kirill Pestov

Здравствуйте.

Надо модель посмотреть.

Аватар пользователя Alex_kade

Добрый день!

Можно посмотреть по ссылке

https://cloud.mail.ru/public/qxXW/yrZTSHWNy

Там cas и UDF файлы.

Аватар пользователя Kirill Pestov

Вы забыли задать деформацию левой (left_bottom) и правой границы (right_bottom). Сетка у вас перестраивается, а боковые границы стоят на месте - отсюда и возникает конфликт. В отличие от метода layering, в котором достаточно указать движение одной границы и деформация боковых границ будет происходить автоматически, то в методе remeshing такой вариант не прокатит. Т.е. ему нужно явно указать какие из границ будут деформироваться и в какой плоскости. 

P.S. Уменьшите значение временного шага до 1e-05 и size remeshing interval до 2. 

Аватар пользователя Alex_kade

Сделал, как Вы написали. Но начиная с 31 шага- начинает считать очень медленно, а на 33 шаге практически совсем остановился.  И начинает писать предупреждение:

Warning: minimum orthogonnal quality less then 0.05. Что здесь можно исправить?

 

Аватар пользователя Kirill Pestov

Всегда когда у вас возникают такие проблемы, то сперва надо попробовать поварьировать глобальные параметры метода remeshing (minimum length scale, maximum length scale). В качестве начального приближения обычно рекомендуется использовать значения Minimum length scale = 0.4*минимальный размер ячейки, который указан в окне Mesh Scale Info, Maximum length scale = 1.4*максимальный размер ячейки. Если проблема осталась, то увеличивайте частоту перестроения сетки. Далее можно попробовать уменьшить размер временного шага. Если после этого все равно продолжают появляться негативные ячейки или качество ортогональности становится меньше 0.05, то стоит подключить деформацию сетки.  

Настройки модели можете посмотреть по ссылке:

https://drive.google.com/open?id=0BxL0SxP-AcLpNkkzU3BYc1ZpbEU

 

Аватар пользователя Alex_kade

А чем открыть файл настроек? Пишет, что поврежден.

Аватар пользователя Kirill Pestov

Через консоль file/read-settings

Аватар пользователя Alex_kade

Вы имеете в виду во Fluent? У меня предлагает после file/read 4 варианта: mesh, case, data и case$data.

setting там нет.

Аватар пользователя Kirill Pestov

В консоли Fluent пишите file/read-settings

Аватар пользователя Alex_kade

Добрый день!

Разобрался))) Спасибо.

Вы писали, что Если после этого все равно продолжают появляться негативные ячейки или качество ортогональности становится меньше 0.05, то стоит подключить деформацию сетки.  Как ее можно подключить, если такое будет происходить? Через основные настройки smoothing/spring, а затем в Dynamic mesh zone и на типе RigidBody поставить галку Deform Adjacent Boundary Layer? 

И можно ли сразу ее подключать совместно с варьированием глобальных параметров метода remeshing ? Или лучше все таки сначала поварьировать эти параметры?

Аватар пользователя Kirill Pestov

Опция Deform Adjacent Boundary Layer with Zone подключается, когда у вас в задаче имеется призматический слой. Подробнее можете почитать в документации 10.6.2.1.5. Boundary Layer Smoothing Method. 

Можете сразу подключать smoothing совместно с методом remeshing. Все зависит от задачи и ваших вычислительных ресурсов. Если ресурсов достаточно, то можно смело пользоваться методом remeshing. Если же ресурсов недостаточно, то подключайте дополнительно метод smoothing, так как в данном случае можно избежать слишком частого обновления (перестроения) сетки и тем самым сэкономить время. Вообще, если деформация незначительная то обычно применяют метод smoothing. Если объект перемешается на большое расстояние (движение поршня), то придется подключать метод remeshing, чтобы обеспечить приемлемое качество сетки и избежать появления вырожденных элементов. 

Аватар пользователя Alex_kade

Добрый день! Решил немного изменить геометрию. На верхней стенке по центру добавил входное отверстие с заданными параметрами (pressure intlet).  Почему то сразу динамическая сетка  перестала работать. С 1-го шага пишет про негативные ячейки. С чем это может быть связано? И как это исправить?

Аватар пользователя Kirill Pestov

Здравствуйте! Надо проект посмотреть. 

Аватар пользователя Alex_kade

С сеткой разобрался. По крайней мере в режиме preview проходит полностью. Теперь другая проблема: как только запускаю расчет, то расчет "разваливается" практически сразу. Может быть из-за добавленного отверстия вверху? Или неверно введенных параметров по нему? Первоначально была идея "вручную" закрывать его переодически и без новой инициализации продолжать расчет. Посмотрите, пож-та, проект по ссылке https://cloud.mail.ru/public/9TgC/GAftK4T75

Там cas и udf файлы.

Аватар пользователя Kirill Pestov

А вас не смущает сообщение "Warning: Incorrect Specific Heat value"? Вы забыли задать количество степеней свободы в панели Create/Edit Materials при указании kinetic-theory для Сp.

Аватар пользователя Alex_kade

Благодарю! Я, честно говоря, не знал этого. Сейчас установил степень свободы 2 и расчет пошел. А какую степень свободы лучше устанавливать для двумерной задачи? Каким правилом руководствоваться? 

Аватар пользователя Alex_kade

В итоге расчет все равно развалился на временном шаге 812 (из 5000). Подскажите, с чем связано?

Пишет следующее:

Flow time = 0.004060014616698027s, time step = 812

4188 more time steps

 

Updating solution at time level N... done.

 

Updating mesh at time level N... done.

iter continuity x-velocity y-velocity energy time/iter

15568 1.5228e-03 1.4608e-05 3.2494e-05 2.8620e-06 0:00:03 20

 

reversed flow in 4 faces on pressure-inlet 13.

 

Divergence detected in AMG solver: temperature

Divergence detected in AMG solver: temperature

Divergence detected in AMG solver: temperature

Divergence detected in AMG solver: temperature

Divergence detected in AMG solver: temperature

Divergence detected in AMG solver: temperature

Error at host: floating point exception

# Divergence detected in AMG solver: temperature -> Increasing relaxation sweeps!

# You may try the enhanced divergence recovery with (rpsetvar 'amg/protective-enhanced? #t)

 

Error at Node 0: floating point exception

 

Error at Node 1: floating point exception

 

Error at Node 2: floating point exception

 

Error at Node 3: floating point exception

 

Error at Node 4: floating point exception

 

Error at Node 5: floating point exception

 

Error: floating point exception

Error Object: #f

 

Аватар пользователя Kirill Pestov

А какую степень свободы лучше устанавливать для двумерной задачи? Каким правилом руководствоваться?

Все зависит от того, какой у вас газ (одноатомный или двухатомный). Если одноатомный, то число степеней свободы = 3 (три поступательные), если двухатомный газ, то число стпепеней свободы = 5 (три поступаьельные + две вращательные). 

В итоге расчет все равно развалился на временном шаге 812 (из 5000). Подскажите, с чем связано?

 Во-первых, у вас образуется возвратное течение (reversed flow in 4 faces on pressure-inlet 13). Поэтому, предлагаю вам вытянуть входную границу. 

Divergence detected in AMG solver: temperature

Вероятнее всего значение URF (коэффициент нижней релаксации) для уравнения по энергии сильно завышено. Уменьшите URF на 10% и запустите расчет заново.  

Еще одна причина это плохое качество сетки. С математической точки зрения из-за сильно искаженных ячеек возникают дополнительные источниковые слагаемые, приводящие к возникновению неустойчивости численных схем. Данная проблема может и не разрешится без перестроения сеточной модели. Минимальное качество ортогональности должно быть на уровне 0.01. Особенно важно избегать сильно искаженных ячеек в близи областей с высокими значениями градиента. Так как величина ошибки в данном случае будет удваиваться.

Также это может быть связано с не правильно заданными ГУ. Если вы уверены в качестве сеточной модели и снизили URF, но все равно решатель останавливается с появлением данной ошибки, то стоит пересмотреть правильность задания ГУ и значений заданных параметров. 

 

Аватар пользователя Роман

Кирилл, здравствуйте! Не могли бы Вы дать посмотреть файл UDF для создания контакта динамической сетки в примере клапана, который приводится в видео. Для изучения и построения динамической модели.

Аватар пользователя aravius

Добрый день! Можно ли сейчас получить доступ к udf-файлу из видео? Лучше на почту .

Заранее благодарен.

Аватар пользователя Dmitriy2604

День добрый! такой вопрос - вот у меня задача смоделировать движение пули в стволе в 3D. пуля двигается просто поступательно с постоянной скоростью. мне нужно задать в cell zones - mesh motion движение с какой-то скоростью, или можно использовать Six-Dof? или обе опции нужно включать ? просто когда выбираешь rigid body, там нужен либо udf, либо профиль, либо эта функция включается через включание six-Dof, и прописания там условия движения пули. 

Добавить комментарий

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