Skip to content

OpenFOAM

OpenFOAM交流区

5.3k 主题 31.7k 帖子
  • 5 帖子
    5k 浏览
    C

    感谢分享!

  • foamDataToFluent问题

    1
    1 帖子
    1k 浏览
    S

    请问foamDataToFluent如何用来转换组分量 比如CO2 H2O等转换 U P等都没问题 但是species fluent一直读不出来
    https://github.com/OpenFOAM/OpenFOAM-2.4.x/blob/master/applications/utilities/postProcessing/dataConversion/foamDataToFluent/fluentUnitNumbers.txt

  • CFD中的大涡模拟

    1
    1 帖子
    3k 浏览
    李东岳

    测试排版用

    引言

    湍流运动是目前计算流体力学中困难最多因此也最活跃的领域之一。当湍流存在,则住在其他相关的流动现象,并引致能量耗散、混合以及传热。没有三维的涡,则没有真正的湍流,因为只有在三维的流动中,涡旋才能进行伸展并产生新的涡旋。目前可采用的数值计算方法分为三类:直接模拟(Direct Numerical Simulation,DNS)、大涡模拟(Large Eddy Simulation,LES)和雷诺时均法(Reynolds-averaged Navier–Stokes,RANS)。RANS经过长期的发展,已经非常成熟。但RANS通过将速度进行平均后,并不能捕获湍流中的小涡结构。同时,这些小涡基本是各项同性的。另一方面,从主流中抽取能量的大涡却是各向异性,并且其和计算域的几何、边界、体积力高度关联。在使用RANS的时候,整个流场中必须使用同一个湍流模型对各种尺度下的湍流进行解析,但通常大涡和小涡的表现是不同的。因此研究学者对一种更完善的模型进行了探索。

    不同于RANS,LES对大涡进行解析的同时对小涡进行模化。LES认为大涡直接受边界条件的影响因此对其解析,但小涡是各项同性的因此他们表现相同,可以进行模化。由于LES把小涡进行了模化,因此最小的网格单元需要大于Kolmogorov尺度(最小的涡旋尺度)。同时LES的时间步可以比DNS大的多。因此,对于给定的计算资源,相对于DNS,LES可以计算更大雷诺数的算例。另外,不同于RANS中平均的概念,LES使用的是一种空间滤波技术。LES模型的概念如下:

    首先要确定一种滤波函数和截止尺度$\Delta$。这样,就可以对所有大于截止尺度的涡进行非稳态计算;

    使用滤波函数对依时变量进行空间滤波操作,在这一步,小于截止尺度的涡被过滤掉;

    在解析大涡和模化小涡的数学操作中,会产生一个亚格子尺度应力项(Sub-grid-scale Stress,SGS),亚格子尺度应力需要通过SGS模型来模化;

    在LES中,截止尺度是用来表明“多大的涡才算大涡”的概念。其可以为任意大小,但是选择比网格还要小的截止尺度是没有意义的。在笛卡尔网格下,最简单的截止尺度这样计算:
    \begin{equation}
    \Delta=\sqrt[3]{\delta x \delta y \delta z}
    \end{equation}
    其中$\delta x$等为笛卡尔网格下网格单元的边长。其他不同的截止尺度计算方法还有最大边长法、普朗特混合长法等。

    方程与模型 滤波N-S方程

    笛卡尔坐标下的连续性方程为:
    \begin{equation}
    \frac{\partial \rho}{\partial t}+\nabla \cdot(\rho \mathbf{U})=0
    \end{equation}
    对$\nabla \cdot(\rho \mathbf{U})$进行滤波后有滤波连续性方程:
    \begin{equation}
    \frac{\partial \rho}{\partial t}+\nabla \cdot(\rho \mathbf{\bar{U}})=0
    \end{equation}
    其中$\mathbf{\bar{U}}$为滤波后的速度。且有:
    \begin{equation}
    \mathbf{U}=\mathbf{\bar{U}}+\mathbf{U'}
    \end{equation}
    其中$\mathbf{U'}$为残余速度,且$\mathbf{U'} \neq 0$。下图表示的是一个对$x$分量速度进行高斯滤波之后的滤波速度分量和残余速度分量的示意图。
    U.jpg
    另外,有不可压缩动量方程为:
    \begin{equation}
    \frac{\partial \mathbf{U}}{\partial t}+\nabla \cdot (\mathbf{U} \mathbf{U})=-\nabla \frac{p}{\rho}+\nabla \cdot(\nu \nabla \mathbf{U})
    \label{mom}
    \end{equation}
    同理有:
    \begin{equation}
    \frac{\partial \mathbf{\bar{U}}}{\partial t}+\nabla \cdot (\overline{\mathbf{U} \mathbf{U}})=-\nabla \frac{\bar{p}}{\rho}+\nabla \cdot(\nu \nabla \mathbf{\bar{U}})
    \label{momF}
    \end{equation}
    在方程\eqref{momF}中,除了待求的$\bar{\mathbf{U}}$和$\bar{p}$外增加了一个未知量$\overline{\mathbf{U} \mathbf{U}}$。为了将问题简化,把方程\eqref{momF}的第二项进行变化:
    \begin{equation}
    \nabla \cdot (\overline{\mathbf{U} \mathbf{U}})=\nabla \cdot (\mathbf{\bar{U}} \mathbf{\bar{U}})+\left(\nabla \cdot (\overline{\mathbf{U} \mathbf{U}})-\nabla \cdot (\mathbf{\bar{U}} \mathbf{\bar{U}})
    \right)
    \label{W}
    \end{equation}
    将方程\eqref{W}带入到方程\eqref{momF}中有:
    \begin{equation}
    \frac{\partial \mathbf{\bar{U}}}{\partial t}+\nabla \cdot (\mathbf{\bar{U}} \mathbf{\bar{U}})=-\nabla \frac{\bar{p}}{\rho}+\nabla \cdot(\nu \nabla \mathbf{\bar{U}})
    -\left(\nabla \cdot (\overline{\mathbf{U} \mathbf{U}})-\nabla \cdot (\mathbf{\bar{U}} \mathbf{\bar{U}})
    \right)
    \label{momFF}
    \end{equation}
    对比最初的的N-S方程\eqref{mom},方程\eqref{momFF}中的最后一项$-\left(\nabla \cdot (\overline{\mathbf{U} \mathbf{U}})-\nabla \cdot (\mathbf{\bar{U}} \mathbf{\bar{U}})
    \right)$为滤波操作产生的特殊项。对其展开有:
    \begin{equation}
    \nabla \cdot (\mathbf{\bar{U}} \mathbf{\bar{U}})=\nabla \cdot \left[\begin{matrix}
    \bar{u}_1\
    \bar{u}_2\
    \bar{u}_3
    \end{matrix}\right][\bar{u}_1, \bar{u}_2, \bar{u}_3]=\nabla \cdot \left[
    \begin{matrix}
    \bar{u}_1 \bar{u}_1 & \bar{u}_1 \bar{u}_2 & \bar{u}_1 \bar{u}_3\
    \bar{u}_2 \bar{u}_1 & \bar{u}_2 \bar{u}_2 & \bar{u}_2 \bar{u}_3\
    \bar{u}_3 \bar{u}_1 & \bar{u}_3 \bar{u}_2 & \bar{u}_3 \bar{u}_3
    \end{matrix}
    \right]
    \label{T1}
    \end{equation}

    \begin{equation}
    \nabla \cdot (\overline{\mathbf{U} \mathbf{U}})=\nabla \cdot \overline{\left[\begin{matrix}
    u_1\
    u_2\
    u_3
    \end{matrix}\right][u_1, u_2, u_3]}=\nabla \cdot \left[
    \begin{matrix}
    \overline{u_1 u_1} & \overline{u_1 u_2} & \overline{u_1 u_3}\
    \overline{u_2 u_1} & \overline{u_2 u_2} & \overline{u_2 u_3}\
    \overline{u_3 u_1} & \overline{u_3 u_2} & \overline{u_3 u_3}
    \end{matrix}
    \right]
    \label{T2}
    \end{equation}

  • OpenFoam分区域计算

    4
    4 帖子
    4k 浏览
    孟豪龙

    @CarmeloSun 还没有

  • fsiFoam: flux requested but p not specified in fluxRequired

    4
    4 帖子
    5k 浏览
    李东岳

    @ahujeffery 因为一般只有p方程需要p.flux() 目前新版本openfoam已经不需要这个了

  • 求助:关于VOF求解!

    3
    3 帖子
    3k 浏览
    S

    您好,我最近也在做这方面的工作,但是遇到了一些问题想向您请教下可以吗?

  • OpenFOAM如何进行数据转换以便进行比大小

    4
    4 帖子
    3k 浏览

    刚刚尝试了下将double型变量赋值给一个新的体标量场,然后比较两个体标量场的大小就可以通过编译了:chitang:

    b =mesn.C().component(vector::Y)/a;//b被声明为一个体标量场记录距离壁面的无量纲距离,a为特征长度 Prt = 1.25;//Prt也是被声明为一个体标量场,这里先把Prt当做了一个中间变量,Prt为我研究中的湍流普朗特数,其对流体温度梯度影响很大,应当是一个函数而非常数。 if( b <= Prt ) { Prt = 0.45; } else { Prt=4.75; }

    今晚先算用编译好的求解器算一遍对不对,结果好的话,明后天再放上来。

  • openFoam 4.1在超算CentOS Linux release编译问题

    7
    7 帖子
    4k 浏览
    A

    @bestucan 是的,谢谢大佬:xinxin2:

  • openFoam如何选择合适的壁面函数

    2
    2 帖子
    2k 浏览
    X

    @Naruto foam-extend-4.1 版本带有几个 Non-Equilibrium Wall Function,可以参考。

    还有一个参考是这篇硕士论文:http://repozitorij.fsb.hr/7620/1/Šutalo_2017_diplomski.pdf

  • 8 帖子
    6k 浏览
    H

    @李东岳 在 有没有utility或者force,能使颗粒在RANS模拟中像LES那样发散开来 中说:

    我们之前详细的研究过这个东西 目前DPM这面的turbulent dispersion force结果都不太好 你可以尝试一下

    想请教一下李老师,在这个stochasticDispersionRAS.C的代码中,dt代表的是什么,并没有看出它的出处在哪。。
    从结果上来看,这个dt好像不是模拟中的timestep,它的值对于每个颗都不一样。

    // Member Functions //- Update (disperse particles) virtual vector update ( const scalar dt, const label celli, const vector& U, const vector& Uc, vector& UTurb, scalar& tTurb );
  • 6 帖子
    5k 浏览
    M

    @zousiyu 好的非常感谢您,我试一下。

  • 在碰撞模型里怎么调用网格粒子浓度?

    3
    3 帖子
    3k 浏览
    zheZ

    @李东岳 谢谢东岳老师的回复。这个cloud的类型是在KinematicCloud.H 中对cloudType的一步细分。

    //- Type of cloud this cloud was instantiated for typedef CloudType cloudType; //- Type of parcel the cloud was instantiated for typedef typename CloudType::particleType parcelType; //- Convenience typedef for this cloud type typedef KinematicCloud<CloudType> kinematicCloudType;

    无论我保不保留这个,都显示一样的error。这个expected primary-expression before '.' token是什么意思啊?少了什么吗?

  • 求一个EMMS模型的代码

    1
    1 帖子
    1k 浏览
    L

    如题,最近正在学习EMMS模型,没怎么搞明白,希望大神指导

  • paraview怎么输入实验数据

    5
    5 帖子
    4k 浏览
    李东岳

    openfoam搭配gnuplot也很方便

  • openfoam变时间步长dt的怎么理解

    3
    3 帖子
    3k 浏览
    L

    下午看资料也有跟你一样的困惑,不知道你说的是不是adjustTimeStep,还是只是如何改变时间步长哦,如果是adjustTimeStep的话你可以看看这个图片上的说法!微信图片编辑_20201208204436.jpg

  • 17 帖子
    12k 浏览
    M

    @mohui 您好,请问您解决这个问题了吗?我想给同种液滴的两个液滴染色,便于观察融合过程中的各个形态变化,求指教。

  • 利用openfoam做液滴碰撞,给液滴染色

    9
    9 帖子
    8k 浏览
    M

    @wyt 您好,请问您这个是同种液体的两个液滴吗?我想给同种液滴的两个液滴染色,便于观察融合过程中的各个形态变化,求指教。

  • 38 帖子
    29k 浏览
    麦迪文

    @aaaachenjian 模拟是在微重力环境下,上下壁面有个温差,在自由面上加个热毛细力,已经放弃用VOF方法了,像这种变形较小的直接挪网格,这是算法天生问题不太好解决

  • 关于射流!

    4
    4 帖子
    4k 浏览
    李东岳

    @liujunCFD 在 关于射流! 中说:

    各位前辈在用OF处理两股射流相互作用时的思路

    貌似不需要特殊处理

  • 网格生成与合成的问题

    4
    4 帖子
    4k 浏览
    yhdthuY

    WeChat8db3756fb66113a48305c51893ed1215.png

    模型还是很简单的,就是一个柱体+方形,但是我用icem画必须要用两个O grid,网格过渡很不好(至少我看起来很难受),不知有什么其他思路?