Добрый день, друзья!
Потихонечку осваиваю флюент, двумерная задача о раскручивании ветряка Савониуса под действием набегающего потока с использованием динамических сеток и 6DOF решателя. Столкнулся с проблемой выводов результатов расчета в виде зависимостей. Например, хотелось бы получить графически зависимость угловой скорости от физического времени. Иными словами, нужно получить текстовый файл, в котором будет указано значение угловой скорости в каждый момент времени с шагом, например, 0,1 сек. Или важно еще получить зависимость коэффициента момента (Сm) относительно углового положения ветряка (например,при повороте ветроколеса на каждые 3 градуса фиксировать значение к-та крутящего момента). И такого рода зависимости.
Мои консультанты с кафедры, к сожалению, не смогли ответить на данный вопрос. Предположили, что в UDF-ку нужно внести команды для фиксации углового положения ветряка и как-то связать их с записью в журнал.
Поэтому, прошу помощи у вас, дорогие профессионалы! Подскажите пожалуйста, в какую сторону копать или ткните носом в хелп, где это сказано. Заранее премного благодарен!
Здравствуйте!
Скиньте UDF, я вам добавлю вывод в файл. Через GUI нельзя вроде, хотя я мог отстать от последних версий. Поэтому послезавтра ещё гляну на работе.
Файл UDF
Добрый день. Спасибо за ответ!
Вопрос такой - обязательно ли компилить? Я попробовал интерпретировать и получил ошибку " line 41: structure reference not implemented".
Где-то в хелпе мне попалась следующая информация "If you are interpreting, keep in mind that not everything that is supported for compiled UDF's is supported for interpreted UDF's. This is true both for the UDF interface and the C language. If you are doing something pretty involved and it fails inexplicably, try compiling to see if that makes a difference. ".
Получается, что не все, что компилится, можно интерпретировать. Здесь он спотыкается на " theta = DT_THETA(dt); ". Получается, что интерпретатор не понимает этой команды?
Заочно прошу меня извинить за потенциально глупые вопросы - учусь еще.
поправлюсь, спотыкается на "fp = fopen("out.txt", "a");"
А в чем проблема скомпилировать? И что он пишет, когда "спотыкается"?
Скомпилировал успешно, расчет пошел. Вопрос по этому фрагменту UDF: " theta = DT_THETA(dt);
fp = fopen("out.txt", "a");
fprintf(fp, "%.4f %.4f %.4f %.4f\n", time, theta[0], theta[1], theta[2]);
fclose(fp); "
Если я правильно понимаю, то он должен открыть заведомо созданный файл out.txt и начать скидывать в него значения. Верно? Где расположить этот файл? Или его нужно привязывать во вкладке "Results" -> "Plots" -> "File" ?
файл должен быть в рабочей директории, т.к. путь не прописан.
Я поспешил с сообщением о успешной компиляции. Выдает такое сообщение (прикреплю скрин с блокнота). В оригинале во флюенте часть текста закорючками. Тут на форуме прочитал, почему такое может быть. Переустанновил MS Studio 2012 х64, проблема осталась.
Виноват, с массивом тупанул. Вариант ниже у меня нормально компилируется.
#include "udf.h"
DEFINE_SDOF_PROPERTIES(vetryak, prop, dt, time, dtime)
{
FILE *fp;
prop[SDOF_MASS] = 1;
prop[SDOF_IXX] = 0.00000997;
prop[SDOF_IYY] = 0.00000107;
prop[SDOF_IZZ] = 0.01;
prop[SDOF_ZERO_TRANS_X] = TRUE;
prop[SDOF_ZERO_TRANS_Y] = TRUE;
prop[SDOF_ZERO_TRANS_Z] = TRUE;
prop[SDOF_ZERO_ROT_X] = TRUE;
prop[SDOF_ZERO_ROT_Y] = TRUE;
prop[SDOF_ZERO_ROT_Z] = FALSE;
printf ("\nvetryak: updated 6DOF properties");
fp = fopen("out.txt", "a");
fprintf(fp, "%.4f %.4f %.4f %.4f\n", time, DT_THETA(dt)[0], DT_THETA(dt)[1], DT_THETA(dt)[2]);
fclose(fp);
}
Добавить комментарий