关于理解setFieldsDict



  • 大家好,我在看v1912的overInterDyMFoam中的floatingBody算例,里面的system/setFieldsDict有些地方不理解,

    1. defaultFielsValues是设置场的默认值,默认全是0,然后volScalarFieldValue zoneID的意思是什么意思?
    2. 用regions指定水域的时候,为什么需要两个box,而且这两个box是有重合的,box1(-100 -100 -100)(100 100 0.45),box2(0.9 0.9 -100)(100 100 0.75);
    3. 给c0设置zoneID 0,给c1设置zoneID 1的意思是不是把c0集合叫做0,c1 这集合起名叫做1?

    126333a3-21d4-4adb-bcb4-872f55b87756-image.png


  • 版主 副教授

    这些问题其实可以通过测试知道。
    比如第一个,把alpha.water 改成0.32(什么值都行,特殊就行)
    id改成13 或者12、23,看看set了什么效果

    两个box,因为一个box咋能描述两个box交叠形成的八边形区域?漏了赋不上值,重复了,顶多多赋值一遍,又不会相加。

    c0 c1这个不知道,看看c0 c1在那用了,再改这个里的zoneID看效果就知道了:chitang:


  • 教授

    @Joann

    1. volScalarFieldValue zoneID 的意思是有一个场的名字叫 zoneID,默认值是123
    2. 两个box 的并集区域设置为水域,之所以弄成两个box,大概是因为水域不是一个规则的 box,所以用两个box。如果是更复杂的形状,那还可能是 3个 box,或者用其他的复杂形状。
    3. 不是,而是对属于 c0 这个set 的网格,把场 zoneID 的值设置为0,同理,c1里面的网格,zoneID 设置为 1。

    setFieldDict 的逻辑还是比较清楚的,无非是指定一个区域,把这个区域内的某个场设置为某个值。区域的指定方式可以是规则的 box,sphere之类的,也可以是某个 cellSet,至于这个cellSet 则可以使用 topoSet 来生成。topoSet 生成 cellSet 有很多很多选项可以用。



  • @bestucan 谢谢您的答疑,我这就去改一改测试看看。



  • @xpqiu 感谢您的答疑
    原来如此,是两个box相当于框定了一个水域区范围间的意思。
    zoneID场的值设置明白了,还想问一下zoneID这个场是不是因为重叠网格所以要设置的,具体作用是什么呢?


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1