OpenFOAM

4.5k Topics 26.4k Posts
  • 4 Posts
    2k Views

    Reference temperature

    参考温度,因为这个求解器调用了B假定:http://dyfluid.com/docs/energy.html

    Pr和Prt该怎么取?

    http://www.cfdbaike.com/doku.php#prandtl_number

    alphat是什么意思

    同上

    为什么这个算例里面0文件夹下p的壁面不取zeroGradient?

    因为p是从p_rgh计算出来的

  • 4 Posts
    2k Views

    我看了下,确实不是连续的。在ManualInjection.C文件中:

    template<class CloudType> Foam::scalar Foam::ManualInjection<CloudType>::timeEnd() const { // Injection is instantaneous - but allow for a finite interval to // avoid numerical issues when interval is zero return ROOTVSMALL; }

    我看了一下,可以用cellZoneInject:

    Description Injection positions specified by a particle number density within a cell set. User specifies: - Number density of particles in cell set (effective) - Total mass to inject - Initial parcel velocity Properties: - Parcel diameters obtained by PDF model - All parcels introduced at SOI

    你试试这个?

    PS. 你需要用topoSet做一个cellSet出来toturial里面有

  • 4 Posts
    2k Views

    @zhangxc0223 可以用cyclic边界

  • 3 Posts
    2k Views

    @东岳 成功了,谢谢东岳老师了

  • tangential surface tension

    8 Posts
    3k Views

    @东岳
    在interfaceProperties.C中编程如下
    fvc::interpolate(fvc::grad(sigma) - fvc::grad(alpha)*(fvc::grad(alpha)&fvc::grad (sigma))*mag(fvc::grad (sigma))) & mesh.Sf()
    将此项添加到速度和压力方程。其中当计算压力项时发散了。

  • LES模拟

    11 Posts
    5k Views

    @东岳 好的,明白了。谢谢李老师!

  • 白算一星期哟

    1 Posts
    865 Views
    //- Breakage kernel SBre_[kth].ref() += breakagePtr_->g()[i]()*weis_[i] *( DSDPtr_->beta(abs_[i], kth)() - pow(abs_[i], kth) ); //- DSD TO DO implemented //- Coalescence kernel if (coalescence_) { for (int j

    上周五自己做的评论,DSD函数还没植入,周一来的时候完全忘了。吭哧吭哧算了好几天,感觉没有破碎的效果呢?

    检查代码发现函数还没植入,返回的0..

  • 4 Posts
    2k Views

    对于不可压缩流动,密度/压力的大小是无关紧要的。重要的是压力差。因此你不需要保证求解的密度是你要的密度。

    \begin{equation}
    \frac{\partial \rho \mathbf{U} }{\partial t}+\nabla \cdot \left(\rho \mathbf{U} \mathbf{U} \right)-\nabla \cdot \left(\mu \nabla \mathbf{U} \right)=-\nabla p
    \label{NS2}
    \end{equation}

    比如这个方程,如果密度不变,你直接除掉密度就可以。因此在不可压缩求解器中你不需要设置密度的大小

  • 2 Posts
    1k Views

    我目前不清楚怎么用paraview处理这个
    但我感觉paraview应该可以弄,可能你得外挂paraview的代码脚本,我不太熟悉这个

  • of-v1706中的IsoAdvector

    25 Posts
    13k Views

    我也忘了..

  • 7 Posts
    3k Views

    这个site是什么意思

    目前我也不清楚 知道了可以告诉我一下 :mihu:

  • 11 Posts
    8k Views

    @youmengtian 能请教一下你是怎么测试tut中的算例的吗?我计算算例的时候先用scalarTransportFoam计算出一个时间段的结果,再使用PODSolver就报错了。请问你是怎么计算的呀

  • MRF是怎么回事

    3 Posts
    2k Views

    @东岳 谢谢东岳老师

  • BuoyantPimpleFoam 求解问题

    6 Posts
    2k Views

    @东岳 谢谢东岳老师!

  • 7 Posts
    4k Views

    分离区大小的问题一般是和粘性有关。看一下用的是什么湍流壁面函数,个人经验,湍流壁面函数对分离区的预测通常是不准确的。我计算的时候一般y+小于1,不采用壁面函数(当然在openfoam里是所谓的低雷诺数模型)。

  • 2 Posts
    1k Views

    不太清楚这个,只能建议看看源文件了..

  • p_rgh = p - rho*gh的目的是什么?

    3 Posts
    2k Views

    @cfdngu 这是哪篇文献,想拜读一下:chitang:

  • 热物性的状态方程在哪编译的?

    4 Posts
    2k Views

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

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

  • 1 Posts
    1k Views

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

    找到 "设置 "-"应用和功能" -下翻打开 "相关设置"下的"程序和功能"--在左边点击 "启用或关闭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 Posts
    3k Views

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

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

    3 Posts
    2k Views
    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 Posts
    2k Views

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

  • totalpressure源码

    3 Posts
    2k Views

    @东岳 谢谢

  • twoPhaseEulerFoam下流化床算例

    2 Posts
    1k Views

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

  • 10 Posts
    4k Views

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

  • 2 Posts
    1k Views

    不好意思 数据在这里
    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 Posts
    4k Views

    从代码上解释更好说:

    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 Posts
    1k Views

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

  • 1 Posts
    755 Views
    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 Posts
    2k Views

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

  • Taylor Couette Flow

    1 Posts
    908 Views

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

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

    8 Posts
    3k Views

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

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

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

  • 3 Posts
    2k Views

    楼主问题解决了么?我也遇到类似问题,求解决办法。谢谢!

  • 3 Posts
    1k Views

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

  • 1 Posts
    788 Views

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

  • 2 Posts
    1k Views

    从代码来看,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 Posts
    2k Views

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

  • ICEM如何设置AMI滑移边界

    7 Posts
    3k Views

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

  • 15 Posts
    9k Views

    @东岳 老师,您好。我目前在CFD中文网只发了一封求助帖。但因帖子中涉及到我们课题组提出的在某方面研究的新结构模型,目前还未申请专利和发表论文。为防止我们的结构创意被别人抢先用去,麻烦您把我目前唯一的这一封帖子给删了。发帖时是我有欠考虑,由此给您带来的麻烦,我十分抱歉!!谢谢您,麻烦了!!!

    已删除

  • 5 Posts
    3k Views

    我在用interFoam时,笛卡尔网格可以得到合理的计算结果。但换成非结构网格(prism之类)后,计算虽没有发散,但界面有问题,请问有什么需要改进的地方吗?@东岳 @tidedrinker

  • Paraview error无法读取

    2 Posts
    1k Views

    无动网格,parcel量200000,k-epsilon,sprayFoam,spraycloud,solver和边界未进行任何其他编译

  • sample查看某一截面的massflux

    5 Posts
    2k Views

    @东岳 好滴:xinlei: :xiezuoye:

  • interfoam 两个气泡重心位置

    3 Posts
    2k Views

    同问,重心的位置怎么求,,,

  • 4 Posts
    2k Views

    @东岳 谢谢老师解答~

  • 3 Posts
    2k Views

    @东岳 感谢东岳老师的回答。

    我参考了相关文献,low-Mach-number assumption 应该是忽略了压力波动,使得密度、焓等变量与压力波动无关。

    那是不是意味着问题还是属于可压缩的呢?论文里面提到:

    With these assumptions, the compressible energy equation is greatly simplified so that the resulting low-Machnumber equations are represented in tensorial notations as follows:

    然后就是上面的三个控制方程。

    那上面有关DNS的问题老师了解吗?

    谢谢!

  • 关于dns的几个小问题

    5 Posts
    3k Views

    把文件里面的 simulationtype 设置成 laminar,网格足够密,时间步长足够小,是不是就算是DNS呢?

    should be quasi-DNS

    代码里面turbulence->divDevRhoReff(U)以及turbulence->alphaEff()这些湍流相关的项,会不会对DNS直接求解NS方程的方法造成影响?

    如果设置为层流,turbulence->divDevRhoReff(U)直接返回层流项
    因此不会有影响

  • 3 Posts
    1k Views

    @wwzhao 谢谢,sorry,没有仔细搜索,建议删帖

  • OpenFOAM小讲座,有人感兴趣么?

    2 Posts
    1k Views

    人找到了

  • 可压缩状态方程

    5 Posts
    3k Views

    @东岳 在 可压缩状态方程 中说:

    可能是液体的压力和压强关系较大

    我试过了,计算时这个方程可以考虑液体可压缩性并且结果也可以接受,本来我还以为有什么流体力学的理论给出的这个公式呢,谢谢东岳老师~

  • 3 Posts
    2k Views

    @东岳 谢谢东岳老师,确实好使。
    只不过我在HPC上不能改标准求解器,还需要自定义一个myDPMFoam才能编译,运行的时候还需要定义div(alphaPhic,k.air)。研究好长时间才明白……