Skip to content
  • #无痛苦N-S方程笔记#勘误

    OpenFOAM
    2
    0 赞同
    2 帖子
    76 浏览
    李东岳

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

  • 0 赞同
    1 帖子
    88 浏览
    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

  • 变量未初始化问题

    OpenFOAM
    1
    0 赞同
    1 帖子
    30 浏览
    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如何衡量长度

    OpenFOAM
    6
    0 赞同
    6 帖子
    3k 浏览
    L

    收藏!!

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

    OpenFOAM
    9
    0 赞同
    9 帖子
    4k 浏览
    L

    学习ing

  • 网站安装的软件包

    C斯达克
    1
    0 赞同
    1 帖子
    109 浏览
    李东岳

    网站安装:

    sudo apt-get install python3-sphinx python3-pip pip install myst-parser sphinx-design sphinx-rtd-theme
  • 0 赞同
    1 帖子
    219 浏览
    G

    看论文的时候看到了这种速度云图,有大神知道是如何后处理得到的吗,可以通过tecplot实现吗?
    屏幕截图 2024-04-29 102300.png

  • 0 赞同
    1 帖子
    176 浏览

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

  • 0 赞同
    7 帖子
    375 浏览
    L

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

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

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

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

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

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

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

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

    OpenFOAM
    2
    0 赞同
    2 帖子
    175 浏览
    李东岳

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

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

  • 关于动网格的问题

    Fluent
    2
    0 赞同
    2 帖子
    421 浏览
    M

    改重心 或者自定义坐标系

  • 0 赞同
    19 帖子
    656 浏览
    O

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

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

    OpenFOAM
    1
    0 赞同
    1 帖子
    123 浏览
    李东岳

    这些国内软件包都是直接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系列国内满速下载地址

    OpenFOAM
    1
    0 赞同
    1 帖子
    121 浏览
    李东岳

    这些国内软件包都是直接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

  • 关于csv文件的可视化

    Fluent
    1
    0 赞同
    1 帖子
    113 浏览
    M

    我在算liutex,本来准备仍udm里 但是因为要矩阵运算不想写轮子,就导出数据到csv里在fluent外算的。本来准备仍tecplot 但缺少网格拓扑 导入之后只有一堆线。想问有没有其他可视化的思路

  • 关于晃荡惯性力的植入

    OpenFOAM
    13
    0 赞同
    13 帖子
    1k 浏览
    李东岳

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

  • 0 赞同
    2 帖子
    144 浏览
    Y

    已经解决了!谢谢各位

  • 0 赞同
    3 帖子
    145 浏览

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

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

    OpenFOAM
    11
    0 赞同
    11 帖子
    2k 浏览
    S

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

  • CFD中文网 定位与规范

    已固定 公告
    83
    0 赞同
    83 帖子
    110k 浏览

    注册成功,感谢感谢