Здравствуйте!
Помогите, пожалуйста, разобраться с формированием UDF-файла для трехмерной задачи: имеется формула (во вложении). Необходимо получить профиль распределения скорости Z, по направлению движения Y.
При попытке сделать расчет получаем сообщение "Error: Divergence detected in AMG solver: x-momentum".
Подскажите, пожалуйста, как сиё поправить?
Спасибо!
Здравствуйте!
Может быть, перпендикулярно направлению движения?
В UDF эти строчки сомнительны:
z = x[1];
u = v_mean*(B+1);;
Неустойчивость решения не обязательно связана с вашей UDF. Кстати, в свежих версиях такие выражения можно задвать без UDF.
Предлагаю код для задания параболического профиля скорости при течении потока в трубе вдоль оси Х.
Обратите внимание на строчки
y =x[1];
z =x[2];
Если поменять 1 и 2 местами, то адекватно работать не будет!
Прилагаю файлы с пояснениями и тестированием, а также файл для прямоугольного канала и зависимостью от высоты.
#include "udf.h“
#include "math.h"
DEFINE_PROFILE(inlet_x_velocity, thread, index)
{
real x[ND_ND]; /* this will hold the position vector */
real y;
real z;
real a;
face_t f;
begin_f_loop(f, thread) /*loops over all faces in the thread passed in the DEFINE macro argument*/
{
F_CENTROID(x,f,thread);
y =x[1];
z =x[2];
a = pow((pow(y,2)+pow(z,2)),0.5);
F_PROFILE(f, thread, index) = 2*(1- (a*a/(0.10214*0.10214)));
}
end_f_loop(f, thread)
}
Добавить комментарий