Skip to content

OpenFOAM

OpenFOAM交流区

5.3k 主题 31.3k 帖子
  • 热物性的状态方程在哪编译的?

    4
    4 帖子
    4k 浏览
    W

    @zwl 这些都是类模板,你需要找到对这些类模板进行特化的源文件。

    参考:
    thermophysicalModels/basic/psiThermo/psiThermos.C
    thermophysicalModels/basic/rhoThermo/rhoThermos.C

  • 关于openfoam WIN10下子系统ubuntu的安装

    1
    1 帖子
    2k 浏览

    打开“设置”——“更新和安全”——“针对开发人员”——选“开发人员模式”—退出

    找到 "设置 "-"应用和功能" -下翻打开 "相关设置"下的"程序和功能"--在左边点击 "启用或关闭windows功能" --找到 "适用于linux的windows子系统" -勾选后点确定——退出

    打开应用商店搜索 ubuntu , 会显示几个ubuntu系统,选择一个系统的(我选的是ubuntu 18那个),下载之后打开,等几秒钟,设置自己的用户名和密码。然后关闭。

    然后去www.openfoam.com (如果用的是百度,打开前几个网页应该都是可以的,注意区分版本,有v1612,v172,v182),打开之后选择顶头The open source CFD toolbox下的Download,
    选择win10 native,找到大标题下Install OpenFOAM 下的OpenFOAM-v1806-windows10.tgz,点击下载,点进去大概等几秒钟就会自动下载(需要点确定下载就点确定)。在c盘的用户(Users)文件里新建一个Dwonload文件夹,找到你下载的文件,把他拷到
    新建的Download的文件夹。

    点桌面左下角的开始键,找到ubuntu,直接打开你的ubuntu子系统.
    输入命令

    cd/mnt/ ls cd c/ //(打开c盘) ls //(会显示你的c盘里的文件夹) cd Users/ //(打开用户文件夹) ls cd Download //(打开之前建的Download文件夹) cp OpenFOAM-v1806-windows10.tgz /home/(ubuntu的用户名)/ //(注意v1806是版本) ls cd ls ls tar xvf OpenFOAM-v1806-windows.tgz ls ls OpenFOAM ls OpenFOAM/OpenFOAM-v1806/etc/bashrc bashrc .nano

    按方向键切到最后,再空两行,输入 source OpenFOAM/OpenFOAM-v1806/etc/bashrc
    按ctrl o(不是0),然后enter键保存,然后ctrl X退出。
    然后关闭终端
    打开一个新的终端,输入

    cd OpenFOAM/OpenFOAM-v1806/tutorials 选择你想运行的算例测试一下,安装完毕。

    参考视频链接https://v.qq.com/x/page/b0564p64f68.html

  • 6 帖子
    5k 浏览
    X

    应该有一个WSGG的开源模型,你可以找一下,你可以以此为参考,改成你自己的模型

  • 《OpenFOAM用户指南-5.0》勘误

    3
    3 帖子
    3k 浏览
    李东岳
    thermodynamics { Hf 0; Sf 0; CpCoeffs<8> ( 1000 -0.05 0.003 0 0 0 0 0 ); } \endverbatim The polynomial expression is evaluated as so: \f[ Cp = 1000 - 0.05 T + 0.003 T^2 \f]

    所以应该是1

    感谢!已更新 @D-Benjamin :huahua: http://www.cfd-china.com/topic/1441/openfoam用户指南-勘误/2

  • 5 帖子
    4k 浏览
    D

    谢谢两位老师的关注,我会再多孔介质的资料先学学看,谢谢

  • totalpressure源码

    3
    3 帖子
    3k 浏览
    孟豪龙

    @东岳 谢谢

  • twoPhaseEulerFoam下流化床算例

    2
    2 帖子
    2k 浏览
    李东岳

    inletOutlet边界条件针对流入和流出的情况需要作区分,比如流出的时候是零法向梯度,流入的时候需要指定某个值。判断流入和流出的信息是通过phi来识别的。OpenFOAM中边界处的phi在大于0的时候,全部流出。因此对于这一类条件,需要指定phi,你的案例中,指定的是phi.air

  • 10 帖子
    8k 浏览

    @东岳 i其实是第一个网格,n是最后一个网格
    也就是
    先求每一个网格中的alpha * x 再对整个计算域求和
    然后求和所有计算域中alpha的值
    两者做比值

  • 关于 Rosin-rammler distribution的设置

    2
    2 帖子
    2k 浏览

    不好意思 数据在这里
    0_1542843045909_48db69f6-3dde-40bc-9b8d-70c1b51caa28-image.png Dd [um] Number
    0.00000220 17200.00000
    0.00000439 71000.00000
    0.00000659 97900.00000
    0.00000878 84400.00000
    0.00001100 53900.00000
    0.00001320 35000.00000
    0.00001540 23900.00000
    0.00001760 15300.00000
    0.00001980 12200.00000
    0.00002200 9060.00000
    0.00002410 6550.00000
    0.00002630 5540.00000
    0.00002850 4090.00000
    0.00003070 3440.00000
    0.00003290 2530.00000
    0.00003510 2210.00000
    0.00003730 1960.00000
    0.00003950 1490.00000
    0.00004170 1240.00000
    0.00004390 938.00000
    0.00004610 860.00000
    0.00004830 743.00000
    0.00005050 652.00000
    0.00005270 550.00000
    0.00005490 427.00000
    0.00005710 339.00000
    0.00005930 282.00000
    0.00006150 268.00000
    0.00006370 194.00000
    0.00006590 208.00000
    0.00006810 171.00000
    0.00007030 131.00000
    0.00007240 106.00000
    0.00007460 125.00000
    0.00007680 76.00000
    0.00007900 66.10000
    0.00008120 52.80000
    0.00008340 63.80000
    0.00008560 23.50000
    0.00008780 42.40000
    0.00009000 34.10000
    0.00009220 33.50000
    0.00009440 18.30000
    0.00009660 21.60000
    0.00009880 17.70000
    0.00010100 14.00000
    0.00010300 10.40000
    0.00010500 10.30000
    0.00010800 10.20000
    0.00011000 6.71000
    0.00011200 0.00000
    0.00011400 3.29000
    0.00011600 6.51000
    0.00011900 0.00000
    0.00012100 0.00000
    0.00012300 0.00000
    0.00012500 0.00000
    0.00012700 0.00000
    0.00013000 0.00000
    0.00013200 0.00000
    0.00013400 0.00000
    0.00013600 2.98000
    0.00013800 2.96000
    0.00014100 0.00000
    0.00014300 0.00000
    0.00014500 0.00000
    0.00014700 0.00000
    0.00014900 0.00000
    0.00015100 0.00000
    0.00015400 0.00000
    0.00015600 0.00000
    0.00015800 0.00000
    0.00016000 0.00000
    0.00016200 0.00000
    0.00016500 0.00000
    0.00016700 0.00000
    0.00016900 0.00000
    0.00017100 0.00000
    0.00017300 0.00000
    0.00017600 0.00000
    0.00017800 0.00000
    0.00018000 0.00000
    0.00018200 0.00000
    0.00018400 0.00000
    0.00018700 0.00000
    0.00018900 0.00000
    0.00019100 0.00000
    0.00019300 0.00000
    0.00019500 0.00000
    0.00019800 0.00000
    0.00020000 0.00000
    0.00020200 0.00000
    0.00020400 0.00000
    0.00020600 0.00000
    0.00020900 0.00000
    0.00021100 0.00000
    0.00021300 0.00000
    0.00021500 0.00000
    0.00021700 0.00000
    0.00022000 0.00000
    0.00022200 0.00000
    0.00022400 0.00000
    0.00022600 0.00000
    0.00022800 0.00000
    0.00023100 0.00000
    0.00023300 0.00000
    0.00023500 0.00000
    0.00023700 0.00000
    0.00023900 0.00000
    0.00024100 0.00000
    0.00024400 0.00000
    0.00024600 0.00000
    0.00024800 0.00000
    0.00025000 0.00000
    0.00025200 0.00000
    0.00025500 0.00000
    0.00025700 0.00000
    0.00025900 0.00000
    0.00026100 0.00000
    0.00026300 0.00000
    0.00026600 0.00000
    0.00026800 0.00000
    0.00027000 0.00000
    0.00027200 0.00000
    0.00027400 0.00000
    0.00027700 0.00000
    0.00027900 0.00000
    0.00028100 0.00000
    0.00028300 1.84000
    0.00028500 0.00000
    0.00028800 0.00000
    0.00029000 0.00000
    0.00029200 0.00000
    0.00029400 0.00000
    0.00029600 0.00000
    0.00029900 0.00000
    0.00030100 0.00000
    0.00030300 0.00000
    0.00030500 0.00000
    0.00030700 0.00000
    0.00031000 0.00000
    0.00031200 0.00000
    0.00031400 0.00000
    0.00031600 0.00000
    0.00031800 0.00000
    0.00032100 0.00000
    0.00032300 0.00000
    0.00032500 0.00000
    0.00032700 0.00000
    0.00032900 0.00000
    0.00033200 0.00000
    0.00033400 0.00000
    0.00033600 0.00000
    0.00033800 0.00000
    0.00034000 0.00000
    0.00034200 0.00000

  • 6 帖子
    7k 浏览
    李东岳

    从代码上解释更好说:

    scalarField U(-phi/patch().magSf()); //其中的phi你要给定(指定通量),然后即可计算出速度U的大小(模) vectorField n(patch().nf()); //面的法向 if (phiName.dimensions() == dimVelocity*dimArea) { // volumetric flow-rate operator==(n*U); //速度 } else if (phiName.dimensions() == dimDensity*dimVelocity*dimArea) { const fvPatchField<scalar>& rhop = patch().lookupPatchField<volScalarField, scalar>(rhoName_); // mass flow-rate operator==(n*U/rhop); //速度

    你看下/combustion/fireFoam/LES/flameSpreadWaterSuppressionPanel的速度边界条件设置。

  • 2 帖子
    2k 浏览
    李东岳

    还没见过教材里面讨论low-Mach-number assumption,气动声学这块我还没研究过 :zoule:

  • 编程时候注意整形和浮点的变化

    1
    1 帖子
    1k 浏览
    李东岳
    Source[kth].ref() += (1 - kth)/(kth + 1)* pow(a[n], kth + 2)*g*w[n];

    上面要改为

    Source[kth].ref() += (1.0 - kth)/(kth + 1.0)* pow(a[n], kth + 2)*g*w[n];

    否则 (1 - kth)/(kth + 1)在kth大于1的时候为0

  • 增大网格数量到两百多万就出现问题

    3
    3 帖子
    3k 浏览
    孟豪龙

    东岳大哥您好,算几十万的网格是没有问题的,我扩展了虚拟机的内存到64g和虚拟内存到10g都不行。 。。也是奇怪

  • Taylor Couette Flow

    1
    1 帖子
    2k 浏览
    S

    请问在OpenFOAM中,如何定义一个轴对称模型来仿真Taylor Couette flow?如何设定wedge边界?谢谢大神!

  • 标量场壁面梯度的处理方式

    8
    8 帖子
    7k 浏览
    fireztwF

    @mr-h 在 标量场壁面梯度的处理方式 中说:

    在温度方程里的拉普拉斯项fvm::laplacian(ka,T) 中 存在ka的梯度的计算。

    此处Ka为volScalarField,那么fvm::laplacian(ka,T)是不是等价于(fvm::grad(ka)&fvm::grad(T)) + ka*fvm::laplacian(T);这两种表达方式的意义一样吗?

  • 3 帖子
    3k 浏览
    L

    @东岳 是类似与MultiRegionFoam的方法吗?存在多套网格分别对应不同的region?这种方法我没试过。我用的求解器是interfoam,现在只是想的是从一套网格上生成一个subMesh,这样绝大部分的网格节点是对应的,求解标量C方程所需要的数据可以通过原始的网格map过来。

  • 1 帖子
    1k 浏览
    G

    图片
    我最近在使用reactingParcelFilmFoam计算水滴与结构表面撞击并形成水膜的过程中,我想往模型中添加一个水滴的收集系数,这个系数需要知道水滴在撞击到结构时的位置坐标和初始的位置坐标,请问有人知道该怎么确定这两个坐标吗?

  • 2 帖子
    2k 浏览
    李东岳

    从代码来看,e表示回弹系数,mu表示一种损耗。e越大,回弹越完全,mu越大,速度被消耗的越大。这些值影响你颗粒撞击壁面的回弹行为。
    你可以手动计算一下,看看U有什么变化

    case PatchInteractionModel<CloudType>::itRebound: { keepParticle = true; active = true; vector nw; vector Up; this->owner().patchData(p, pp, nw, Up); // Calculate motion relative to patch velocity U -= Up; scalar Un = U & nw; vector Ut = U - Un*nw; if (Un > 0) { U -= (1.0 + e_)*Un*nw; } U -= mu_*Ut; // Return velocity to global space U += Up; break; }
  • Solving GPBE

    3
    3 帖子
    2k 浏览
    李东岳

    AFAIK, you are the only one working in this area. Any update?

  • ICEM如何设置AMI滑移边界

    7
    7 帖子
    7k 浏览
    R

    @东岳 好的,明白啦,我试一下。谢谢东岳老师。