求教forAll循环内部场问题
-
神们,阅读cellLimited代码时遇到forAll循环的问题,具体见下面代码:
const labelUList& owner = mesh.owner(); //owner单元列表 const labelUList& neighbour = mesh.neighbour(); //neighbour单元列表 Field<Type> maxVsf(vsf.primitiveField()); //定义一个场量,并只将vsf内部场值赋给它 Field<Type> minVsf(vsf.primitiveField()); //定义一个场量,并只将vsf内部场值赋给它 forAll(owner, facei) //facei从0到owner.size()增加,遍历owner单元 { label own = owner[facei]; //facei对应的owner单元号 label nei = neighbour[facei]; //facei对应的neighbour单元号 const Type& vsfOwn = vsf[own]; const Type& vsfNei = vsf[nei]; maxVsf[own] = max(maxVsf[own], vsfNei); minVsf[own] = min(minVsf[own], vsfNei); maxVsf[nei] = max(maxVsf[nei], vsfOwn); minVsf[nei] = min(minVsf[nei], vsfOwn); }
上面代码我知道什么意思,即求某个网格单元与其相邻的所有网格单元的某个量的最大值和最小值。但不明白的是为何上述forAll循环只是针对内部场的,owner中不是包含所有面(包括边界面)对应的owner单元吗?face文件和owner文件的size是一样的。
另外,也请牛们看下我代码的注释对不?
求教了,