Skip to content
  • pressureReference

    OpenFOAM
    6
    0 赞同
    6 帖子
    7k 浏览
    W

    @evensun

    我猜你的疑问应该是,为什么类似下面这段代码编译器会报错?

    1 pressureReference pressureReference(p, simple.dict()); 2 pressureReference pressureReference(pf, simple.dict());

    这两条语句有4个pressureReference,我分别编号为1, 2, 3和4号。

    编译器运行到第一行代码时,假设当前函数体内没有声明pressureReference,编译器就会首先去全局域(global )里寻找pressureReference是什么,当找到pressureReference的声明,发现是个类时,编译器把它(1号)解析为一个类(class)。 编译器继续运行,遇到2号pressureReference,编译器主动构造类型为pressureReference(1号)的对象pressureReference(2号)。
    注意:这两个名称一样,编译器会怎么做?当前作用域里的pressureReference(2号)会把全局域(global)里的pressureReference(1号)隐藏掉,1号就发挥不了作用了。也就是说,在此后的作用域里pressureReference只是个对象,只发挥2号pressureReference的作用。 编译器继续运行,遇到第二行的3号pressureReference,此时编译器将这个pressureReference解析为一个对象(2号)。 编译器最后发现4号pressureReference,这是什么,3号对象后面一个4号对象,蜜汁操作,编译器理解不了,编译就失败了。

    那如果我一定要让3号pressureReference发挥类(class)的作用(像1号pressureReference一样),有没有办法?
    有的。在第二行代码的3号前加作用域解析运算符(::),编译器就会去找全局(global)的pressureReference声明了,像上面的第一步一样,然后把3号解析为类(class),再把4号理解为对象。编译就能通过了。
    有兴趣可以试试。

    1 pressureReference pressureReference(p, simple.dict()); 2 ::pressureReference pressureReference(pf, simple.dict());
  • Word里面你们怎么打公式

    Algorithm
    21
    0 赞同
    21 帖子
    33k 浏览
    S

    aurora,可以在word里用latex

  • 0 赞同
    3 帖子
    3k 浏览
    华鸟

    @李东岳 感谢李老师的解答!老师,我用的也是openfoam8,截取代码的时候没全截取给您带来误解了,抱歉。我是将代码添加在了writePositions()函数的最前面,如下:

    void Foam::functionObjects::movingInterfaceHeight::writePositions() { scalar time = time_.value(); locations_[0][0] = 0.5 + 0.001*sin(5.3*time); locations_[0][1] = 0; locations_[0][2] = 0.5; const uniformDimensionedVectorField& g = mesh_.lookupObject<uniformDimensionedVectorField>("g"); const vector gHat = g.value()/mag(g.value()); const volScalarField& alpha = mesh_.lookupObject<volScalarField>(alphaName_); autoPtr<interpolation<scalar>> interpolator ( interpolation<scalar>::New(interpolationScheme_, alpha) );

    writePositions()函数下,最前面的两行即为添加的代码,后来我将整个interfaceHeight工具的代码复制了重新构建了一个“movingInterfaceHeight”工具,重新编译后问题解决了。

    按照老师您说的,将其添加在const point p = locations_[li] - gHat*hIL的定义中存在一定的问题:

    // Position of the interface const point p = locations_[li] - gHat*hIL;

    其中的locations_[li]为三维坐标点,point p = locations_[li] - gHat*hIL对xyz坐标均进行了计算,按照我的简谐运动规律$\lambda=0.001sin(5.0498t)$,仅x坐标发生改变,y与z应在坐标不变的情况下完成```point p``的计算,是否可以修改成以下代码:

    // Position of the interface const point p = locations_[li]; //首先定义一个point p scalar time = time_.value(); //分别对p的xyz坐标进行计算 p.x() = 0.5 + 0.001*sin(5.0498*time) - gHat*hIL; p.y() = 0 - gHat*hIL; p.z() = 0.5 - gHat*hIL;

    感谢李老师指导!

  • 污染物浓度扩散的边界条件设定?

    OpenFOAM
    3
    0 赞同
    3 帖子
    4k 浏览
    Z

    @李东岳 好的,谢谢李老师

  • 非牛顿流体交叉扩散项的离散

    Algorithm
    8
    0 赞同
    8 帖子
    11k 浏览
    G

    @东岳 李老师,我没推出来

  • 搅拌反应器边界层网格划分

    Meshy
    8
    0 赞同
    8 帖子
    13k 浏览

    @alex 看到你的网格了,感谢分享,感觉划分的非常不错,好厉害!学习了!

  • 0 赞同
    3 帖子
    2k 浏览
    X

    @李东岳 非常感谢,最近一直卡在这个问题上

  • 0 赞同
    3 帖子
    6k 浏览
    李东岳

    @ibelief 可以 发呗

  • 有人会画三维柱状图么?

    CFD彩虹条
    12
    0 赞同
    12 帖子
    14k 浏览
    V

    @李东岳 李老师,可能是您python版本的问题,我用的是python3.8,您应该也有python3但是系统调用的是python2.7,可以试试python3 plot.py运行。
    坐等大佬改我的代码:chouchou:

  • 这是上述问题的图片

    Fluent
    2
    0 赞同
    2 帖子
    4k 浏览
    I

    后来解决的怎么样?

  • 0 赞同
    2 帖子
    5k 浏览
    I

    没有遇到过,您探索一下,然后总结一下岂不是更好!
    功德无量!

  • 多相液体表面网格动态加密

    Meshy
    4
    0 赞同
    4 帖子
    7k 浏览
    李东岳

    就是两种液体接触的界面部分就没有办法加密啊?

    不就是界面(表面)么?

  • 0 赞同
    3 帖子
    6k 浏览
    B

    在fluent中VOF在缺省情况下是只能设置一项为可压缩性,如楼上所言,气体可以设置为可压缩气体,液体的压缩性可以使用Tait方程通过UDF插入fluent中,Ps:这个UDF很简单,可以参考help文件中的UDF案例,里面有一个是关于液相可压缩性的例子

  • 0 赞同
    2 帖子
    5k 浏览
    S

    如果我没记错的话,流体中文网上的ICEM版块里有人画过4119桨的结构网格,也传了文件在上面,你可以去上面找一下看还在不在。(耐心往后翻一下)

  • 0 赞同
    9 帖子
    18k 浏览
    X

    @东岳 流沙老师的教程确实很良心

  • 0 赞同
    4 帖子
    6k 浏览
    H

    @veen 从源码编译of是个挺痛苦的事情,建议不把of安装在root,可以考虑试一试easybuild,它是基于module的环境管理,应该比较成熟了。我从0开始,最开始在PC上面编of-3.0,到后来在实验室的机群上home编译of-4.0, foam-extend等等,多版本的管理用module还是方便些。印象中,gcc(如果你用gcc的话)和mpi的版本很重要。

  • 删除命令?

    OpenFOAM
    3
    0 赞同
    3 帖子
    3k 浏览
    T

    @李东岳 解决了,谢谢您:142:

  • fluent模拟异质催化反应

    Fluent
    4
    0 赞同
    4 帖子
    7k 浏览
    I

    @zousiyu 感谢,我不做这方面,只是对这个问题进行一个有益的探索

  • paraview如何将气泡信息映射到壁面

    OpenFOAM
    1
    0 赞同
    1 帖子
    2k 浏览

    各位前辈好!

    如图1 ,我现在流场中有一些气泡,想将每一个气泡的内部压力映射到底部壁面上,效果图如图2,我应该如何在paraview中进行映射/投影呢?我自己试验了pointDatasetInterpolator好像不太对(图3)。

    哪位前辈能够指点一个思路呢?谢谢

    图1:
    1111111111.png

    图2:

    2222222.png

    图3:
    3333333.png

  • 0 赞同
    4 帖子
    6k 浏览
    李东岳

    如果不考虑时间项
    \begin{equation}
    \int^{f+1}_ {f} \frac{\partial}{\partial x}\left(\alpha \frac{\partial \phi}{\partial x}\right)\mathrm{d}x=\left(\alpha \frac{\partial \phi}{\partial x}\right)_ {f+1}-\left(\alpha \frac{\partial \phi}{\partial x}\right)_ {f}
    \end{equation}
    把后面两项$\left(\alpha \frac{\partial \phi}{\partial x}\right)_ {f+1}-\left(\alpha \frac{\partial \phi}{\partial x}\right)_{f}$把所有的面连起来,看起来是守恒的,剩下的只有边界条件