Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. Fluent
  3. UDF 想用CDRFG生成LES的入口边界湍流,但是UDF一直编译报错,Profile也只能空间时间二选一,请大佬们指教一下UDF编写

UDF 想用CDRFG生成LES的入口边界湍流,但是UDF一直编译报错,Profile也只能空间时间二选一,请大佬们指教一下UDF编写

已定时 已固定 已锁定 已移动 Fluent
4 帖子 3 发布者 2.8k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • C 离线
    C 离线
    Chase
    写于 最后由 编辑
    #1

    参照论文Consistent inflow turbulence generator for LES evaluation of wind-induced responses for tall buildings,已经得到目标风剖面的入口边界上的坐标(x,y,z)和对应每个时间步的风速。

    1 条回复 最后回复
  • C 离线
    C 离线
    Chase
    写于 最后由 编辑
    #2

    #include "udf.h"
    #include "unsteady.h"
    #include "profile.h"
    #include <stdio.h>
    #include <stdlib.h>

    #define MAX_POINTS 4000
    #define MAX_TIMESTEPS 997
    #define FILENAME "velocity_data.csv"

    typedef struct {
    double x, y, z;
    double u[MAX_TIMESTEPS];
    } PointData;

    void read_data(PointData* points) {
    FILE* file = fopen(FILENAME, "r");
    if (file == NULL) {
    printf("Error: Could not open file.\n");
    exit(1);
    }

    for (int i = 0; i < MAX_POINTS; i++) {
        fscanf(file, "%lf,%lf,%lf", &points[i].x, &points[i].y, &points[i].z);
        for (int j = 0; j < MAX_TIMESTEPS; j++) {
            fscanf(file, ",%lf", &points[i].u[j]);
        }
    }
    
    fclose(file);
    

    }

    DEFINE_PROFILE(unsteady_velocity, thread, position)
    {
    real x[ND_ND];
    real t = CURRENT_TIME;
    int time_step = N_TIME;
    PointData points[MAX_POINTS];
    face_t f;

    read_data(points);
    
    begin_f_loop(f, thread)
    {
        F_CENTROID(x, f, thread);
        for (int i = 0; i < MAX_POINTS; i++) {
            if (x[0] == points[i].x && x[1] == points[i].y && x[2] == points[i].z) {
                F_PROFILE(f, thread, position) = points[i].u[time_step];
                break;
            }
        }
    }
    end_f_loop(f, thread)
    

    }

    1 条回复 最后回复
  • M 离线
    M 离线
    mithraLa
    写于 最后由 编辑
    #3

    你这read data 是干什么的 没找到哪里调用了啊。

    1 条回复 最后回复
  • S 离线
    S 离线
    shwjz
    写于 最后由 编辑
    #4

    你好,我也开始做CDRFG生成LES的入口边界湍流,方便交流一下吗

    交流邮箱z15392569@163.com

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]