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

X

xuqiming

@xuqiming
关于
帖子
35
主题
8
群组
0
粉丝
3
关注
0

帖子

最新

  • 求教,组分比例分配
    X xuqiming

    @length颜 入口按实际的来就行,输入反应物的就行,中间组分和产物不用管。


  • activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用
    X xuqiming

    找到原因了,openFoam7里面这个边界条件代码写错了。


  • activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用
    X xuqiming

    李老师有时间可以继续帮忙看一下吗,他这个边界条件很奇怪,activeBaffleVelocity只能实现一个单向阀的效果,要不关不上,要不打不开。activePressureForceBaffleVelocity能实现阀门的效果,但是真实阈值和设置阈值没啥关系,初始条件或者工况改变后,真实阈值会出现很大的变化。


  • activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用
    X xuqiming

    @李东岳 经过一天的努力,问题解决了,感谢李老师的帮忙,问题在于orientation 不能设置-1,只能设置为1,这似乎表示初始状态下盘移动方向。
    分享的算例修改这一个参数就能正常运行,需要注意的是minThresholdValue 应该是表示两侧压差,但是实际上准大差一些,具体大多少无法确定。


  • activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用
    X xuqiming

    @李东岳
    李老师,我试了一下和我这比较接近的工况,rhoPimpleFoam中的激波管,结果是对的,能够挡住,超过压力也能开启,同时开口度之类的设置都有效,文件见附件。
    shockTube.zip
    02d7f466-dccb-485c-9d79-a41780d09882-image.png


  • activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用
    X xuqiming

    好的,我看一下。


  • activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用
    X xuqiming

    @李东岳 没有测试过,是基于自己要做的算例来的,不加这个东西的时候,算例是能运行的。


  • activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用
    X xuqiming

    @李东岳。感谢李老师的回复,文件见附件。
    Allrun命令可直接运行,plot.gp能出来纵向几个监测点的压力数据图,用作辅助结果判断。
    该算例基于openFoam7的XiFoam求解器运行,不需对照实验结果。
    更多信息可见文件中readme.txt文件。

    XiFoam_duct.tar


  • activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用
    X xuqiming

    需求:在一个管子中间有一个阀门,压力大于一定值后阀门打开
    我在李东岳老师的建议下尝试使用activePressureForceBaffleVelocity/activeBaffleVelocity边界条件实现上述功能。查阅资料发现实现该功能需要在目标位置创建4个面(两个wall,两个cyclic),经过许多尝试,代码能够运行不报错,但是结果有明显问题。初始时刻的各种场出现诡异变化,如图所示。部分关键文件进行上传,请大佬帮忙指正错误。p.orig T.orig U.orig blockMeshDict createBafflesDict createPatchDict topoSetDict

    
    
    /*--------------------------------*- C++ -*----------------------------------*\
      =========                 |
      \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
       \\    /   O peration     | Website:  https://openfoam.org
        \\  /    A nd           | Version:  7
         \\/     M anipulation  |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       volVectorField;
        location    "0";
        object      U;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    dimensions      [0 1 -1 0 0 0 0];
    internalField   uniform (0 0 0);
    boundaryField
    {
        cylinder1_wall_down
        {
            type            noSlip;
        }
        interface
        {
            type            noSlip;
        }
        cylinder1_wall_sides
        {
            type            noSlip;
        }
        
        
          blockedRaptureDiscBaffle
        {
            type            activeBaffleVelocity;//activePressureForceBaffleVelocity;
    
            // This is the name of the cyclic patch
            cyclicPatch     raptureDisc_master;
            openingTime     0.01;
            maxOpenFractionDelta 1;
            openFraction    0;
            orientation     -1;
    
            // This value is the opening or closing guy
            // Please see ISSUE 2360 - Bug in condition
            // https://develop.openfoam.com/Development/openfoam/-/issues/2360
            // -> if you dont have the patch installed, the BC will open at 3000 Pa
            minThresholdValue 210000;
            forceBased      false;
            opening         1;
            value           uniform (0 0 0);
        }
        
        raptureDisc_master
        {
            type            cyclic;
    
        }
        
        raptureDisc_slave
        {
            type            cyclic;
        }
    
    }
    // ************************************************************************* //
    
    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /   F ield        | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  v2106                                 |
    |   \\  /    A nd           | Website:                                        |
    |    \\/      M anipulation |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version         2012;
        format          ascii;
        class           dictionary;
        location        "system";
        object          createBafflesDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    
    internalFacesOnly true;
    
    //noFields        true;//false
    fields true;
    
    baffles
    {
        // Here we use the previous created faceSet to create 4 times the same
        // faces which are moved to different boundary conditions
        // The reason for that is that the activePressureForceBaffle needs
        // a) a cyclic boundary set (master/slave)
        // b) an additional wall
        quadruplicateTheInternalFaces
        {
            type            faceZone;
            zoneName        baffleFaces;
            patches
            {
                // a) Create the cyclic guys (RD = raptureDisc)
                RD_master_cyclic
                {
                    name            raptureDisc_master;
                    type            cyclic;
                    sampleMode      nearestPatchFace;
                    neighbourPatch  raptureDisc_slave;
                    sameGroup       off;
                    patchFields
                    {
                    }
                }
    
                RD_slave_cyclic
                {
                    name            raptureDisc_slave;
                    type            cyclic;
                    sampleMode      nearestPatchFace;
                    neighbourPatch  raptureDisc_master;
                    sameGroup       off;
                    patchFields
                    {
                    }
                }
    
                // b) create another set of walls (will be merged in the next step)
                RD_master_wall
                {
                    name            raptureDiscWall1;
                    type            wall;
                }
                RD_slave_wall
                {
                    name            raptureDiscWall2;
                    type            wall;
                    
                }
    
            }
        }
    }
    
    
    // ************************************************************************* //
    
    
    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
    |  \\    /   O peration     | Version:  v2106                                 |
    |   \\  /    A nd           | Website:                                        |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      createPatchDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    pointSync false;
    
    // Patches to create.
    patches
    (
        {
            // Name of new patch
            name blockedRaptureDiscBaffle;
    
            // Dictionary to construct new patch from
            patchInfo
            {
                type wall;
            }
    
            // How to construct: either from 'patches' or 'set'
            constructFrom patches;
    
            patches (raptureDiscWall1 raptureDiscWall2);
        }
    );
    
    // ************************************************************************* //
    
    

    92f93eeb-23b9-4ae9-898b-2043a9303e0b-image.png


  • 内部面及其边界条件修改
    X xuqiming

    @xuqiming 噢噢,这个问题解决了,需要厚度刚好覆盖这一层网格。


  • 内部面及其边界条件修改
    X xuqiming

    @李东岳 李老师您好,我仔细看看了以下,我首先应该需要实现创建一个内部面为wall。我尝试使用topoSet去实现,但是显示出来总是存在问题。请问是否我定义内部面存在问题(在网上未找到关于boxToFace的详细介绍)。
    actions
    (

    {
        name    baffleFaceSet;
        type    faceSet;
        action  new;
        source  boxToFace;
        sourceInfo
        {
            box (-0.5 -0.5 0.5)(0.5 0.5 0.5);
        }
    }
    
    
    
    {
        name    baffleFaces;
        type    faceZoneSet;
        action  new;
        source  setToFaceZone;
        sourceInfo
        {
            faceSet baffleFaceSet;
        }
    }
    

    );
    0fa6fe92-3ddb-4500-91c7-eb932707c2e8-image.png


  • 内部面及其边界条件修改
    X xuqiming

    @李东岳 谢谢李老师,我去查阅一下资料。


  • 内部面及其边界条件修改
    X xuqiming

    19d9615b62c5cc55ceb3083f69d8c13.png
    各位
    有几何结构如图所示,小矩形外边界为壁面,大矩形外部边界为压力出口,其中小矩形和大矩形连接的地方需要设置为壁面,并在满足压力大于定值后失效,转化为对流场无任何影响的内部面。请问这个在openFoam中应该如何实现呢。
    我甚至不清楚如何在blockMesh中定义内部面为壁面。


  • 基于reactingFoam的管道内预混氢气点火爆炸
    X xuqiming

    @钟余 没有,我这边不做爆轰,但是相关论文中见过使用DDTFOAM和blastXiFoam实现的


  • XiFoam计算气体爆炸增加障碍物后发散
    X xuqiming

    @好名字 根据我查阅的资料,strength 是点火能量的表征,影响的是初始时刻的点火效果,也就是b值和燃烧产物的质量分数之类的物理量。


  • XiFoam计算气体爆炸增加障碍物后发散
    X xuqiming

    经过查看该求解器的原始文献发现,当Xi模型选择为transport模型时,使用如下的方程进行计算,经过尝试发现的确是该方程影响了计算的收敛性。个人认为可能是由于该方程中没有扩散项导致的不稳定性。将湍流方程修改为RNG KEPSILON和relizable KEPSILON时能够进行计算,但是计算结果欠佳。希望有大佬能够予以指点。
    image.png


  • XiFoam计算气体爆炸增加障碍物后发散
    X xuqiming

    @李东岳 感谢李老师的回复。reactingFoam求解器之前实现了无障碍下的计算和计算精度。但是由于反应机制的刚性和反应步数问题,导致计算量过大,同时reactingFoam在进行计算时压力震荡剧烈,一直不清楚是离散格式设置的问题还是求解器本身的问题,所以最近在尝试XiFoam这个似乎更简单一些的求解器。


  • XiFoam计算气体爆炸增加障碍物后发散
    X xuqiming

    我前期基于OF7 XiFoam进行了氢气爆炸模拟,与实验结果一致性较好(case1所示),收敛性很好。现在加入障碍物后(case2),计算在进行到5ms左右发散。发散时能看见障碍附近出现很大的湍动能。我感觉是k-epsilon不适合这种工况,修改为SST仍然发散。请问各位大佬有什么好的建议吗。
    使用的基本设置如下

    • k-epsilon
    • 0.4 mm网格,(测试过无关性)
    • k-1e-3,zerogradient
    • epsilon-0.5,epsilonWallFunction
    • combustion-Gulder,Xi-transport
      图片1.jpg

  • mech2Foam程序使用
    X xuqiming

    mech2Foam能够生成XiFoam求解器所需的Gulder系数与热物理学参数
    所需全部代码可从下面网站下载|
    https://usn.figshare.com/articles/code/Generating_thermodynamic_and_combustion_properties_for_CFD_mech2Foam/13721134
    使用该代码过程中发现大大小小报错太多,难以使用,经过检查和修改,对部分不适配电脑上python3.11的代码进行了修改。同时对部分源代码中有问题的部分进行了修改。对没有表述清楚的地方增加了注释进行说明。
    经过测试,目前该代码能够成功生成Gulder系数与适配of7的thermophysicalProperties文件。
    修改后主程序如下
    main.py


  • chemkin反应机理转化为cantera,进而转化为openFoam .dat文件
    X xuqiming

    @风云5091 我觉得你可能是没有修改python代码中的文件名,因为他提示的是CTI和XML格式不支持。Yaml是支持的。你可以检查ctTransToOF中mian程序下文件名是否为chem.yaml,然后再到python3环境中进行调用。

    mech = 'chem.yaml'
    
    python3
    ctTransToOF.py
    
  • 登录

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