Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

千

千里之行

@千里之行
关于
帖子
17
主题
5
群组
0
粉丝
0
关注
0

帖子

最新

  • 动网格还是非惯性参考系?
    千 千里之行

    @yfclark 我也隐隐感觉到非惯性坐标系似乎有什么局限性,但是说不出来。谢谢您的耐心解答、建议和鼓励。


  • 动网格还是非惯性参考系?
    千 千里之行

    @yfclark 十分感谢您的解答。因为目前我准备基于动网格这个路线做点东西,但是有人说完全没必要,用非惯性参考系就行,所以我也十分困惑,一时不知道如何说服别人和说服自己。能否具体举一些有趣的例子呢?十分感谢!


  • 动网格还是非惯性参考系?
    千 千里之行

    对于液舱晃荡这种流动,液舱受迫运动导致舱内流体产生运动。OpenFOAM 当前的求解器是基于惯性参考系,用了刚体运动的动网格技术求解。还有一种方法是在非惯性参考系下求解控制方程,而不需要用到刚体运动动网格技术,即在动量方程右端项加入平移和转动惯性力。请问这两种方法孰优孰劣,为什么 OpenFOAM 选择了前者?


  • compressibleInterFoam 压力方程中关于 psi 的项是如何推导出来的?
    千 千里之行

    @东岳
    谢谢东岳老师,大概明白了,这样就隐式处理了连续性方程里密度对时间的导数项,否则不加这项的话,就是显式处理。这样理解对吗?


  • compressibleInterFoam 压力方程中关于 psi 的项是如何推导出来的?
    千 千里之行

    @东岳
    谢谢东岳老师,我现在知道如何增加一个状态方程类,编写新的 psi 计算值。我想请教一下:

    (alpha1*psi1/rho1) * correction(fvm::ddt(p_rgh))
    

    这个关于 psi 的项乘以 correction 函数,是数学模型理论推导出来的呢,还是出于数值计算的考虑增加呢?


  • compressibleInterFoam 压力方程中关于 psi 的项是如何推导出来的?
    千 千里之行

    各位前辈,请教一个问题。在 multiphase/compressibleInterFoam 求解器中,压力方程里含有关于 psi 的项,我一直不知道这是如何推导出来的,但是其他的项能找到推导的依据。以 OpenFOAM-v1806 为例:

    p_rghEqnComp1 = 
        pos(alpha1)
        *(
            (
                fvc::ddt(alpha1, rho1) + fvc::div(alphaPhi1*rho1f)
                - (fvOptions(alpha1, mixture.thermo1().rho())&rho1)
            )/rho1
            - fvc::ddt(alpha1) - fvc::div(alphaPhi1)
            + (alpha1*psi1/rho1) * correction(fvm::ddt(p_rgh))
        );
    

    其中最后一行的这项关于 psi1 ,psi1 是第 1 相状态方程里的系数,以 OpenFOAM 的 perfectFluid 状态方程为例,

    rho1 = psi1 * p + rho1_ref

    psi1 = 1 / (R * T)

    这里 rho1 是第一相的密度,rho1_ref 是一个基准密度,是常量,从字典里读取。p 是压力场。R 是常数,从字典里读取的。T 是温度场。但是如果状态方程有一个更复杂的形式,比如 rho1_ref 也是和温度有关,是变化的。或者密度和压力没有这样的线性关系。那么这一项该如何考虑呢?如何变化呢?


  • 如何设置运行期自动变化写数据的时间间隔?
    千 千里之行

    @李东岳 还有一个问题请教一下,表达式里可以包含分支 if else 这种结构吗?


  • 如何设置运行期自动变化写数据的时间间隔?
    千 千里之行

    @sungda 今天我还意识到一个问题,我用到了整体运动动网格,当我从新的时刻继续算的时候,fvSolution 字典里的压力参考点 pRefPoint 其实也需要改,因为这个位置变了。OpenFOAM 用的是大地坐标描述运动的计算域。如果运动复杂,这个位置还不好确定呢。


  • 如何设置运行期自动变化写数据的时间间隔?
    千 千里之行

    @李东岳 谢谢,没想到还有这种操作啊,能嵌入数学计算表达式,得好好设计一个表达式。


  • 如何设置运行期自动变化写数据的时间间隔?
    千 千里之行

    @sungda 谢谢,这个方法非常好,我现在就准备这么干啦!


  • 如何设置运行期自动变化写数据的时间间隔?
    千 千里之行

    请教一下各位,我的问题是:
    在 controlDict 里 的 writeInterval 关键字是用来设置写数据的时间间隔。现在我遇到一个算例,网格量很大,在某个时间段内想要很密集的写数据,然后在 paraview 里分析。但是之前和之后不需要这么密集的写数据。如果一直很密集写数据,磁盘没那么大。根据之前试算的结果,我知道了要加密写数据的时间段区间。有什么办法能够让 writeInterval 在我指定的时间区间内变小,然后 OpenFOAM 加密写数据?


  • 求一篇关于 VOF 方法 MULES 的文章
    千 千里之行

    @李东岳 十分感谢东岳老师!
    我是看了 International Journal of Multiphase Flow 期刊上的这篇文章:
    Influence of surface tension implementation in Volume of Fluid and coupled Volume of Fluid with Level Set methods for bubble growth and detachment
    这篇文章可以从下面的链接下载
    https://pan.baidu.com/s/1nwO8cNR
    其中说到 OpenFOAM 用到的 VOF 方法的时候引用了这篇文章,我一看作者是 Weller,所以以为 MULES 和这篇文章相关。


  • 求一篇关于 VOF 方法 MULES 的文章
    千 千里之行

    大家好,我个人感觉关于 OpenFOAM 中的 VOF 方法 MULES 的资料很少,有一篇文章感觉很相关,也被不少文章引用:

    Weller, H.G., 2008. A new approach to VOF-based interface capturing methods for incompressible and compressible flows. Technical Report No. TR/HGW/04.

    好像是一个技术报告,也不知道属于什么期刊,我一直不能下到。如果谁有的话,能否方便共享一下吗?如能这样,感激不尽!!


  • 关于压力场边界更新的实现机制的疑问
    千 千里之行

    @dzw05 哦,懂了,原来如此,十分感谢!!


  • 关于压力场边界更新的实现机制的疑问
    千 千里之行

    @李东岳 哦,明白了,谢谢东岳老师,我再去好好看看相关的代码。那 "calculated" 类型的边界条件对应的类是 calculatedFvPatchField ,但是并没有重新定义虚函数 evaluate,肯定是基类 fvPatchField 的 evaluate 函数被调用了,可是那个 evaluate 函数并没有做什么计算,所以即使调用了场对象的 correctBoundaryConditions 函数,在 calculated 类型的边界也没有发生计算,这样理解对吗?
    另外,经常会遇到这样的边界条件:

    inlet
    {
        type        fixedValue;
        value       $internalField;
    }
    

    这里的 $internalField 是什么意思呢,我认为是这块边界的值取邻近内场的值,但是一直也没有找到代码的依据,并且这样的边界条件和 zeroGradient 又有什么区别呢?


  • 关于压力场边界更新的实现机制的疑问
    千 千里之行

    大家好,我的问题是在计算过程中,压力场的边界何时更新?因为我发现在 multiphase 类的求解器中,compressibleInterFoam 在 pEqn.H 中分别调用速度场和压力场的 corrrectBoundaryConditions 函数来更新与边界相关的值,即

    U.correctBoundaryConditions();
    
    p_rgh.correctBoundaryConditions();
    

    但是 interFoam 在 pEqn.H 中只会调用速度场的 correctBoundaryConditions 函数,不会调用压力场,其他地方也没有,只有

    U.correctBoundaryConditions();
    

    类似的,twoPhaseEulerFoam, reactingTwoPhaseEulerFoam, reactingMultiphaseEulerFoam, cavitatingFoam, compressibleMultiphaseInterFoam 这些求解器都会调用速度场和压力场的 correctBoundaryConditions 函数。但是 twoLiquidMixingFoam, driftFluxFoam, potentialFreeSurfaceFoam, multiphaseEulerFoam, interPhaseChangeFoam, MPPICInterFoam 只会调用速度场的 correctBoundaryConditions 函数,不会调用压力场的。

    我也查看了源代码,目前我掌握到的信息如下:
    GeometricField 类型的 correctBoundaryConditions 函数的定义是

    template<class Type, template<class> class PatchField, class GeoMesh>
    void Foam::GeometricField<Type, PatchField, GeoMesh>::
    correctBoundaryConditions()
    {
        this->setUpToDate();
        storeOldTimes();
        boundaryField_.evaluate();
    }
    

    可以看出具体的操作是交给成员 boundaryField_ 的 evaluate 函数执行的,boundaryField_ 声明如下:

            //- Boundary Type field containing boundary field values
            Boundary boundaryField_;
    

    Boundary 类型是各个边界块的集合。每一个边界块根据不同的边界条件类型对应有不同的边界条件类,比如 zeroGradient 类型的边界条件对应 zeroGradientFvPatchField 类,他们共同的基类是 fvPatchField,evaluate 函数是这个派生体系的虚函数,不同的边界条件派生类会重新定义自己的这个虚函数,实现了多态,从而实现不同的边界更新方式。而 boundaryField_ 的 evaluate 函数会遍历各个边界块,调用各自的 evaluate 函数实现更新。代码如下:

    template<class Type, template<class> class PatchField, class GeoMesh>
    void Foam::GeometricField<Type, PatchField, GeoMesh>::Boundary::
    evaluate()
    {
    ......
            forAll(*this, patchi)
            {
                this->operator[](patchi).evaluate(Pstream::defaultCommsType);
            }
    ......
    }
    

    我想请教各位,如果没有调用压力场的 correctBoundaryConditions 函数,那么压力场是怎么更新边界的呢?我所指定的不同的压力边界条件,又是如何生效的呢?问题有点长,十分感谢您的耐心阅读与解答!!


  • 怎么让交界面更加平滑
    千 千里之行

    @wwzhao 动网格主要分两种,一种是整体做刚性运动,网格单元之间没有相对位移。另一种是单元有变形,有拓扑变化,或者有动态增减网格。 isoAdvector 应用于第二类动网格可能需要一些改动,那么第一类动网格呢?我目前正在准备研究这个,想请教一下您对此的看法。

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]