找pp[i].average的定义
pp是p的patch的引用,p是this的patch的引用。
所以pp是this的patch的patch。
所以pp的子函数average要从this里找。this就是当前这个类:cellMotionFvPatchField
这个类的定义在:src/fvMotionSolver/fvPatchFields/derived/cellMotion/cellMotionFvPatchField.H
由类定义可知,该类继承自 fixedValueFvPatchField.H (src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchField.H
)
fixedValueFvPatchField 又继承自 fvPatchField (src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.H
)
这里352行,有patch函数,返回值是patch_
src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchField.C
中显示patch_的初始变量是fvPatch类型的(this的patch)
src/finiteVolume/fvMesh/fvPatches/fvPatch/fvPatch.H
这里142行,有patch函数,返回值是polyPatch_,它的声明在69行,是polyPatch类型(this的patch的patch)
polyPatch里没有average函数,接着往基类上找(src/OpenFOAM/meshes/polyMesh/polyPatches/polyPatch/polyPatch.H
)
继承自两个类:patchIdentifier, primitivePatch
第一个查无所获,第二个:
src/OpenFOAM/meshes/primitiveMesh/primitivePatch/primitivePatch.H
里面有四个头文件,一个个找过去,
第一个:
src/OpenFOAM/meshes/primitiveMesh/PrimitivePatch/PrimitivePatch.H(^处两个字母,大小写和上面不一样)
^ ^
没有average函数
第二个:
src/OpenFOAM/meshes/meshShapes/face/face.H
好了,找到函数原型:148行
//- Calculate average value at centroid of face
template<class Type>
Type average(const pointField&, const Field<Type>&) const;
代码行数都是OpenFOAM 10版本的
网页搜着慢,可以自己编译个本地的,搜着快,一句命令就可以生成。
can@M320-TC:/home/can/.local/share/OpenFOAM/OpenFOAM-10/doc/Doxygen> ll (git)-[master]-
total 140K
drwxr-xr-x 2 can can 4.0K Jan 6 2023 Macros/
-rwxr-xr-x 1 can can 2.0K Jan 6 2023 Allwmake*
-rw-r--r-- 1 can can 496 Jan 6 2023 CFDFoundation55x55.png
-rw-r--r-- 1 can can 948 Jan 6 2023 customdoxygen.css
-rw-r--r-- 1 can can 103K Jan 6 2023 Doxyfile
-rw-r--r-- 1 can can 716 Jan 6 2023 footer.html
-rw-r--r-- 1 can can 2.1K Jan 6 2023 header.html
-rw-r--r-- 1 can can 7.5K Jan 6 2023 README.html
-rw-r--r-- 1 can can 1.7K Jan 6 2023 README.org
can@M320-TC:/home/can/.local/share/OpenFOAM/OpenFOAM-10/doc/Doxygen> ./Allwmake (git)-[master]-
也可以手动找。加载了OpenFOAM环境后,src
命令直接跳到源代码目录,然后:
直接找到类的定义:
find . -name calssWhatIWant.H
直接找函数:
grep -r "functionWhatIWant(" .
加半拉括号是为了减少搜索到的结果。搭配正则表达式用,搜的效率更高。