@length颜 入口按实际的来就行,输入反应物的就行,中间组分和产物不用管。
xuqiming
帖子
-
求教,组分比例分配 -
activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用找到原因了,openFoam7里面这个边界条件代码写错了。
-
activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用李老师有时间可以继续帮忙看一下吗,他这个边界条件很奇怪,activeBaffleVelocity只能实现一个单向阀的效果,要不关不上,要不打不开。activePressureForceBaffleVelocity能实现阀门的效果,但是真实阈值和设置阈值没啥关系,初始条件或者工况改变后,真实阈值会出现很大的变化。
-
activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用@李东岳 经过一天的努力,问题解决了,感谢李老师的帮忙,问题在于orientation 不能设置-1,只能设置为1,这似乎表示初始状态下盘移动方向。
分享的算例修改这一个参数就能正常运行,需要注意的是minThresholdValue 应该是表示两侧压差,但是实际上准大差一些,具体大多少无法确定。 -
activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用@李东岳
李老师,我试了一下和我这比较接近的工况,rhoPimpleFoam中的激波管,结果是对的,能够挡住,超过压力也能开启,同时开口度之类的设置都有效,文件见附件。
shockTube.zip
-
activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用好的,我看一下。
-
activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用@李东岳 没有测试过,是基于自己要做的算例来的,不加这个东西的时候,算例是能运行的。
-
activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用@李东岳。感谢李老师的回复,文件见附件。
Allrun命令可直接运行,plot.gp能出来纵向几个监测点的压力数据图,用作辅助结果判断。
该算例基于openFoam7的XiFoam求解器运行,不需对照实验结果。
更多信息可见文件中readme.txt文件。 -
activePressureForceBaffleVelocity/activeBaffleVelocity边界条件如何使用需求:在一个管子中间有一个阀门,压力大于一定值后阀门打开
我在李东岳老师的建议下尝试使用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); } ); // ************************************************************************* //
-
内部面及其边界条件修改@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; } }
);
-
内部面及其边界条件修改@李东岳 谢谢李老师,我去查阅一下资料。
-
内部面及其边界条件修改
各位
有几何结构如图所示,小矩形外边界为壁面,大矩形外部边界为压力出口,其中小矩形和大矩形连接的地方需要设置为壁面,并在满足压力大于定值后失效,转化为对流场无任何影响的内部面。请问这个在openFoam中应该如何实现呢。
我甚至不清楚如何在blockMesh中定义内部面为壁面。 -
基于reactingFoam的管道内预混氢气点火爆炸@钟余 没有,我这边不做爆轰,但是相关论文中见过使用DDTFOAM和blastXiFoam实现的
-
XiFoam计算气体爆炸增加障碍物后发散@好名字 根据我查阅的资料,strength 是点火能量的表征,影响的是初始时刻的点火效果,也就是b值和燃烧产物的质量分数之类的物理量。
-
XiFoam计算气体爆炸增加障碍物后发散经过查看该求解器的原始文献发现,当Xi模型选择为transport模型时,使用如下的方程进行计算,经过尝试发现的确是该方程影响了计算的收敛性。个人认为可能是由于该方程中没有扩散项导致的不稳定性。将湍流方程修改为RNG KEPSILON和relizable KEPSILON时能够进行计算,但是计算结果欠佳。希望有大佬能够予以指点。
-
XiFoam计算气体爆炸增加障碍物后发散@李东岳 感谢李老师的回复。reactingFoam求解器之前实现了无障碍下的计算和计算精度。但是由于反应机制的刚性和反应步数问题,导致计算量过大,同时reactingFoam在进行计算时压力震荡剧烈,一直不清楚是离散格式设置的问题还是求解器本身的问题,所以最近在尝试XiFoam这个似乎更简单一些的求解器。
-
XiFoam计算气体爆炸增加障碍物后发散我前期基于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
-
mech2Foam程序使用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文件@风云5091 我觉得你可能是没有修改python代码中的文件名,因为他提示的是CTI和XML格式不支持。Yaml是支持的。你可以检查ctTransToOF中mian程序下文件名是否为chem.yaml,然后再到python3环境中进行调用。
mech = 'chem.yaml'
python3 ctTransToOF.py