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. dsmcFoamPlus定义非定常边界条件的方法

dsmcFoamPlus定义非定常边界条件的方法

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

    我希望我算例中的自由来流条件随着时间变化。在 dsmcFoamPlus 中,边界由 boundariesDict 字典文件控制,通过使用其自带的 dsmcFreeStreamInflowFieldPatch 模型,用户可以在 0 文件夹中导入 boundaryXXX 文件,设置速度、温度和密度的各边界上条件。参考:https://github.com/hystrath/hyStrath/issues/84

    boundaryField
    {
        patch1
        {
            type            uniformFixedValue;
            uniformValue	        tableFile;
            uniformValueCoeffs
            {
            	file	     "myFileName";
            }
        }
    }
    

    我在这三个边界控制文件中将入口的 patch 类型设为 uniformFixedValue,并用一个 table 文件存储对应时刻边界上物理量的值,以期望实现一个随时间变化的来流条件。开始运行后,没有出现报错。根据各时间步文件夹中的 boundaryXXX 文件来看,uniformFixedValue 的设置被正确读取,但并没有实际体现在边界的数值(计算结果)上。目前来看,dsmcFoamPlus 会选取 table 文件中某一个时间的值赋给边界,然后定常运算(通常是 0 时刻)。我猜测 dsmcFreeStreamInflowFieldPatch 并不能适用于随时间变化的边界条件。请问有人能帮助我解决这个问题么?

    C C 2 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    在 中回复了 做在江湖 最后由 编辑
    #2

    用timeVaryingMappedFixedValue,在constant创建文件夹boundaryData,按格式要求准备不同时刻的数据。参考帖子LES定义入口速度的问题(DSRFG方法)

    做 1 条回复 最后回复
  • 做 离线
    做 离线
    做在江湖
    在 中回复了 coolhhh 最后由 编辑
    #3

    @coolhhh 谢谢您的建议,不过我尝试了一下,结果还是一样的,dsmcFoam+仍然将我输入的数据当成是定常边界,即仅读取boundaryData中0文件夹下的数据。:135:

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    在 中回复了 做在江湖 最后由 编辑
    #4

    @做在江湖 0文件夹比如速度U的设置如下所示。保存不同时刻的结果,看U文件的inlet数据是否差异,看看是否读取成功。

    或者能否改用pisoFoam试算一下,看看是否能读取不同时刻的数据。如果可以,那就说明是dsmcFoam的问题。再看看dsmcFoam中是否对inlet边界有额外的操作,使得每个时刻只用了第一个时刻的数据?

    timeVaryingMappedFixedValue这个边界,如果controlDict设置的endTime大于所提供的数据文件夹最大的时刻,比如endTime=9s,boundaryData提供数据到2s,计算到2s后就只会按照提供最后2s时刻的数据一直算下去。

    boundaryField
    {
       
        inlet
        {
            type            timeVaryingMappedFixedValue;
            offset          (0 0 0);
            setAverage      off;
            mapMethod       nearest;    //planarInterpolation, nearest
        }
    
    做 2 条回复 最后回复
  • 做 离线
    做 离线
    做在江湖
    在 中回复了 coolhhh 最后由 编辑
    #5

    @coolhhh 您好,关于不同时刻 inlet 的结果,使用 timeVaryingMappedFixedValue 时不同时刻数据没有差异,这显然不太正常。而用 uniformFixedValue 时则有差异。但二者都没能改变 inlet 上的 U 值计算结果(该边界模型,物理量的边界条件和物理量的值分开存放)。同样的设置我在 pimpleFoam 算例中是能实现的,因此大概率还是求解器导致的问题。我现在在尝试读 dsmcFoamPlus 中边界条件的源代码,看看能否找到原因。dsmcFreeStreamInflowFieldPatch.C dsmcFreeStreamInflowFieldPatch.H
    另外我将 endTime 与数据文件夹最大时刻相等,问题仍然存在,我想可以排除这个因素。

    1 条回复 最后回复
  • 做 离线
    做 离线
    做在江湖
    在 中回复了 coolhhh 最后由 编辑
    #6

    @coolhhh 您好,我有一个新的猜想,根据求解器日志文件log.dsmcFoam+ 第37到77行,生成边界(读取模型、边界上物理量)时对应的时间是初始时刻(0),而后开始时间循环,且之后再没有出现过边界相关的日志信息。猜测 dsmcFoam+ 在开始计算前就将所有边界条件设置好,自动忽略初始时刻以外的边界条件,这就能解释我遇到的问题。可是不太清楚解决方法...

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    在 中回复了 做在江湖 最后由 编辑
    #7

    @做在江湖 保存dsmcFoam不同时刻结果,比如0.5s的结果,此时0.5s结果的U文件中,inlet面的边界条件是否还是timeVaryingMappedFixedValue类型,还是更改了其他的?

    我曾经0文件设置了timeVaryingMappedFixedValue,pisoFoam求解器中想通过一些操作改变入口加载的速度,但似乎没有成功,都依然最后按照timeVaryingMappedFixedValue加载的风速进行计算。也可能是我当时哪里没写对

    现在你的问题确实像是dsmcFoam改变了timeVaryingMappedFixedValue

    做 1 条回复 最后回复
  • 做 离线
    做 离线
    做在江湖
    在 中回复了 coolhhh 最后由 编辑
    #8

    @coolhhh 在各个时间文件夹里,boundaryU的内容相同:

    boundaryField
    {
        patch1
        {
            type            timeVaryingMappedFixedValue;
            mapMethod       nearest;
            offset          constant (0 0 0);
            value           uniform (1000 0 0);
        }
    

    而按照设置Uy应该是随时间增加的。

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    在 中回复了 做在江湖 最后由 编辑
    #9

    @做在江湖 我测试了of2206一个自带算例freeSpaceStream,测试boundaryU设置timeVaryingMappedFixedValue,dsmcFoam计算结果确实只加载了第0时间步的结果,但不同时刻保存的结果都是value nonuniform List<vector>

        inlet
        {
            type            timeVaryingMappedFixedValue;
            fieldTable      boundaryU;
            mapMethod       nearest;
            offset          constant (0 0 0);
            value           nonuniform List<vector> 
    256
    (
    (299.1814153 29.37670706 68.29947456)
    (299.4299067 29.62701704 68.44470993)
    (299.6766025 29.87764649 68.59053715)
    

    pisoFoam的pEqn.H有U.correctBoundaryConditions()更新边界值。简单看了dsmcFoam求解器代码,没有correctBoundaryConditions,不太清楚是否跟这个有关

    做 1 条回复 最后回复
  • 做 离线
    做 离线
    做在江湖
    在 中回复了 coolhhh 最后由 做在江湖 编辑
    #10

    @coolhhh 在DSMCCloud.C里有使用correctBoundaryConditions()函数,至于我使用的FoamPlus,它的对应文件可能重写了,但是用到了evolve函数。另外我猜想dsmcFoam肯定是有在更新边界值的,不然不能解释boundaryU的变化,但是后者内的信息在每个时间步并没有被求解器重新读取,而是继续沿用 0 时刻的设置。这恐怕是症结所在。

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    在 中回复了 做在江湖 最后由 编辑
    #11

    @做在江湖 搜了DSMCCloud.C,其他物理量有使用correctBoundaryConditions,但boundaryU没有这个操作,是否可以尝试在某个地方把boundaryU.correctBoundaryConditions()加上,看看是否有效果

    做 1 条回复 最后回复
  • 做 离线
    做 离线
    做在江湖
    在 中回复了 coolhhh 最后由 做在江湖 编辑
    #12

    @coolhhh 想请问这个函数的作用是什么,它和evolve函数有什么关系?因为现有设置下boundaryU已经被更新了,但是问题在于其值没有被传递到流场中。函数correctBoundaryConditions作用是读取物理量的边界值并重新设定边界么?

    C 1 条回复 最后回复
  • C 离线
    C 离线
    coolhhh 神
    在 中回复了 做在江湖 最后由 编辑
    #13

    @做在江湖 correctBoundaryConditions参考贴子 关于压力场边界更新的实现机制的疑问

    我测试dsmcFoam算例结果是,boundaryU每个时刻都一样,没有更新。所以猜测是否跟没执行correctBoundaryConditions有关

    做 1 条回复 最后回复
  • 做 离线
    做 离线
    做在江湖
    在 中回复了 coolhhh 最后由 编辑
    #14

    @coolhhh 我明白了,您不妨试试uniformFixedValue。另外dsmcFoam+的dsmcCloud.C中没有correctBoundaryConditions,我估计是包装在别的函数里了。

    1 条回复 最后回复
  • C 离线
    C 离线
    CT
    在 中回复了 做在江湖 最后由 编辑
    #15

    @做在江湖 您好,请问这个问题解决了吗?我使用danceFoam进行仿真也发现了相同的问题,谢谢🙏

    做 1 条回复 最后回复
  • 做 离线
    做 离线
    做在江湖
    在 中回复了 CT 最后由 编辑
    #16

    @CT 很遗憾,没有。我现在转去了别的方向,也不再使用该求解器了。如果只是希望做DSMC模拟而不是必须使用OpenFOAM的话,可以尝试其它开源软件,如Sparta等。

    1 条回复 最后回复

  • 登录

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