OpenFOAM源代码解析问题
- 
							
							
							
							
							
							
大伙好,最近在读OpenFOAM源代码,遇到两个问题不太明白,望各路大神指点啊。 1)比如这样的语法: theta.primitiveFieldRef() /= mesh.time().deltaTValue()*mesh.V();
 以我幼儿园级别的C++语法知识,mesh是类对象,time()是成员函数,但搞不懂为何成员函数后面还可以加“.deltaTValue()”这个成员函数呢?2)经常看到这样的一个表达形式, scalarField sumPhi ( fvc::surfaceSum(mag(phi))().primitiveField() );这个代码我能读懂啥意思,就是求某个单元体的各个面的通量和,但有两个问题,一个是 surfaceSum(mag(phi))(),为何(mag(phi))后面还有个(),费解啊,不懂啊;第二个是primitiveField()这个函数是干啥的,看到很多地方都用它。求指点,好人一生平安!!! 
- 
							
							
							
							
							
							
mesh是类对象,time()是成员函数,但搞不懂为何成员函数后面还可以加“.deltaTValue()”这个成员函数呢? 可以理解成mesh是类对象,time()是成员函数,但是还返回一个类对象,其实mesh.time()返回的是TimeState对象,然后deltaTValue()是TimeState对象的成员函数 ()OpenFOAM有一些括号被重载了。目前你说的这个表示tmp类型的重载(),要不然的话返回的是一个tmp类型。primitiveField()可以理解成是内部场。求某个单元体的各个面的通量和 对,就是这个意思。对网格单元的面的通量的绝对值加和 
 
			



