关于理解setFieldsDict
-
大家好,我在看v1912的overInterDyMFoam中的floatingBody算例,里面的system/setFieldsDict有些地方不理解,
- defaultFielsValues是设置场的默认值,默认全是0,然后volScalarFieldValue zoneID的意思是什么意思?
- 用regions指定水域的时候,为什么需要两个box,而且这两个box是有重合的,box1(-100 -100 -100)(100 100 0.45),box2(0.9 0.9 -100)(100 100 0.75);
- 给c0设置zoneID 0,给c1设置zoneID 1的意思是不是把c0集合叫做0,c1 这集合起名叫做1?
-
这些问题其实可以通过测试知道。
比如第一个,把alpha.water 改成0.32(什么值都行,特殊就行)
id改成13 或者12、23,看看set了什么效果两个box,因为一个box咋能描述两个box交叠形成的八边形区域?漏了赋不上值,重复了,顶多多赋值一遍,又不会相加。
c0 c1这个不知道,看看c0 c1在那用了,再改这个里的zoneID看效果就知道了
-
- volScalarFieldValue zoneID 的意思是有一个场的名字叫 zoneID,默认值是123
- 两个box 的并集区域设置为水域,之所以弄成两个box,大概是因为水域不是一个规则的 box,所以用两个box。如果是更复杂的形状,那还可能是 3个 box,或者用其他的复杂形状。
- 不是,而是对属于 c0 这个set 的网格,把场 zoneID 的值设置为0,同理,c1里面的网格,zoneID 设置为 1。
setFieldDict 的逻辑还是比较清楚的,无非是指定一个区域,把这个区域内的某个场设置为某个值。区域的指定方式可以是规则的 box,sphere之类的,也可以是某个 cellSet,至于这个cellSet 则可以使用 topoSet 来生成。topoSet 生成 cellSet 有很多很多选项可以用。
-
@bestucan 谢谢您的答疑,我这就去改一改测试看看。
-
@xpqiu 感谢您的答疑
原来如此,是两个box相当于框定了一个水域区范围间的意思。
zoneID场的值设置明白了,还想问一下zoneID这个场是不是因为重叠网格所以要设置的,具体作用是什么呢?