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
19 帖子 5 发布者 12.5k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • King_RVMK 离线
    King_RVMK 离线
    King_RVM
    在 中回复了 Cr 最后由 编辑
    #10

    @Cr 是的,我定义I1 I2的时候调用了转置函数,但是我现在发现实际上我不需要,于是删去了转置计算。关于量纲的问题,你说的很对,虽然sij omegeij、标量I1 I2和张量V1 V2 V3没有量纲,但是定义过程中S 与 Omega有量纲,为了减少量纲的问题,我定义如下
    28185789-d193-475a-9011-1f0f1f1cfb4f-image.png
    sij 与 omegaij的无量纲化是通过除以omega_实现的。现在的报错是与定义的张量I 有关,在sij中,场离散的项symm(tgradU())不能直接与单位对角矩阵I相加减,该怎样把I转换成一样的类型呢?我想通过volTensorField定义I,但是报错。我定义单位对角阵是因为定义sij中1/3*partU/partx需要乘以狄拉克函数,实际计算中就是单位对角阵。
    目前报错如下:
    828449f3-bb44-40c0-bbb1-6ae642e2d24d-image.png

    1 条回复 最后回复
  • King_RVMK 离线
    King_RVMK 离线
    King_RVM
    在 中回复了 Cr 最后由 编辑
    #11

    @Cr 我发现问题来自于单位矩阵的相乘,当我用更简洁的形式去表达sij来避免单位对角矩阵I的表达,sij没有报错,但是V3关于I 的部分报错了。其实我想添加的表达式是
    25757ede-1d35-4623-8d10-2788e0d6075b-image.png
    其中sij为cec40daf-13d9-44d3-bf7e-61a92acf8065-image.png除以omega_来做到无量纲化,而图中omegeij为
    ee306b56-06c9-438f-ac03-902bf67a13ee-image.png 除以omega_来做到无因次化
    我现在修改后的定义为
    3d87bad7-075c-4bbb-b533-06fb22d1fe17-image.png
    V3中的I不可避免,因为需要将那一项从标量转为张量,现在的报错如下
    3193455d-088b-4d1f-9255-70ebadab8382-image.png
    3d2949a0-ef49-44d9-a089-defaa3a21b8e-image.png

    C 1 条回复 最后回复
  • C 离线
    C 离线
    Cr
    在 中回复了 King_RVM 最后由 编辑
    #12

    @King_RVM 这个错误还是类型不统一,sij是tmp<volTensorField>类型, I1是一个volTensorField::Internal或DimensionedField<tensor, volMesh>类型,OpenFOAM没有定义两种类型的减法,我建议你将所有的vol##Type##Field::Internal都换成vol##Type##Field试试。

    King_RVMK 1 条回复 最后回复
  • C 离线
    C 离线
    Cr
    在 中回复了 King_RVM 最后由 Cr 编辑
    #13

    @King_RVM bb4e5bc1-39a3-4fbc-943d-1019cb40c7b6-image.png 这个编译错误是OpenFOAM本身源码上的bug,需要对DimensionField的源代码进行改动才可以使编译通过。OpenFOAM-v2006 bug Issues #1868

    King_RVMK 1 条回复 最后回复
  • King_RVMK 离线
    King_RVMK 离线
    King_RVM
    在 中回复了 Cr 最后由 编辑
    #14

    @Cr 我尝试过改成一样的类型,所有都改成vol##Type##Field,但是这样sij会报错
    e3c888ce-86c4-47a4-9ed8-bb676780024c-image.png

    在这里 dev(symm(tgradU()()))是张量除以一个标量还是张量,还是报错。
    dev(symm(tgradU()()))的灵感来自于李老师的东岳流体网站http://www.dyfluid.com/docs/tensor.html
    f748e291-26af-466e-9885-35506ed5d1c4-image.png

    C 1 条回复 最后回复
  • King_RVMK 离线
    King_RVMK 离线
    King_RVM
    在 中回复了 Cr 最后由 编辑
    #15

    @Cr 非常感谢这部分资料的提供,我没想过源代码会有问题

    1 条回复 最后回复
  • C 离线
    C 离线
    Cr
    在 中回复了 King_RVM 最后由 编辑
    #16

    @King_RVM dev(symm(tgradU()()))改为 dev(symm(tgradU())),同时将sij的类型声明为tmp<volSymmTensorField>。
    原因:tgradU()为tmp<T>的operator()重载返回T类型的引用,在这里为GeometricField类型,GeometricField的operator()的重载返回GeometricField::Internal类型,即dimensionedField<Type, GeoMesh>,所以类型不匹配,场运算报错。

    King_RVMK 1 条回复 最后回复
  • King_RVMK 离线
    King_RVMK 离线
    King_RVM
    在 中回复了 Cr 最后由 编辑
    #17

    @Cr 非常非常感谢你的分析和回复,我的编译通过了,编译通过之后运行算例有新的问题,原因是tmp这个内存管理小工具用得不好,我最新的通过编译的部分修改如下,供大家参考
    71970107-5d69-49f0-bca7-a3c7871a60e9-image.png

    1 条回复 最后回复
  • C 离线
    C 离线
    Chen_hao
    写于 最后由 编辑
    #18

    你好,请问你修改湍流模型的雷诺应力项(跟你一样修改boussnesiq 假设)是在哪修改的?是在相应的komegaSST.C中,还是我看他们说的linearViscousStress.C?还有一直有个疑惑,相应的动量方程中这个雷诺应力项用修改吗? 不好意思打扰你了,希望能不吝赐教。

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

    @chen_hao

    1. linearViscousStress.C

    2. UEqn不用动

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

    1 条回复 最后回复

  • 登录

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