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中文网

J

Joker

@Joker
关于
帖子
85
主题
18
群组
0
粉丝
1
关注
2

帖子

最新

  • 自定义边界条件遇到的问题
    J Joker

    @xpqiu 哇,真的是太感谢您了,您一说我就明白了,我确实是没有写这行代码!


  • 自定义边界条件遇到的问题
    J Joker

    我自己编译了一个边界条件,已经编译成功,且能够顺利的进行计算,但目前遇到一个问题,一旦我开始并行运算,使用decomposePar分块以后,我的关键字fixedU就在分块里面消失了,导致计算无法进行,请问这是什么原因导致的呢,实在是想不到为什么。还请各位大佬替我解答一下,谢谢!

    a9cdd6a0-34cb-4ac4-8d76-655736059bc4-image.png


  • codedfixedvalue实现运动边界速度的指定
    J Joker
    type            codedFixedValue;
        value           uniform (0 0 0);  // 初始速度
        name            UM2;  // 自定义边界条件名称
    
        codeInclude
        #{
            #include "fvMesh.H"
            #include "polyPatch.H"
            #include "fvcMeshPhi.H"
            #include "addToRunTimeSelectionTable.H"
        #};
    
        code
        #{
            // 避免重复计算
            if (this->updated())
            {
                return;
            }
    
            // 获取网格和边界数据
            const fvPatch& p = patch();
            const polyPatch& pp = p.patch();
            const fvMesh& mesh = internalField().mesh();
            
            // 仅在网格运动时计算(静态网格跳过)
            if (mesh.moving())
            {
                // 1. 计算上一时刻的面中心坐标
                const pointField& oldPoints = mesh.oldPoints();
                vectorField oldFc(pp.size());
                forAll(oldFc, i)
                {
                    oldFc[i] = pp[i].centre(oldPoints);  // 基于上一时刻节点坐标
                }
    
                // 2. 计算几何速度(位置变化/时间步长)
                scalar deltaT = mesh.time().deltaTValue();
                vectorField Up = (pp.faceCentres() - oldFc) / deltaT;
    
                // 3. 通量修正确保连续性
                const volVectorField& U = static_cast<const volVectorField&>(internalField());
                scalarField phip = fvc::meshPhi(U, p.index());  // 网格运动产生的通量
                vectorField n = p.nf();  // 边界法向量
                scalarField magSf = p.magSf();  // 面面积
                tmp<scalarField> Un = phip / (magSf + vSmall);  // 通量对应的法向速度
    
                // 4. 合成最终速度:几何速度 + 法向修正
                // 公式:修正速度 = 原始速度 + 法向*(通量法向速度 - 原始法向分量)
                vectorField::operator=(Up + n*(Un() - (n & Up)));
            }
    
            // 调用父类方法完成更新
            fixedValueFvPatchVectorField::updateCoeffs();
        #};
    
        codeOptions
        #{
            -I$(LIB_SRC)/finiteVolume/lnInclude \
            -I$(LIB_SRC)/meshTools/lnInclude
        #};
    
        codeLibs
        #{
            -lfiniteVolume \
            -lmeshTools
        #};
    

    请教一下各位大佬,我想要通过codedfixedvalue实现movingwallvelocity这个边界条件的效果,这个代码是我仿照movingwallvelocity边界条件弄得,我用自己写的这个边界条件算了涡激振动,算出来的结果和movingwallvelocity结果几乎没有差别。计算完成后,我将输出结果导入tecplot,可以正常导入,但是切片时会出现以下报错,目前没有找到问题出在哪儿,应该是我写的这个边界条件tecplot无法识别导致的,但我不知道问题出在哪儿。
    641bf902-dad9-4f14-91ab-7f5bc7eda851-QQ20251011-140535.png


  • codedFixedValue 入口速度相关问题
    J Joker

    @chon01 这也只是我的猜测,因为我按了一下计算器,lg和ln函数算出来的结果差距确实比较明显,希望能帮到你吧。


  • codedFixedValue 入口速度相关问题
    J Joker

    @chon01 我在想有没有可能是他们写错了呢,如果用ln函数算,我认为你的结果是没问题的。但是如果将ln换算成底数为10的lg,好像就可以得到你最开始放的那张图里面的数值了


  • codedFixedValue 入口速度相关问题
    J Joker

    @chon01 我刚刚用计算器初步算了一下,用ln函数算出来当z=0.5时,u=0.88。用lg函数算出来当z=0.5时,u=0.38,跟你给出来的图是能对上的。这就比较奇怪了,是文献中把公式写错了还是咱们用错了。


  • codedFixedValue 入口速度相关问题
    J Joker

    你好,我请教一下,别人文章中用的ln函数,你写的是log函数,c++中ln函数是这么写的嘛?


  • openFoam二维计算中输出的力的单位是什么?
    J Joker

    @xpqiu 好的,谢谢您!


  • openFoam二维计算中输出的力的单位是什么?
    J Joker

    我最近在使用force函数监测流体作用力的过程中,出现了困惑。

    流体作用力的计算应该是对物体表面做压力和粘性力的积分,openFoam在做二维计算时,需要在z方向设置一定的厚度,程序在计算流体作用力时是如何选取宽度的呢?是按照我们设置的厚度去计算,还是针对二维计算会默认取1m?

    还有force函数输出的文件中,力的单位是什么?有没有大佬能给我解答一下。谢谢。


  • openFoam动网格求助——displacementlaplacian 的使用
    J Joker

    @Mina-Lee 好的,谢谢啦。我刚刚试了很久终于试出来了,确实是少给了参数。


  • openFoam动网格求助——displacementlaplacian 的使用
    J Joker

    @Mina-Lee 您好,可以再请教一下嘛?我扩散方案想试一下exponential,但是他会报错超出EOF,这是什么原因引起的呢?

    b81d65b0-252f-4a31-b79a-070c9c59285f-dfc8c381c18b330f03966acda5776899.png
    0b1985f5-4b53-42f2-9c37-d2c1daff4bbc-776acb6bec8e3c6b579a0d80f924f7e5.png


  • openFoam动网格求助——displacementlaplacian 的使用
    J Joker

    @Mina-Lee 好的,我再排查一下。


  • openFoam动网格求助——displacementlaplacian 的使用
    J Joker

    @Mina-Lee 好的,谢谢您。我觉得应该是我扩散方案选的有问题,我再检查检查。


  • openFoam动网格求助——displacementlaplacian 的使用
    J Joker

    我网格变形是这样的,按照我的想法,整个变形域的网格应该一起变化才对,为什么现在他只压缩第一层网格呢?
    9aad9981-3fbd-4108-b441-8542cf2b7908-a7485e38b4c55b16a93633fa4b96f551.png


  • openFoam动网格求助——displacementlaplacian 的使用
    J Joker

    @Mina-Lee 您好,我可以再请教您一个问题嘛?我使用了您提供的方法,现在上层网格固定住了,但是我计算过程中直接发散了,我检查了一下,是因为变形网格和静止网格交界处的网格被压缩的很小,而且他只压缩第一层网格,这是为啥呢?还是因为我扩散率选的不对嘛?


  • openFoam动网格求助——displacementlaplacian 的使用
    J Joker

    @Mina-Lee 谢谢您!


  • openFoam动网格求助——displacementlaplacian 的使用
    J Joker

    我在使用openFoam动网格的时候,希望能根据文献实现上面的三角形网格不变,下面的正方形网格变形,但是在使用过程中,我发现一旦下面变形区域内的网格变化,便会带动上面的网格一起变形,是否是因为我扩散模型选的有问题,我该如何实现呢?下面是我扩散模型的配置。

    4fad4ec9-f00d-477f-935f-07c3f46d5e3d-image.png

    bd544177-167a-401f-8328-f80c0a044971-a2ff16e31a9e1f14a2da2602c9e44c7a.jpg


  • 压力梯度中不可导的点如何处理呢?
    J Joker

    @yms00yms 不好意思哈,这我真不好说,那个cyclic边界条件我没用过。


  • Openfoam使用SST k-omega湍流模型相关问题。
    J Joker

    @EricLiu 你用openFoam自带的那个函数去监测y+,别用你自己算的那个,不准。我个人觉得哈


  • Openfoam使用SST k-omega湍流模型相关问题。
    J Joker

    @EricLiu 你的这些设置没有问题,我觉得是网格的问题,你从层流过渡到湍流,网格要更细一些,你算y+了吗?

  • 登录

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