Все ответы об инженерном анализе

Перед началом работы настоятельно рекомендуем ознакомиться с правилами форума.

Вывод результатов расчета FLUENT

Glazkov
Аватар пользователя Glazkov

Добрый день, друзья!

Потихонечку осваиваю флюент, двумерная задача о раскручивании ветряка Савониуса под действием набегающего потока с использованием динамических сеток и 6DOF решателя. Столкнулся с проблемой выводов результатов расчета в виде зависимостей. Например, хотелось бы получить графически зависимость угловой скорости от физического времени. Иными словами, нужно получить текстовый файл, в котором будет указано значение угловой скорости в каждый момент времени с шагом, например, 0,1 сек. Или важно еще получить зависимость коэффициента момента (Сm) относительно углового положения ветряка (например,при повороте ветроколеса на каждые 3 градуса фиксировать значение к-та крутящего момента). И такого рода зависимости.

Мои консультанты с кафедры, к сожалению, не смогли ответить на данный вопрос. Предположили, что в UDF-ку нужно внести команды для фиксации углового положения ветряка и как-то связать их с записью в журнал.

Поэтому, прошу помощи у вас, дорогие профессионалы! Подскажите пожалуйста, в какую сторону копать или ткните носом в хелп, где это сказано. Заранее премного благодарен!

 

dvolkind
Аватар пользователя dvolkind

Здравствуйте!

Скиньте UDF, я вам добавлю вывод в файл. Через GUI нельзя вроде, хотя я мог отстать от последних версий. Поэтому послезавтра ещё гляну на работе.

Glazkov
Аватар пользователя Glazkov

Файл UDF

dvolkind
Аватар пользователя dvolkind
#include "udf.h"   DEFINE_SDOF_PROPERTIES(vetryak, prop, dt, time, dtime) {     real theta[ND_ND];     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");       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); }   Как-то так. Компилить не пробовал, так что пишите, если будут косяки.
Glazkov
Аватар пользователя Glazkov

Добрый день. Спасибо за ответ!

Вопрос такой - обязательно ли компилить? Я попробовал интерпретировать и получил ошибку " 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); ". Получается, что интерпретатор не понимает этой команды?

Заочно прошу меня извинить за потенциально глупые вопросы - учусь еще.

Glazkov
Аватар пользователя Glazkov

поправлюсь, спотыкается на "fp = fopen("out.txt", "a");"

dvolkind
Аватар пользователя dvolkind

А в чем проблема скомпилировать? И что он пишет, когда "спотыкается"?

Glazkov
Аватар пользователя Glazkov

Скомпилировал успешно, расчет пошел. Вопрос по этому фрагменту 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" ?

dvolkind
Аватар пользователя dvolkind

файл должен быть в рабочей директории, т.к. путь не прописан.

Glazkov
Аватар пользователя Glazkov

Я поспешил с сообщением о успешной компиляции. Выдает такое сообщение (прикреплю скрин с блокнота). В оригинале во флюенте часть текста закорючками. Тут на форуме прочитал, почему такое может быть. Переустанновил MS Studio 2012 х64, проблема осталась.

dvolkind
Аватар пользователя dvolkind

Виноват, с массивом тупанул. Вариант ниже у меня нормально компилируется.

#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);

}

Добавить комментарий

Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Приложить файл

Максимальный размер файла: 999 МБ.
Допустимые типы файлов: txt doc docx xls xlsx pdf rar zip 7zip tar.