自定义类中调用PrimitivePatch类中的faceCentre的bug
-
各位大神,我最近在写一个类的时候遇到一个问题,想请假一下。首先我在这个spanwiseAverage类的patchAddressing方法中需要用到某一patch的点坐标和面心坐标,我分别通过patch的localPoints()方法和facecentres()方法获取了两个pointField的引用。随后我需要通过点坐标来计算一个变量geoMin,问题就出在了此处。如果我在这个句代码前面通过Info输出一下patchCentre的大小或者是值是可以得到正确的结果的,后面的程序也可以正常的运行。但是如果不在计算geoMin变量之前对patchCentre进行操作,在计算完geoMin后再输出patchCentre的大小就会变为0。我在计算geoMin的时候并没有对patchCentre这个变量进行任何改变。想请问一下,有没有大神遇到过类似的问题或者这个bug产生的原因。
const Foam::labelList& Foam::spanwiseAverage::patchAddressing(const polyPatch& patch) const { const edgeList& patchEdge = patch.edges(); const pointField& patchPoint = patch.localPoints(); const pointField& patchCentre = patch.faceCentres(); Info << patchCentre.size() << endl; // 若在此处输出patchCentre的size是可以获取正确的值的 scalar geoMin = min(patchPoint & averagePatchsDir_); Info << patchCentre.size() << endl; // 若注释掉上一条Info语句,在这里输出patchCentre的size得到的值变为了0 ...... }