Fluent

871 主题 4.1k 帖子
  • 2 帖子
    61 浏览

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

    }

  • 使用滑移网格fluent报错:Note: zone-surface

    1 帖子
    52 浏览

    1710316733826.jpg

    使用滑移网格fluent报错:Note: zone-surface: cannot create surface from sliding interface zone.

  • CFD结果渲染

    6 帖子
    419 浏览

    x3d
    用这个导出,导入到blender

  • fluent数据处理成二维数组

    3 帖子
    668 浏览

    不知道当时的问题是否解决了,我去年做的一部分工作里面也需要相关的处理。当时采用的Matlab对导出的数据进行处理,不过在数据处理之前需要将 x,y当中一些极小的值变成0,比如10的负十几次方的值,因为这些fluent输出的值可能会对处理产生影响,然后导入程序就可以变成矩阵形式了,程序大概如下。供以后有需要的朋友们参考。

    data1 = xlsread('D:\User.....');

    % 获取X、Y坐标和密度值的向量
    X = data1(:, 1);
    Y = data1(:, 2);
    density = data1(:, 3);

    % 确定X和Y的唯一值,并按升序排列
    unique_x = unique(X);
    unique_y = unique(Y);

    % 创建行列编号映射表
    x_mapping = containers.Map(unique_x, 1:length(unique_x));
    y_mapping = containers.Map(unique_y, 1:length(unique_y));

    % 初始化矩阵
    num_rows = length(unique_y);
    num_cols = length(unique_x);
    densityMatrix1 = zeros(num_rows, num_cols);

    % 将密度值填充到矩阵中
    for i = 1:length(X)
    row = y_mapping(Y(i));
    col = x_mapping(X(i));
    densityMatrix1(row, col) = density(i);
    end

  • FLUENT UDF计算多孔介质对颗粒的选择性过滤

    1 帖子
    31 浏览

    a80fed28-45ef-4507-a08d-13abf19c7ccc-image.png 这个udf具体该怎么编写和使用?

  • 4 帖子
    333 浏览

    loop的是面网格上的所有网格。你的需求应该能实现,最简单的办法是,每个面网格中心去读一遍文档,把散点距离自己最近的那个点的速度赋给所在网格。但是会有其他问题,散点疏密是不是和面网格疏密比较匹配,也许一个面网格配多个散点或者反之。

  • 1 帖子
    117 浏览

    想设置一个壁面接触角随时间增加减小,用公式描述
    QMF9EZM9NI7B{$AS17ASF{M.jpg
    但是模拟过程中不到0.01s就已经完全铺开了
    8d0dfcc4-1ada-4bec-8a31-d4000f59d818-0~FKZ}KBX0WEF3X7@2%@NTD.png
    接触角为定值的时候没有问题,请问接触角随时间增加减小的设置哪里出了问题,该如何设置

  • Fluent大涡模拟计算充分发展的槽道湍流?

    1 帖子
    111 浏览

    用Fluent大涡模拟计算充分发展的槽道湍流,流向和展向为周期性边界条件,上下为壁面,如何设置流体进出口呢?看了之前的一些帖子,需要进口设定一定压力梯度吗?如何定义压力梯度啊

  • 有关泡沫金属与石蜡传热传质问题

    1 帖子
    74 浏览

    我模拟的是一个矩形泡沫铜浸润石蜡的传热传质过程,现在模型验证一直没弄好。首先是编写了一个简单的UDF,采用热平衡模型,导入fluent后提醒我定义比热的那一块有错误,求各位前辈帮我看一下;其次,我添加了Boussinesq项后,优化了一点点液相云图中熔融线一直平行的问题,但是与论文中的还是有差距,且我的熔融线上下厚度保持一致(实际上应该下面厚很多),UDF中还需要添加什么项来解决这个问题呢?以下三张图分别是我的UDF、我跑出来的液相云图以及论文的液相云图,求各位帮我解惑,不甚感激。2.png 3.pn替代文字g 4.png

  • 1 帖子
    210 浏览

    我想建立一个水槽,水流从水槽一边冲过去,然后又从另一边冲过来,两边的入口和出口边界要随时间变化,有没有大神指导一下,怎么实现?谢谢!

  • LES的网格解析尺度和捕捉到的湍流能量

    2 帖子
    157 浏览

    请参考无痛苦ns方程笔记的这一节:R、sigma、prime2Mean、以及雷诺应力相关量

  • 2 帖子
    305 浏览

    不清楚商软那面怎么回事,本身我也没太关注这个,我查了一下,OpenFOAM本身这面的streamline看起来是你说的patiline:

    This function object generates streamline data by sampling a set of user-specified fields along a particle track, transported by a user-specified velocity field.

    后处理软件paraview的streamline是如何定义的还没找到。

  • 2 帖子
    396 浏览

    关闭超线程,选择msmpi并行方式,计算速度明显改善。但感觉还有很大的提升空间,目前先这样将就着用了

  • 1 帖子
    139 浏览

    我模拟的对象是反应堆内的稳态流动传热,由于堆芯内组件数量庞大,精细建模复杂,因此采用多孔介质模型对堆芯区域进行简化。

    为了验证这种等效的合理性和误差,我先对单个组件栅元进行多孔介质简化,并将多孔介质模拟结果与未简化的模型结果对比验证多孔介质模型的合理性。

    单个组件栅元的截面图如下:
    图片1.png

    其二维轴对称模型如下图:
    f510f5de-0d5e-4389-b577-ad2d3defe29c-image.png

    模拟结果
    (1)未采用多孔介质模型
    我用了二维轴对称模型来模拟,设置固体流体内热源,入口质量流量和出口压力边界条件,流体和固体分别加载体积热源P1和P2(W/m3),流体和固体的导热系数均为常数,得到的稳态温度场和压损分布如下:
    bca065f1-7cc4-4385-8113-d7e0acd6d23e-image.png
    流体出口温度700℃,固体由于带内热源温度高于流体,固体最高温度为799℃,固体平均温度为756℃,组件压损为2400Pa

    (2)采用多孔介质模型模拟
    由于固体带内热源,流固存在较大温差,采用非热平衡模型
    根据栅元几何结构指定:孔隙率γ=0.1 ,界面换热系数hfs=5000W/M2K(与未采用多孔介质模型算得的换热系数一致),界面面积密度Afs=6.71m-1

    通过流速-压力实验关系确定粘性损失项系数和惯性损失项系数,只考虑x方向的流动损失,y方向系数放大100倍

    别给多孔介质流体和多孔介质固体设置了内热源,分别为P1×孔隙率和P2×(1-孔隙率),初始化后检查内热源加载总量无误;流体固体的热导率输入值和上个模型一致

    得到的模拟结果:
    af1efa10-a95f-4e49-a69c-63b4b4357ca0-image.png
    采用多孔介质非热平衡模型模拟得到的流体温度是正确的,压损也是正确的,但固体温度分布明显不对,固体域温度热点仅为725℃,平均温度为711℃,均远小于实际模型算得的固体温度值。

    我自己的猜测:
    多孔介质模型将单组件变为流固均匀介质后,不能模拟固体区域沿导热路径带来的固体温升?刚好我这个栅元模型中固体由于导热产生的温升非常高,如果是这样,说明多孔介质非热平衡模型不适用于我所研究的问题,因为简化后会显著低估固体温度热点。

    请问我的理解是正确的么

  • 有关计算收敛的问题

    2 帖子
    293 浏览

    参数波动跟监测点位置有关,放在分离区跟放在直管中间是不一样的,另外,感觉稳态计算是监测面上的通量吧,通量守恒就可以认为收敛了吧。

  • 瞬态计算DPM模型颗粒喷射初始速度的设置

    3 帖子
    380 浏览

    @黄昏晓为谁破 好的感谢前辈回复

  • fluent里能用dpm和融化凝固模型结合吗?

    1 帖子
    133 浏览

    请问我想使用dpm模型模拟液滴的凝固,应该选什么类型得到颗粒呢?我看几种类型的粒子没有考虑凝固过程,求教!!!

  • 求助:Fluent模拟雾化液滴与气体的物理传质

    6 帖子
    756 浏览

    @benf 不客气不客气,欢迎引用我们组的论文~这个模型有外国组已经验证过了,所以如果你有兴趣编应该可以原样复现

  • 请问FLUENT能不能模拟真空

    8 帖子
    686 浏览

    我觉得应该搞清楚液滴在真空状态下的变化,然后针对性的设置环境条件

  • 2 帖子
    123 浏览

    格式不对噻

  • k-omega 模型的网格无关性验证

    19 帖子
    5k 浏览

    @李东岳 东岳老师,个人原因,麻烦删掉这个帖子。

  • 1 帖子
    164 浏览

    我这边需要仿真一个构件在烘箱中逐渐被加热的过程,结构非常简单,就是一个构件周围用壁面包裹,其截面如下图所示。
    IGBT fixture-温度2.jpg
    四周壁面设定为固定温度358K,初始温度为293K。由于工作中计算资源有限,且目前只需要定性得到构件各部位升温的快慢情况,因此仿真时只打开了能量方程,上图就是仿真至380秒左右时的状态。

    然后在仿真中,初始的时间步长是0.001s,因为太小了导致仿真进度比较慢,而且能量方程的残差一直保持在10e-7级别,我这边通过不断地放大时间步长,至380s时时间步长为0.1s,至400s左右时时间步长改为1s。在这个过程中,我发现每次增大时间步长,监测点的温升曲线斜率都会变小,也就是说温升变慢了,比如下图就是时间步长由0.1s改为1s时,监测点温升情况的变化:
    IGBT fixture-温升.jpg

    在我更改时间步长的过程中,方程的残差均保持在10e-7级别,那么我想知道,温升速率为什么会因为时间步长的增加而变小呢?是不是因为网格不够精细造成的,因为为了快速出结果,网格确实比较粗糙,还是说还有其他可能的因素?谢谢大家了

  • 1 帖子
    129 浏览

    各位大佬,我要使用fluent进行山地管道泄露扩散研究 。现在不知道怎么能将山地地形DEM高程数据,导入到icem中,请教各位有没有走过这个流程的,(在arcGis中应该转化成什么格式)这应该是怎么个搞法。

  • 数值模拟UDF,污染物吸收源项

    2 帖子
    286 浏览

    很久之前写过。具体忘了。但 return 返回的才是source

    ds[eqn]是在定义源的表达式是ax还是ax+b,udf 手册里有对ds[eqn]的详细解释。

    是 return absorption_rate ?我记得之前写的好像是这样的套路:ds[eqn]=0 然后 retrun source

    可以找udf手册对比着写

  • 关于动网格的问题

    1 帖子
    205 浏览

    请问动网格udf中的DEFINE_CG_MOTION如何让刚体绕需要的轴旋转?

  • 3 帖子
    317 浏览

    好的谢谢,我试试看

  • fluent meshing命名问题

    3 帖子
    332 浏览

    @fan820 不太清楚,可能是我把某个插件误删了吧,我现在用r2画网格,用r1进行模拟,r2不能同时开两个窗口

  • fluent监测化学反应的热损失

    1 帖子
    123 浏览

    各位老师好:
    请问如何在fluent中监测化学反应过程(甲烷燃烧)中的热损失或随时间变化的热损失率?
    a48a4b6c-85b3-4cf7-9480-3521960916ab-image.png

  • 6 帖子
    640 浏览

    @Vortex学习 不知道这个程序方便发我一份吗 万分感谢!!!

  • fluent和cfx计算结果不同

    1 帖子
    185 浏览

    各位同仁好,最近在算一个节流装置的阻力系数,标准值是1350,但是fluent不管怎么加密网格改湍流模型,算出来都在1500左右,cfx随便画个网格用sst算出来就是1350,请问有没有人了解这是什么原因?请各位大佬不吝赐教。
    附上几何文件,流体是水,入口流速1.5m/s
    SYS-6.scdoc

  • 1 帖子
    136 浏览

    各位前辈好!最近在关于喷油器动网格问题上陷入了困境,希望能够得到大家的帮助。
    先简单说一下喷油器的工作原理。图一为三维模型的剖面截图。
    5eff8661692327fa42f84dfe24b6f95.png
    5deae10e01c9e42e75ad3500a12d353.png
    cd0e8a4b2e3be20ae6dee2b9c90b6dc.png
    上面那个是球阀,下面那个是针阀,球阀、针阀最初均只受到液体力、弹簧力共同作用静止不动,然后给球阀施加一个电磁力,球阀开始运动,进而改变了流场的压力,从而使得下面的针阀也随之运动。研究的内容主要是通过向fluent中导入模拟两个阀门运动的udf文件,如下。球阀udf```
    #include "udf.h"
    #include "dynamesh_tools.h"

    static real v_prev = 0.0;//initial velocity
    static real loc_prev = 0.0;//spring deformation

    DEFINE_CG_MOTION(ballball_six_three_one_parallel3, dt, vel, omega, time, dtime)
    {
    real ELECTROMAGNETIC_FORCE_MAGNITUDE = 155.0;
    real SPRING_FORCE_MAGNITUDE = 100.0;
    real SPRING_STIFFNESS = 20000.0;
    real MASS = 0.00184;
    real DISPLACEMENT_LIMIT = 0.0001;
    real f1 = 0.0;
    real f2, f_s, dv;
    real NV_VEC(A);

    #if !RP_HOST
    Thread *t;
    face_t f;
    NV_S(vel, =, 0.0);
    NV_S(omega, =, 0.0);
    if (!Data_Valid_P())return;

    t = DT_THREAD(dt); begin_f_loop(f, t) { if (PRINCIPAL_FACE_P(f, t)) { F_AREA(A, f, t); f1 = f1 + F_P(f, t) * A[1]; } } end_f_loop(f, t)

    #endif

    #if RP_NODE
    f1 = PRF_GRSUM1(f1);
    #endif

    node_to_host_real_1(f1);

    #if !RP_NODE
    if (time <= 0.0001)
    {
    if (loc_prev < DISPLACEMENT_LIMIT)
    {
    f_s = SPRING_FORCE_MAGNITUDE + SPRING_STIFFNESS * loc_prev;//spring force
    f2 = f1 + ELECTROMAGNETIC_FORCE_MAGNITUDE - f_s;
    dv = dtime * f2 / MASS;
    v_prev = v_prev + dv;
    loc_prev = loc_prev + v_prev * dtime;
    }
    else
    {
    v_prev = 0.0;
    }
    }
    if (time > 0.0001)
    {
    if (loc_prev > 0)
    {
    f_s = SPRING_FORCE_MAGNITUDE + SPRING_STIFFNESS * loc_prev;//spring force
    f2 = - f_s;
    dv = dtime * f2 / MASS;
    v_prev = v_prev + dv;
    loc_prev = loc_prev + v_prev * dtime;
    }
    else
    {
    v_prev = 0;
    }
    }
    Message("\n\ntime=%f,y_vel=%f,f1=%f,f2=%f,f_s=%f,loc_prev=%f,dv=%f\n", time, v_prev, f1, f2, f_s, loc_prev, dv);
    #endif
    host_to_node_real_1(v_prev);
    vel[1] = v_prev;
    }

    针阀udf:

    #include "udf.h"
    #include "dynamesh_tools.h"

    static real v_prev = 0.0;//initial velocity
    static real loc_prev = 0.0;//spring deformation

    DEFINE_CG_MOTION(needle_six_three_one_parallel2, dt, vel, omega, time, dtime)
    {
    real SPRING_FORCE_MAGNITUDE = 30.0;
    real SPRING_STIFFNESS = 20000.0;
    real DISPLACEMENT_LIMIT = 0.00018;
    real MASS = 0.01;
    real f1 = 0.0;
    real f2, f_s, dv;
    real NV_VEC(A);

    #if !RP_HOST
    Thread *t;
    face_t f;
    NV_S(vel, =, 0.0);
    NV_S(omega, =, 0.0);
    if (!Data_Valid_P())return;

    t = DT_THREAD(dt); begin_f_loop(f, t) { if (PRINCIPAL_FACE_P(f, t)) { F_AREA(A, f, t); f1 = f1 + F_P(f, t) * A[1]; } } end_f_loop(f, t)

    #endif
    #if RP_NODE
    f1 = PRF_GRSUM1(f1);
    #endif

    node_to_host_real_1(f1);

    #if !RP_NODE
    f_s = SPRING_FORCE_MAGNITUDE + SPRING_STIFFNESS * loc_prev;
    f2 = f1 - f_s;
    dv = dtime * f2 / MASS;
    if (f2 <= 0.0)
    {
    if (loc_prev <= 0.0)
    {
    v_prev = 0.0;
    }
    else
    {
    v_prev = v_prev + dv;
    loc_prev = loc_prev + v_prev * dtime;
    }
    }
    else
    {
    if (loc_prev < DISPLACEMENT_LIMIT)
    {
    v_prev = v_prev + dv;
    loc_prev = loc_prev + v_prev * dtime;
    }
    else
    {
    v_prev = 0.0;
    }
    }
    Message("\n\nn_time=%f,n_y_vel=%f,n_f1=%f,n_f2=%f,n_f_s=%f,n_loc_prev=%f,n_dv=%f\n",time,v_prev,f1,f2,f_s,loc_prev,dv);
    #endif
    host_to_node_real_1(v_prev);
    vel[1] = v_prev;
    }

    但是导入计算后计算到一半fluent总是卡在一半,没有报错, 也没有退出,就是卡在一个界面无法继续算下去,就是上图 的一直卡在0.000077s,就算不下去了,等了快半周了还是在 那个位置,不知道是代码的原因还是什么原因。 希望能够得到前辈们的解答。万分感谢!!!! ![5deae10e01c9e42e75ad3500a12d353.png](/assets/uploads/files/1703672401397-5deae10e01c9e42e75ad3500a12d353.png) ![cd0e8a4b2e3be20ae6dee2b9c90b6dc.png](/assets/uploads/files/1703672414778-cd0e8a4b2e3be20ae6dee2b9c90b6dc.png)
  • fluent水滴撞击模拟问题

    10 帖子
    2k 浏览

    请问问题解决了吗?我的不管怎么加密也是这个趋势

  • 关于UDF node_to_host传递数据的问题

    2 帖子
    291 浏览

    发帖不多,帖子显示出来格式不大好看,大家包容包容。

    我想要发送总的网格节点到host的目的是为了构造一个数组来接收网格坐标以供后续使用,在我的代码中,我只是将数据写入文件夹,但是实际上我想要的是存进一个数组里面,各位大佬如果有好的思路可以给我分享一下。

  • 求助关于fluent meshing边界层问题

    5 帖子
    656 浏览

    @fan820 刚才我又试了一下全局流体域加密,就不会出现警告,好像只要对个别的面画边界层就会出现这个问题

  • 1 帖子
    157 浏览

    我在DPM中设置了两种不同的injection,但是在云图-DPM concentration中只能看混合相的浓度。有其他地方可以单独看的吗??dpm.png

  • 1 帖子
    123 浏览

    最近有一个项目在meshing里最小正交质量已经提到0.15以上了,放到求解器中提示在0.01以下,有没有前辈有过这种问题?

  • Fluent计算报错 The fl process

    4 帖子
    2k 浏览

    请问这个计算几十步后出现的这个逻辑处理器满了后弹出的The f1 process could not be started,然后怎么才能继续运行呢?是无法计算了吗

  • 用重叠网格模拟小球入水

    4 帖子
    1k 浏览

    你好,请问做的是三维的模型吗

  • 1 帖子
    176 浏览

    前3张图是我模拟的结果,最后一张是别人的模拟结果,我采用的CLSVOF加表面张力、瞬态、PISO,网格数1200万
    300.png 400-.png 450.png ![500.png]Snipaste_2023-12-13_10-50-06.png (/assets/uploads/files/1702435610323-500.png)

  • 树木--多孔介质

    6 帖子
    570 浏览

    image.png

  • 4 帖子
    497 浏览

    兄弟,这个是树木简化为多孔介质吧,这个比较简单,不要用UDF就能实现,直接采用多孔介质模型就可以了,就是需要转化一下,多孔介质模型所填的阻力系数=2*LAD*Cd。另外,兄弟,我也是在做这个,我想在多孔介质区域加一个附加项,考虑树木对例子的吸附,会吗?欢迎加我讨论QQ1225220118

  • 1 帖子
    126 浏览

    亲爱的各位前辈们,小白问的问题可能不成熟,请见谅,,
    是想分析一下天然气管道流动特性、振动与压缩机轴/叶频的关系
    但压缩机没有设计参数,做不了数值模拟,只能采集一些管道脉动或者管道振动数据。
    想问,某一工况下,能不能根据采集到的脉动数据搞成UDF,作为数值模拟管道入口脉动从而代替压缩机呢?想问一下这能不能实现,,,

  • 使用DEFINE_ON_DEMAND编译完成之后出现一些问题

    5 帖子
    532 浏览

    @coolhhh 感谢您的回复 ,确实是这个样,没发现那个字母大写了。

  • fluent初始化显示

    1 帖子
    180 浏览

    fluent初始化显示mass diffusivity:invalid diffusivity please check material。用的组分输运涡耗散模型

  • 求助:关于稳态收敛结果的问题

    3 帖子
    337 浏览

    @李东岳 谢谢老师的帮助,非常感谢

  • 45 帖子
    12k 浏览

    @xiezhuoyu Nice! 挺有意思

    Description 28 Two-scheme Courant number based blending differencing scheme. 29 30 Similar to localBlended but uses a blending factor computed from the 31 face-based Courant number and the lower and upper Courant number limits 32 supplied: 33 \f[ 34 weight = 1 - max(min((Co - Co1)/(Co2 - Co1), 1), 0) 35 \f] 36 where 37 \vartable 38 Co1 | Courant number below which scheme1 is used 39 Co2 | Courant number above which scheme2 is used 40 \endvartable 41 42 The weight applies to the first scheme and 1-weight to the second scheme. 43 44 Example of the CoBlended scheme specification using LUST for Courant numbers 45 less than 1 and linearUpwind for Courant numbers greater than 10: 46 \verbatim 47 divSchemes 48 { 49 . 50 . 51 div(phi,U) Gauss CoBlended 1 LUST grad(U) 10 linearUpwind grad(U); 52 . 53 . 54 } 55 \endverbatim 56 57 SourceFiles 58 CoBlended.C
  • 刚入门fluent问一个简单的问题

    4 帖子
    557 浏览

    @李东岳 感谢东岳老师的回复!

  • 8 帖子
    2k 浏览

    您好Ivan,想请问油水分离的模拟中,水连续相,微小油滴作为分散相,这种两相液体如何设置,微小油滴可以像拉格朗日粒子那样设置一定的大小和占比,然后自动生产嘛?谢谢您

  • 9 帖子
    812 浏览

    @李东岳
    懂了,谢谢李老师!

  • fluent湍流粘度超限,多相流发散

    1 帖子
    234 浏览

    IMG_20231127_193223.jpg
    在计算单相流作为初场,可以收敛,但是湍流粘度比超限,继续设置为多相流空化计算的时候,开始发散,不知道有哪些解决办法,已经重新画过网格。
    边界条件是速度入口,压力出口,湍流sst k-w,稳态计算