Skip to content

OpenFOAM

OpenFOAM交流区

5.3k 主题 31.8k 帖子
  • OpenFOAM与extend命令区别有前辈总结吗

    9
    9 帖子
    11k 浏览
    Y

    @流卜 的确是接口差别很大,目前准备把extend上的部分内容移到v1706,感觉崩溃了快

  • 新手运行buoyantPimpleFoam出错。。

    3
    3 帖子
    4k 浏览
    O

    @李东岳 0_1515462127425_2018-01-09 09-40-58屏幕截图.png
    我按照您说的,我把整个算例搬过来,只是改了一下0文件里面各个变量,在system文件加了几个字典文件,结果又出现了上图的问题。我怕是我哪个地方,出错了,又重新操作了一遍,还是这个问题。我又去运行了一下原来的算例,没有出现任何报错。我看了一下,除了data这个我没找到,其他的都能找到。

  • 不建议开启`体积力面插值`算法

    4
    4 帖子
    5k 浏览
    李东岳

    对于单气泡的曳力,升力更倾向于是一种面力。但是由于这个面不是网格单元的面。处理起来存在一定困境。我们把这些力当做体积力?有一些模拟结果表明存在震荡。插值做面力(类似基金会这种处理)?但是结果是错的。

    需要深入研究力的处理方式。

  • 关于法向复合边界条件

    3
    3 帖子
    3k 浏览
    李东岳

    可以使用inletOutlet或者outletInlet,满足你的要求。

  • pEqn.H中phiHbyA计算修正项的问题

    8
    8 帖子
    11k 浏览
    李东岳

    非常感谢 @程迪 的讨论,我重新回顾一下看看能不能分享一些看法。

    有关ddtPhi()这个函数的形式大家已经明白了,更重要的是明白为什么要这么做。MULES限制器和ddtPhi都是Henry Weller发明的,MULES限制器的植入以及原因目前都清楚了。但是ddtPhi的原因尚不明了。

    @dyj19901127
    宇老师大作被翻出来了,哈哈

  • 关于耦合传热求解器的几个问题

    4
    4 帖子
    6k 浏览
    李东岳

    我大略看了一下:

    #include "createFluidMeshes.H" #include "createSolidMeshes.H"

    划分两个网格的时候就存在了边界场,在求解fluid之后,边界场信息会更新,你不需要显性的传递边界场。

    fvMesh& mesh = solidRegions[i]; solidThermo& thermo = thermos[i]; tmp<volScalarField> trho = thermo.rho(); const volScalarField& rho = trho(); tmp<volScalarField> tcp = thermo.Cp(); const volScalarField& cp = tcp();

    这几行代码自动包含边界场,其中给固体的是网格共享的边界场信息。

    应该是这个思路, 你可以确认下。

  • 代码实现?

    15
    15 帖子
    17k 浏览
    I

    @程迪
    rhoE应该是$\frac{\partial \rho e}{\partial t} + \frac{\partial \rho K}{\partial t}$
    phiEp应该是$\nabla \cdot (\rho \mathbf{U} e)+\nabla \cdot (\rho \mathbf{U} K)+\nabla\cdot(p\mathbf{U})$
    sigmaDotU应该是$\nabla \cdot(\tau \cdot \mathbf{U})$
    感觉拆不了。

    另外,请问对定常的求解器也有时间步限制吗?如果没有的话,是不是定常的求解器中,比如buoyanySimpleFoam,就不用管隐式还是显式了?

  • 对于Open FOAM 模拟波浪的一些思考

    17
    17 帖子
    21k 浏览
    winsway_zeroW

    @lxjcfd
    同求第三篇文献,在网上确实找不到。

  • jumpCyclic边界条件的问题

    3
    3 帖子
    4k 浏览

    @liuyf
    截面jump是 p(x=0) == p(x=1) + dp
    截面两侧单位jump 是 p(x=0+dx/2) == p(x=1-dx/2) + dp

    边界网格越粗,这个差异应该会越大吧。

  • LES模型中delta的选择

    3
    3 帖子
    4k 浏览
    J

    楼主现在有没有做过delta的测试?

  • 6 帖子
    7k 浏览
    J

    @李东岳 谢谢东岳老师,明天再试一下

  • cavitatingFoam的方程

    2
    2 帖子
    3k 浏览

    @搬运工不好当 您好,请问您对cavitatingFoam研究的怎么样?可以指教一下吗?

  • 如何用Paraview显示face label?

    3
    3 帖子
    4k 浏览
    L

    你可以先用topoSet的nearestToPoint生成pointSet,再由pointSet生成faceSet,在生成的若干面里面剔除无关的面即可。

  • OpenFOAM不同类型网格的计算速度

    6
    6 帖子
    7k 浏览

    @李东岳
    工程上有意义的是达到指定误差的计算代价,一般理论上认为误差可以从某种定义的残差推算出的不确定来衡量,时间以taubench用25000网格迭代10步作为1个时间单位来衡量。

    这样的假设下做横向比较是可能的。但是,具体情况嘛,呵呵。湍流模型的不确定度就说不清楚。

  • OpenFOAM中的空化模拟?

    6
    6 帖子
    8k 浏览

    @yhdthu 好的,多谢您的回答

  • source pack在unbuntu安装问题

    2
    2 帖子
    3k 浏览
    李东岳

    我猜测你这个是源代码没写对,或者拷贝复制的时候丢了代码,undefined reference这种错误只是在编译类后捆绑到求解器的时候函数没定义导致。可能你代码里面有些函数代码块丢失了。

    以上只是猜测,因为不清楚你安装的详细过程不能确诊。

  • MULES, CMULES and IMULES 测试

    13
    13 帖子
    16k 浏览
    李东岳

    @金石为开
    等回德国我回复你。MULES这个2018年应该可以写个解析出来。2016年就在计划中,但是有别的事情要搞。

  • 算例初始条件设置求助!

    10
    10 帖子
    11k 浏览
    tidedrinkerT

    @txwwbz 建议你把错误信息贴上来,你的图片我只能看见一张,另外C指的是什么?

  • solveSegragated的问题?

    2
    2 帖子
    4k 浏览

    哦,

    diag() = saveDiag;//恢复diag

    是在括号之前的,所以每次的修改不会叠加。

    之前理解错误的一点是所有的边界有关的系数都是放在internalCoeffs和boundaryCoeffs中的,不仅仅是coupled BC。从初始化时候的size可以看出来。

    template<class Type> Foam::fvMatrix<Type>::fvMatrix ( const GeometricField<Type, fvPatchField, volMesh>& psi, const dimensionSet& ds ) : lduMatrix(psi.mesh()), psi_(psi), dimensions_(ds), source_(psi.size(), Zero), internalCoeffs_(psi.mesh().boundary().size()), //和边界的face数大小一样。 boundaryCoeffs_(psi.mesh().boundary().size()), faceFluxCorrectionPtr_(nullptr) { //...

    不过非耦合的应该是internalCoeffs放比例系数,boundaryCoeffs放源项,而耦合的BC是internalCoeffs放owner的系数,boundaryCoeffs放的另一侧单元的系数。从addBoundarySource()的源代码可以看出。

    template<class Type> void Foam::fvMatrix<Type>::addBoundarySource ( Field<Type>& source, const bool couples ) const { forAll(psi_.boundaryField(), patchi) { const fvPatchField<Type>& ptf = psi_.boundaryField()[patchi]; const Field<Type>& pbc = boundaryCoeffs_[patchi]; if (!ptf.coupled())//非耦合边界,只有owner,另一侧没有单元,pbc存的是边界源项。 { addToInternalField(lduAddr().patchAddr(patchi), pbc, source); } else if (couples)//耦合边界,如果couples==true, 另一侧有单元,pbc存的是另一侧单元的系数。 { const tmp<Field<Type>> tpnf = ptf.patchNeighbourField(); const Field<Type>& pnf = tpnf(); const labelUList& addr = lduAddr().patchAddr(patchi); forAll(addr, facei) { source[addr[facei]] += cmptMultiply(pbc[facei], pnf[facei]); } } } }
  • Lagrangian怎么求得面上的粒子速度?

    2
    2 帖子
    3k 浏览
    O

    好吧,既然没有人回答,我就把我的笨办法贴出来
    foamToVTK-->paraview-->打开算例文件和粒子Cloud文件-->File/Save Data-->得到每个时间步每个粒子信息.csv-->用python提取有用信息