Доброго времени суток, уважаемые форумчане!
Провожу расчеты с помощью Ansys fluent. Столкнулась со следущей проблемой: необходимо расчитать движение дыма в атмосфере. Для этого нужно учесть температурный градиент в атмосфере. Т.е. к примеру, на высоте от 0 до 100м температура воздуха равна 26С, от 100 до 200м 25С, от 200 до 300 24С итд
Не могли бы вы, пожалуйста, подсказать, как задать такой начальный градиент? Через udf? Если чрз него, то какой код писать? (Умею только задавать udf для профиля скорости). Или есть другие способы, типа выбирать участки на геометрии и задавать соответствующую температуру? (Как, например, задают области для различных фаз в многофазных моделях)?
Буду очень благодарна за ответ и любую помощь, так как поиски по форумам и manual особо толку не дали, а задачу надо срочно решить.
Спасибо за внимание, заранее благодарю!
Здравствуйте! Если зависимость можно аппроксимировать алгебраической формулой, то задавайте через Custom Field Function в зависимости от высоты. Если нет - то пилите UDF. По идее это делается через DEFINE_INIT, но можно и через ON_DEMAND. Первый вариант на пару строчек короче, т.к. автоматом передаётся указатель на домен. В хелпе есть примеры применения обоих макросов.
Да, есть формула с зависимостью от высоты, буду пробовать Custom Field Function.
Огромное спасибо за ответ!
Получилось сделать градиент температуры, но теперь возникает следующая проблема:
# Divergence detected in AMG solver: species-4 -> Increasing relaxation sweeps!
reversed flow in 26 faces on pressure-outlet 7.
Divergence detected in AMG solver: species-4
Divergence detected in AMG solver: temperature
Divergence detected in AMG solver: species-4
Divergence detected in AMG solver: temperature
Divergence detected in AMG solver: species-4
Divergence detected in AMG solver: temperature
Divergence detected in AMG solver: species-4
Divergence detected in AMG solver: temperature
Error at host: floating point exception
# You may try the enhanced divergence recovery with (rpsetvar 'amg/protective-enhanced? #t)
temperature limited to 1.000000e+00 in 24515 cells on zone 3 in domain 1
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: floating point exception
Error Object: #f
В чем именно может быть ошибка? Расчитываю движение концентрации, выходящей из трубы, под действием поперечного ветра. Эта же задача получалась и нормально решалась до добавления градиента температуры. На других форумах прочитала, что дело может быть в under-relaxation factors, пыталась их уменьшить, но все равно не помогло. Почему градиент действует таким образом? Даже не знаю уже, что и делать. Помогите, пожалуйста.
Скиньте модель, постараюсь посмотреть. Птичку по хвостику не определишь.
Добавить комментарий