Используем Multiphase Eulerian модель. Состоит простая задача в том, чтобы при определенных условиях в ячейках удалять одну из фаз и замещать ее другой в пропорции 50\50.
Упрощенно UDF фаил у меня выглядит вот так
DEFINE_ADJUST(name2, domain)
{
#if !RP_HOST
Thread **pt;
Thread *thread;mp_thread_loop_c(thread, domain, pt)
{
cell_t cell;
pt=THREAD_SUB_THREADS(thread);begin_c_loop_int(cell, thread)
{
if(C_VOF(cell, pt[0])>0)
{
C_VOF(cell, pt[0])=0;
C_VOF(cell, pt[1]) = 0.5;
C_VOF(cell, pt[2]) = 0.5;
}
}
end_c_loop_int(cell, thread)
}
#endif
}
Сыпется он с этим UDF На первой же итерации. Если же убарть if(C_VOF(cell, pt[0])>0) и C_VOF(cell, pt[0])=0;, то во всех ячейках он спококйно все заполняет 1 и 2 фазой. Вот и вопрос в чем же проблема с проверкой условия есть ли 1 фаза и занулить ее.
Здравствуйте, задача ещё актуальна? Можете более подробно описать условия задачи и геометрию расчётной области? Какой физический процесс пытаетесь смоделировать?
Добавить комментарий