Skip to content

OpenFOAM

OpenFOAM交流区

4.5k 主题 26.5k 帖子
  • #无痛苦N-S方程笔记#勘误

    2
    2 帖子
    97 浏览
    李东岳

    已更新,确实有遗漏。谢谢!

  • reactingFoam/reactingDNS计算一维球形火焰传播

    1
    1 帖子
    105 浏览
    B

    (One dimensional spherical flame initiation)
    我们最近在用reactingFoam、reactingDNS(考虑了组分的详细输运特性)来计算1D球形火焰传播,并且想与ASURF对照。在该算例中,火焰是在固定区域内沉积能量来引发的,该能量沉积区域位于1D计算域的左侧,长度rig=0.2mm,持续时长tig=0.2ms。该能量直接加入能量方程:power=energy/(4/3X3.14Xrig^3Xtig)Xexp(-(r/rig)^6)(X表示*)。在算例中使用topoSet工具降能量沉积区域disZone圈出来,求解器内部读取该disZone中的网格变化,然后对能量源项进行赋值。

    首先创建能量源项sparkE,读取算例中给的能量沉积半径dis_radius,持续时间dis_duration,能量dis_energy。 volScalarField sparkE ( IOobject ( "sparkE", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh, dimensionedScalar("sparkE", dimEnergy/dimTime/dimVolume, 0.0) // J/m3/s ); IOdictionary chemistryDict ( IOobject ( thermo.phasePropertyName("chemistryProperties"), thermo.db().time().constant(), thermo.db(), IOobject::MUST_READ, IOobject::NO_WRITE, false ) ); const dictionary& dischargeTypeDict = chemistryDict.subDict("sparkDischarge"); scalar dis_duration = dischargeTypeDict.lookupOrDefault<scalar>("dis_duration", 2E-4); // 200 us scalar dis_radius = dischargeTypeDict.lookupOrDefault<scalar>("dis_radius", 2E-4); // 200 um scalar dis_energy = dischargeTypeDict.lookupOrDefault<scalar>("dis_energy", 1E-3); // 1 mJ //scalar dis_central = dischargeTypeDict.lookupOrDefault<scalar>("dis_central", 1E-3); // 1 mJ scalar PI = 3.1415926; scalar dis_paramTot = dis_energy/(4.0*PI/3.0*dis_radius*dis_radius*dis_radius*dis_duration); //scalar dis_paramTot = dis_energy/(PI*Foam::sqrt(PI)*dis_radius*dis_radius*dis_radius*dis_duration); 在求解器主程序中,对能量赋值 const label& disZoneID = mesh.cellZones().findZoneID("disZone"); const labelList& cZone = mesh.cellZones()[disZoneID]; forAll(mesh.C(),cellI) { sparkE[cellI] = 0.0; } if (disZoneID != -1 && cZone.size() > 0 && runTime.value() <= dis_duration) { forAll(cZone,cellI) { sparkE[cZone[cellI]] = dis_paramTot*std::exp(-PI/4.0*pow(mesh.C()[cZone[cellI]].x()/dis_radius,6)); // sparkE[cZone[cellI]] = dis_paramTot*std::exp(-pow(mesh.C()[cZone[cellI]].x()/dis_radius,2)); } } if ( (runTime.value()+runTime.deltaTValue()) > dis_duration && runTime.value() < dis_duration ) { runTime.setDeltaT((dis_duration-runTime.value())); } Info << " sparkE max/min: "<< max(sparkE).value() <<" "<< min(sparkE).value() << endl;

    但是如果采用ASURF中不能点火的能量,在openfoam中竟然能点燃。
    并且火焰半径(即火焰位置,定义为最大温度梯度)随时间的变化与ASURF完全不一样,图片左侧为openfoam计算结果,右侧为ASURF计算结果。请大家指点
    07dcd785-c9d6-4cca-a1e6-37f88d616cc8-flameRadius_left(reactingFoam)_right(ASURF).png

    算例可见附件:
    1Dflame_case.zip

  • 变量未初始化问题

    1
    1 帖子
    43 浏览
    T

    在lagrangian/intermediate/submodels/Kinematic/ParticleForces路径下添加了一个电场力模型,编译通过,case计算时报错,似乎跟q和E变量未初始化有关,代码小白,求指点。

    563ac197-796b-4021-a867-d6ecd3a34007-image.png
    648c605a-93af-4ff6-9178-8242e48f84bd-image.png

    // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template<class CloudType> Foam::ElectricfieldForce<CloudType>::ElectricfieldForce ( CloudType& owner, const fvMesh& mesh, const dictionary& dict, const word& forceType, const volScalarField& qField ) : ParticleForce<CloudType>(owner, mesh, dict, forceType, true), EName_(this->coeffs().template lookupOrDefault<word>("E", "E")), EInterpPtr_(NULL), qField_(qField) { Info<< "-----p in ELe\n" << endl; qInterpPtr_.reset ( interpolation<scalar>::New ( owner.solution().interpolationSchemes(), qField ).ptr() ); Info<< "-----p2 in ELe\n" << endl; } template<class CloudType> Foam::ElectricfieldForce<CloudType>::ElectricfieldForce ( const ElectricfieldForce& etf ) : ParticleForce<CloudType>(etf), EName_(etf.EName_), EInterpPtr_(NULL), qField_(etf.qField_) {}
  • paraview如何衡量长度

    6
    6 帖子
    3k 浏览
    L

    收藏!!

  • 关于paraview后处理颗粒的问题

    9
    9 帖子
    4k 浏览
    L

    学习ing

  • 1 帖子
    194 浏览

    各位老师,早上好!小白最近在做openfoam燃烧时发现得到的模拟结果过小,比如我在化学反应机理中添加激发态自由基的反应,模拟得到的激发态自由基的结果量级在10^(-9),这在实验中结果是可信的,因为这种自由基不稳定,很快会跃迁到基态,但是从数值角度怎么解释呢?也有一些基态自由基比如CH,它的量级在10^(-5)。在openfoam中很多方程,它的残差到10^(-6),我们就认为它收敛了。10^(-9)量级的值我们怎么才能够保证其数值模拟结果的可信性呢,而不是计算得到的误差?是对一些不大可能发生的反应乘上了一个很小的系数吗?还是经过什么处理?文献中也只是给出了一个结果,但并没有对结果的可信性作出解释,恳请各位老师解惑。

  • 7 帖子
    458 浏览
    L

    @Prometheus10 在 OpenFOAM计算圆球绕流过程中,如何输出切向粘性阻力系数和法向粘性阻力系数?或是如何从输出的结果中计算得到? 中说:

    我尝试手动在结果中将Symmetry边界条件改为Wall,然后执行一次wallshearstress;
    通过对比文献中气泡的压差阻力系数、法向粘性应力和切向粘性应力结果,输出的结果并不对

    是的,因为wallshearstress代码会自动过滤非wall边界,可以手动改为wall。既然计算剪切力的公式都是一样的,这么改一下不会影响计算正确性的。和文献对不上是不是symmetry边界条件的问题呢?(你们这个帖子挺长,我看大意是不是:楔形网格算球noslip正确,但算slip和symmetry和文献对不上,且symmetry效果更好些?)
    用整球网格算会如何呢?做一些其它情况的验证呢,比如壁面滑移的方腔流动?

    我之前做过低雷诺数下的一阶maxwell速度滑移的圆柱绕流,算出来的受力以及粘性正应力占比和文献比得上。不过你的自由滑移情况我没考虑过,不知道为啥出问题。

    @Prometheus10 在 OpenFOAM计算圆球绕流过程中,如何输出切向粘性阻力系数和法向粘性阻力系数?或是如何从输出的结果中计算得到? 中说:

    除此以外,是否只有像您提到的【方案二】基于wallshearstress functionObject进行修改,才能输出“绕流气泡”的粘性剪切力结果。

    这个只是方便些,直接输出壁面切向和法向粘性力场,不用在paraview中写公式,但是需要改OpenFOAM代码。得先看明白wallshearstress中咋算的,主要是改calcShearStress函数,不难,慢慢看慢慢改。

  • 多区域求解器温度场收敛非常慢

    2
    2 帖子
    192 浏览
    李东岳

    能量方程收敛非常慢,导致计算时间增加了数十倍

    从你的log来看,能量方程都没有计算了。不是能量方程的问题

  • 19 帖子
    832 浏览
    O

    @李东岳 好的,谢谢李老师,我试一试

  • OpenFOAM.com系列国内满速下载地址

    1
    1 帖子
    145 浏览
    李东岳

    这些国内软件包都是直接fork国外github上面的OpenFOAM。因为有时候github访问不上去。就fork到国内。

    下列地址可直接使用git clone,例如,打开终端,在终端直接将下面的复制进去:

    git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-6.git

    即可在本地创建ThirdParty-6文件夹。如果提示你没有git,那么输入下面的即可:

    sudo apt install git

    正常的话是下图这样:

    捕获.JPG

    相关git地址: git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-v2312.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-v2306.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-v2206.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-v2106.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-v2006.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-v1912.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-v1906.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-v1712.git

    第三方包地址:

    git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-v2306.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-v2212.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-v2206.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-v2106.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-v2006.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-v1906.git

    在下载的时候,需要下载相应的OpenFOAM与相应版本的第三方包

  • OpenFOAM.org系列国内满速下载地址

    1
    1 帖子
    145 浏览
    李东岳

    这些国内软件包都是直接fork国外github上面的OpenFOAM。因为有时候github访问不上去。就fork到国内。

    下列地址可直接使用git clone,例如,打开终端,在终端直接将下面的复制进去:

    git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-6.git

    即可在本地创建ThirdParty-6文件夹。如果提示你没有git,那么输入下面的即可:

    sudo apt install git

    正常的话是下图这样:

    捕获.JPG

    相关git地址: git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-11.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-10.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-9.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-8.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-7.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-6.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-5.x.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-4.x.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-3.0.x.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-2.3.0.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-2.2.0.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-2.1.1.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-2.1.0.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-2.0.0.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-1.7.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-1.6.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-1.5.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-1.4.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-1.3.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-1.2.git git clone https://e.coding.net/dyfluid/OpenFOAM/OpenFOAM-1.1.git

    第三方包地址:

    git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-11.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-10.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-9.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-8.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-7.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-6.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-5.x.git git clone https://e.coding.net/dyfluid/OpenFOAM/ThirdParty-3.0.x.git

    在下载的时候,需要下载相应的OpenFOAM与相应版本的第三方包

    如果有人需要scotch_6.0.3: scotch_6.0.3.tar.gz

  • 关于晃荡惯性力的植入

    13
    13 帖子
    2k 浏览
    李东岳

    我觉得你这个挺有意思的。初学可以练手用。但是个人觉得算法应该没有问题,出现不一致的情况可能还是哪里出现了小bug。

  • 3 帖子
    181 浏览

    @BlancheDH 好嘞,我去试试,谢谢大佬:xinxin:

  • openFOAM中耦合风力机致动线模型

    11
    11 帖子
    2k 浏览
    S

    @sxz0823 可以加个联系方式交流一下吗,我用turbinesFoam和LES但是结果很不对我的qq是:1141101064

  • 振荡流入口压力边界条件相关问题

    7
    7 帖子
    286 浏览
    J

    @李东岳 嗯嗯,好的,谢谢老师

  • icoFoam中压力泊松方程的求解

    9
    9 帖子
    2k 浏览
    李东岳

    更新到了5.9.1节

  • potentialFoam计算的驻点压力系数为啥不是1?

    8
    8 帖子
    389 浏览
    L

    @李东岳 我用的v2006,Phi是速度势,用-grad(Phi)计算的速度和输出的U有些差异,尤其是在远场边界。

  • 60 帖子
    21k 浏览
    李东岳

    @lizhisongsjtu 这个图太酷炫了。 有doi不

    有些大佬对liutex法的态度偏消极(审稿意见)。

    是,我也看到了。为什么呢

  • OpenFOAM 浮体铰接可以计算吗

    7
    7 帖子
    929 浏览
    B

    @YuPeng 我也遇到了相同的问题,请问一下您现在解决了吗

  • fvSchemes中interpolationSchemes设置

    3
    3 帖子
    173 浏览
    Z

    感谢李老师!经过修改,已经可以成功运行了。:146: