Всем добрый день, я новичок в программировании UDF, поэтому скорей всего присутствуют нелепые ошибки.
При начале расчета, консоль выдает ошибку:
# Divergence detected in AMG for species-0: protective actions enabled!
# Divergence detected in AMG for species-0, temporarily solve with BCGSTAB!
Error: Divergence detected in AMG solver: species-0
Прошу дать вас совет, как исправить данную ошибку. Заранее спасибо.
Код для edc_scales представлен ниже:
#include <udf.h>
DEFINE_EDC_SCALES(edc_scales, c, t, c1, c2, calc_tau, tau)
{
int d_h = 156;
real ted = MAX(C_D(c, t), 1.0e-03);
real k = C_K(c, t); //kinetic energy
real Nu = C_MU_T(c, t); //viscousity;
real Dis = C_D(c, t); //dissipation
real u_lam = C_LAM_FLAME_SPEED(c, t); //laminar flame speed
real Re_d = 10 * d_h / C_MU_T(c, t);//Re number by hydraulic Diameter
real I = C_U(c, t) * pow(Re_d, -0.125); //turbulence intensity
real Re_t = pow (k, 2) / (Dis * Nu);
real Da_n = pow (Dis / Nu, 0.5) * u_lam * pow (Re_d, 5/8) / d_h;
*c1 = sqrt ((Re_t + 1) * Da_n);
*c2 = 1 / ( sqrt ((Re_t + 1) * Da_n));
if (calc_tau)
*tau = (*c2) * sqrt(C_MU_L(c, t) / (ted * C_R(c, t)));
}
То есть даже первой итерации не происходит? А код вы интерпретируете или компилируете? Надо компилировать. При компиляции ошибок нету?
После всех циферных коэффициентов и отдельностоящих цифр должна быть .0. Типа real Re_d = 10.0 * d_h / C_MU_T(c, t);
Перед слэшами // надо бы пробел. Вообще лучше комментировать /* comment */
real Re_d = 10 * d_h / C_MU_T(c, t);//Re number by hydraulic Diameter
Хотелось бы также получить cas-файл, или хотя бы на словах описание настроек и физики. Хочу попробовать сам
Я интепритирую. Компилировать не пробывал.
Описание задачи прикрепелены в Word файле.
Спасибо за помощь!
Добавить комментарий