OpenFoam 获取每个点的坐标向量
-
各位朋友:
我想通过计算得到U在切向和轴向的速度分量,所以要用到如下的公式:
Uradial = vector(position) & U / mag( vector(position))
读取U场数据用如下代码:
IOobject Uheader ( "U" runTime.timeName(), mesh, IOobject::MUST_READ );
可是在读取各个网格中心坐标的时候,遇到了问题,我的代码如下:
void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh) { //bool writeResults = !args.optionFound("noWrite"); IOobject Uheader ( "U", runTime.timeName(), mesh, IOobject::MUST_READ ); // Check U exists if (Uheader.headerOk() ) { Info<< " Reading U" << endl; volVectorField U(Uheader, mesh); // 读取各个网格中心点的坐标 volVectorField& centres = mesh.C().internalField(); // 由于mesh.C()在网格内部返回的是中心点的坐标,在网格边界处返回的是面心坐标,所以用.internalField(),可是在这儿报错 volScalarField URadial ( IOobject ( "URadial", runTime.timeName(), mesh ), ((centres - centres.component(2) ) & U) //mag ((mesh.C() - (0., 0., mesh.C().component(2))) //这个地方我想得到一个平行于z轴的坐标,方法是用这一点的位置向量减去(0, 0, z)可是系统报错告诉我不能这样减。 ); } else { Info<< " Missing p or T" << endl; } Info<< "\nEnd\n" << endl; }
我想问一下,如果想实现mesh.C()- (0, 0, z)的话,需要怎么做?
非常感谢!
Janry