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. 动网格细化植入interFoam

动网格细化植入interFoam

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

    大家好,最近尝试在基于openfoam-240版本的interThermalPhaseChangeFoam(https://github.com/MahdiNabil/CFD-PC)中植入动网格细化的代码,但是碰到了莫名其妙的bug.因为该求解器和of22x版本interFoam比较接近,就参考了interDymFoam和interFoam照猫画虎.植入代码后的求解器编译顺利没什么问题,然后使用了二维的单气泡沸腾算例来测试动网格相界面细化是否能运行,但是提示求解温度方程EEqn.H时始终报错,终端提示

    
    *** Error in `interThermalPhaseChangeDymFoam': double free or corruption (!prev): 0x0000000001ec3530 ***
    ======= Backtrace: =========
    /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f8eabb9e7e5]
    /lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7f8eabba737a]
    /lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f8eabbab53c]
    
    

    另外,尝试了把能量方程剔除后运行算例,即//EEqn.H或者把算例中的fvSolution文件设置nEnergyLoops为0不求解能量方程,结果仍然报错提示网格数量不匹配,可能这两种报错都是一个原因引起的:

    Starting mesh update
    
    Selected 64 cells for refinement out of 4062.
    Refined from 4062 to 4510 cells.
    
    
    --> FOAM FATAL ERROR: 
    Incompatible size before mapping.  Field size: 3950 map size: 4062
    
        From function void MapInternalField<Type, MeshMapper, volMesh>::operator()
    (
        Field<Type>& field,
        const MeshMapper& mapper
    ) const
        in file lnInclude/MapFvVolField.H at line 73.
    
    FOAM aborting
    
    #0  Foam::error::printStack(Foam::Ostream&) at ??:?
    #1  Foam::error::abort() at ??:?
    #2  ? at fvMesh.C:?
    #3  ? at fvMesh.C:?
    #4  Foam::fvMesh::mapFields(Foam::mapPolyMesh const&) at ??:?
    
    

    为了排除相变模型的影响,已经在transportProperties字典中设置为不使用相变,none.事实上为了找到出问题的量,已经进行了各种尝试还是搞不定,外网也已经翻了底朝天了...

    网盘链接是植入动网格代码后的求解器和测试算例:
    链接: https://pan.baidu.com/s/1g6eMsUzSy3a6DADyxrtg1w 提取码: uigh

    在240版本下输入source Allwmake.sh即可完成编译,测试算例是NucleateBoiling2D文件夹,该算例简化成了2d平面,然后如果运行原版interThermalPhaseChangeFoam没有问题.
    实在没办法了,来论坛问问各位老师和大神们有什么好办法没,谢谢~

    1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    写于 最后由 编辑
    #2

    感觉像是内存使用不当,看看你的指针啥的代码有没有错误?

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    H 1 条回复 最后回复
  • H 离线
    H 离线
    Hunahum
    在 中回复了 李东岳 最后由 编辑
    #3

    @东岳 谢谢东岳老师的关注,第一个报错应该是关于内存释放的,有时候还会报错free() invalid next size (normal).尝试了把EEqn.H能量方程中的relaxfactor项删除,就可以避免这个报错,但是会对计算结果有影响……
    还尝试过用gdb运行程序,就不会碰到这个报错,能量方程可以顺利求解(至少第一个时间步可以),但还是会提示下面那个网格数量不匹配的错误

    1 条回复 最后回复
  • F 离线
    F 离线
    freeman
    写于 最后由 编辑
    #4

    请问interthermalphasechangefoam求解器是只能在2.4.0版本中编译吗?

    李东岳李 1 条回复 最后回复
  • 李东岳李 离线
    李东岳李 离线
    李东岳 管理员
    在 中回复了 freeman 最后由 编辑
    #5

    @freeman 外挂求解器一般只能用于特定版本

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    F 1 条回复 最后回复
  • F 离线
    F 离线
    freeman
    在 中回复了 李东岳 最后由 编辑
    #6

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

    1 条回复 最后回复

  • 登录

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