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中文网

  1. CFD中文网
  2. OpenFOAM
  3. 读取变量 segmentation fault

读取变量 segmentation fault

已定时 已固定 已锁定 已移动 OpenFOAM
13 帖子 3 发布者 8.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • H 离线
    H 离线
    hongjiewang
    写于 最后由 编辑
    #4

    case
    1610161653(1).png
    test.zip

    1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    写于 最后由 编辑
    #5

    曾经,我排过一个很狗血的错,一台电脑的某个软件也是这样捉摸不定的出错,不知道在哪里,也没有一点点防备。找了半天发现是磁盘满了。还剩一丢丢空间,所以一开软件,这个空间什么时候被临时文件占满了,就崩了。错误特征完全无法捉摸。

    这个,可以du -h看看各挂载点的空间。然后,开两个窗口。一个开top,监视内存;一个开求解器,看内存的实时占用,不过有捕捉不到的风险。可以把网格尽量缩小再试试。这些变量占的空间基本都依托于网格。

    还有一个点,这两个错误都跟 thermo 有关。thermo好像也和湍流有关
    https://www.openfoam.com/documentation/guides/latest/api/classFoam_1_1ThermalDiffusivity.html

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 bestucan 最后由 hongjiewang 编辑
    #6

    @bestucan 感谢老师的回复。我先一个一个排除一下可能的错误。

    找了半天发现是磁盘满了。还剩一丢丢空间,所以一开软件,这个空间什么时候被临时文件占满了,就崩了。错误特征完全无法捉摸。
    这个,可以du -h看看各挂载点的空间。然后,开两个窗口。一个开top,监视内存;一个开求解器,看内存的实时占用,不过有捕捉不到的风险。可以把网格尽量缩小再试试。这些变量占的空间基本都依托于网格。

    我查看了一下,看到还有250+GB的空间,而且我的网格数从100✖100✖200减少到5✖5✖10都存在一样的错误,或许可以初步排查是内存的问题。

    还有一个点,这两个错误都跟 thermo 有关。thermo好像也和湍流有关

    我想请问一下老师,是怎么发现这两个错误和thermo有关系的,我不是很明白。
    因为我下面有一个是输出mu的值,而所需要的ρ是从thermo里读取到的,mu输出的值正确也是不能保障thermo指针正确吗。
    turbulence引用的时候需要thermo,如果我把turbulence的定义放在thermo后一个,就可以正确读取turbulence。放到后面几个就读取错误了。

    我先去看一下老师说的监视内存的方法,看具体是什么情况。感谢老师。

    bestucanB 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 hongjiewang 最后由 编辑
    #7

    @hongjiewang 第二个错误信息我看错了,确实不是都和thermo有关。
    可是你的第二个错误你说 g 出的错,

    Info<< "Need to store rho for ddt(rhoCp, U)\n" << endl;

    这一句后面只跟一个 “1”,在代码里不是这里么

    Info<< "1" << endl;
    #include "createMRF.H"
    #include "createFvOptions.H"

    Info<< "1" << endl;
    #include "readGravitationalAcceleration.H"

    createMRF.H 或者 creat FvOptions.H

    输出第二个“1”才到g

    250的网格都错,和内存无关了。这种面向对象的程序一般写的时候都有脚手架,就像官网的代码有很多框图,但又比那些框图要详细。这留个窟窿那钻个眼都有用,可是只看代码非常费功夫才知道有什么用。不知道有什么用就很容易错。互相之间的依赖关系,先后顺序。那些不报错的是没语法错误了,不一定没语义错误。所以一般都在原有的类似的求解器上增删改;改变结构造个新的,还是挺麻烦的。of的路慢慢熬吧。:xinlei:

    如果还不行,用gdb调试,有gdb的of版,gdbof

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    H 2 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 bestucan 最后由 编辑
    #8

    @bestucan 在 读取变量 segmentation fault 中说:

    Info<< "1" << endl;
    #include "createMRF.H"
    #include "createFvOptions.H"

    Info<< "1" << endl;
    #include "readGravitationalAcceleration.H"

    输出第二个“1”才到g

    这里我看串行了,确实不是到g变量。我还是尝试一下gdb调试吧~有结果的话和各位老师分享~
    感谢老师~

    1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 bestucan 最后由 hongjiewang 编辑
    #9

    @bestucan 请问我重新编译of的时候,提示错误而终止了,这是什么原因奥~
    step1:修改etc/bashrc中的OPTION为Debug
    step2:在对应版本的openfoam终端下 source etc/bashrc
    step2:.Allwmake -j

    state/lumpedPointState.C: In constructor ‘Foam::lumpedPointState::lumpedPointState(const pointField&, const vectorField&, Foam::quaternion::eulerOrder, bool)’:
    state/lumpedPointState.C:154:49: error: expected ‘;’ before ‘exit’
      154 |             << angles_.size() << " angles" << nl
          |                                                 ^
          |                                                 ;
      155 |             exit(FatalError);
    

    是在154行nl后添加;就可以了吗

    bestucanB 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 hongjiewang 最后由 编辑
    #10

    @hongjiewang 我也编译过 debug 模式的 of ,就是比正常慢点,没出现过这种错误。这种错误看起来很初级不像是源代码带的。我搜我的代码的这个文件也没这句。

    单这个错误,是的,加个分号就行。就是一个语句忘了结尾。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 bestucan 最后由 编辑
    #11

    @bestucan
    加了分号确实可以继续编译了,但是我从https://www.openfoam.com/documentation/guides/latest/api/lumpedPointState_8C_source.html找到源文件,他也是没有分号的,我没有改动过这个文件。
    1610367608(1).png

    bestucanB 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 hongjiewang 最后由 编辑
    #12

    @hongjiewang
    照这个修改,不加引号,加 << 和下面一句连一起。
    https://develop.openfoam.com/Development/openfoam/-/commit/fa86a98482355f28520374069479d63303016c30

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    H 1 条回复 最后回复
  • H 离线
    H 离线
    hongjiewang
    在 中回复了 bestucan 最后由 编辑
    #13

    @bestucan 谢谢老师 已改:xinxin:

    1 条回复 最后回复

  • 登录

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