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. 编译湍流模型成功但是调用计算报错

编译湍流模型成功但是调用计算报错

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

    各位老师好!请教调用编译成功的湍流模型但是报错的问题。我给雷诺应力增加了一项非线性项,也就是说我修改了动量方程,也修改了komegaSST中的k 与 w的方程,编译通过,但是用算例调用计算报错(用的是OF2.4.0版本,rhoSimpleFoam求解器),报的错误看不懂,想请教下各位:
    c0fb73dd-9639-40c7-90d6-3acf0f029d6d-image.png

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

    printStack(FOAM::Ostream&) at ??:?

    这就是输出的时候找不到地址了,后面的都是 at ??:?
    这基本看不出来是哪错了,可能的情况太多了,除了用gdb之类的调(比较难学、麻烦)。就只能渐进式修改查错。看是哪里的修改导致这样的错误。

    或者整个什么都没有的流场,看看它崩不崩,如果不崩,说明你加的这项比较挑流场,难稳定。如果崩,那就肯定是程序的问题了

    滚来滚去……~(~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

    F 2 条回复 最后回复
  • F 离线
    F 离线
    fangyuanaza
    在 中回复了 bestucan 最后由 编辑
    #3

    @bestucan 谢谢您的回复,我修改了一下我的湍流模型,现在是调用之后跑了两步报错,如下:
    eca6f9d1-8c9d-462d-bc56-eeaa19c2942b-image.png
    这个错误我之前跑算例的时候遇到过,在总压条件里面指定psi thermo:psi就可以了,现在的问题是算例能跑了,但是加上湍流模型后还是报这个错误。请问您说的给一个空流场,看它崩不崩是什么意思呢?怎么操作呢?

    1 条回复 最后回复
  • F 离线
    F 离线
    fangyuanaza
    在 中回复了 bestucan 最后由 编辑
    #4

    @bestucan 我渐进式排错的话,错误就在改的动量方程上,我是在动量方程、turbulent kinetic energy 跟 turbulent frequency equation 方程的雷诺应力项加上了非线性项,通过分模块排错,这一项加在后两个方程上没有问题,可以算,但是加在动量方程上就错了,我定义了一个非线性张量ADD_ ,动量方程是通过如下方式加的:
    2a23387f-197a-4066-b0eb-e8ae1f864288-image.png

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

    @fangyuanaza

    我说的空流场不崩是想着,可能是计算方法不稳定,容易溢出。所以如果是没有任何速度和湍流的流场(比如完全静止的一潭死水),拿么你的模型多么不稳定都没关系,因为几乎所有物理量都是0,各阶导数也是0。如果这样不崩,那就是算法上的问题了。如果这样也崩,那就是程序语法结构的问题了。

    你排错到这一步,我已经不太懂了,不过还有方法更贴近错误。
    把no write改成write,这样可以看return回去的是什么值。这个值是否在正常范围内。
    以第一个为例,先write不带2kADD_的,再write带2kADD_的,大概能看出来这一项对原本的样子有多大的影响。如果岔开的数量级大了,那就找到问题了。

    如果岔开的不大,那就手动给k和ADD_赋值,先赋值0,再逐渐改变。如果是改变导致崩,那就是超出范围了;如果赋值0也崩,那就是数据类型之类的编程问题了。

    虽然编译没错,但不一定就真没错。C++就这样,功能特性太多。一个不小心,隐形类型转换了之类的,openfoam的二次开发编译过程肯定用了动态链接库,带动态链接库的编译器查错更容易漏。

    滚来滚去……~(~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

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

    @bestucan 谢谢你~ 我找到问题了,就是ADD范围不对,我用了最值函数限制了就好了,这一点论文里面没有提,很不好找,谢谢你~

    1 条回复 最后回复

  • 登录

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