Уважаемые профессионалы. Подскажите пожалуйста новичку в UDF, как правильно прописать зависимость давления (pressure-inlet) от времени. Начальное давление должно быть не менее 80 атм, что бы не было обратного течения, т.к эти же 80 атм. заданы на выходе. На входе должно быть 80 + (46*time). И того за 5 секунд будет 230атм+80 начальные = 310 атм. на входе.
Данный макрос компилируется без проблем. Программа начинает считать и на 3 шаге (Time Step Size 0.05) расчет останавливается с ошибкой. Правильно ли написан макрос?
Обязательно ли задавать давление в паскалях в коде макросов, если в units во вкладке General я переключил на атм. ? Спасибо.
#include "udf.h"
DEFINE_PROFILE(press_smh, thread, position)
{
face_t f;
real pres_outlet = 80;
real t = CURRENT_TIME;
begin_f_loop(f, thread)
{
F_PROFILE(f, thread, position) = pres_outlet + (46*t);
}
end_f_loop(f, thread);
}
Здравствуйте.
Макрос написан правильно, но лучше в качестве третьего аргумента писать не position, a i или var, так как он задает индекс (целое число), которое определяет переменную, используемую решателем. C position, тоже будет работать, но так просто меньше путаницы.
Давление нужно задавать в паскалях, так в документации сказано «UDFs use and return values specified in SI units».
Что Fluent пишет в консоли при возникновении ошибки?
Большое спасибо за подтверждение правильности написания макроса. С ошибкой разобрался. Причина была в не правильной инициализации решения и не правильно настроенной модели турбулентности.
Как закрыть тему если вопрос решен?
темы сами блокируются через какое-то время
Добавить комментарий