openfoam新版本湍流模型编译
-
继续求救 最近试图对SST k-w模型做一些修改。。其中有几行代码是试图读入场中的一些变量以及transportProperties文件中设置的一些常量。这几行代码如下:
const volScalarField& alpha1= this->mesh_.lookupObject<volScalarField>("alpha.water"); const volScalarField& alpha2= this->mesh_.lookupObject<volScalarField>("alpha.vapour"); const dictionary& transportProperties= this->mesh_.lookupObject<IOdictionary>("transportProperties"); const dictionary& phase1= transportProperties.subDict("water"); const dictionary& phase2= transportProperties.subDict("vapour"); const dimensionedScalar& rho1 = phase1.lookup("rho"); const dimensionedScalar& rho2 = phase2.lookup("rho");
但是编译的时候却报了这个错误:
lnInclude/modkOmegaSSTBase.C:42:69: error: expected primary-expression before ‘>’ token const volScalarField alpha1= this->mesh_.lookupObject<volScalarField>("alpha.water"); ^ lnInclude/modkOmegaSSTBase.C:43:69: error: expected primary-expression before ‘>’ token const volScalarField alpha2= this->mesh_.lookupObject<volScalarField>("alpha.vapour"); ^ lnInclude/modkOmegaSSTBase.C:59:78: error: expected primary-expression before ‘>’ token const dictionary& transportProperties= this->mesh_.lookupObject<IOdictionary>("transportProperties"); ^ make: *** [Make/linux64GccDPInt32Opt/makeTurbModel.o] 错误 1
error: expected primary-expression before ‘>’ token
这些错误都发生在lookupObject函数上,是否是我这个函数的写法有问题?在网上搜也未得到解释方法,请问各位有碰到类似情况的吗?望各位大神不吝赐教 -
参照@wwzhao 前辈的做法·,果然编译通过了,目前正在测试中,开心^-^。非常感谢!
其实还有问题想问两位前辈,对于一个刚接触openfoam代码改写的人,应该如何去慢慢掌握of中的代码结构、风格,以及各种类的用法?目前的我一打开Of中的某.C文件就有些懵逼。。 -
@东岳 前辈,貌似我改写的那几行在3.0之前的版本这么用可以编译成功T-T,看到别人在2.4.0这么用过
const volScalarField& alpha2= mesh_.lookupObject<volScalarField>("alpha.vapour");
-
改写的那几行在3.0之前的版本这么用可以编译成功
3.0版本之前没有这个问题。3.0版本的湍流模型框架重写了,所有的湍流模型都变成了类模板,所以在类中调用函数模板时需要加
template
或typename
。 -
-
@wwzhao 非常感谢前辈的指点^-^
-
今天早上按照楼主的回复,正好是我要的湍流模型呀!我正在看这篇JFM文章。
-
@lllwonderliquid 能加个朋友嘛?也遇到添加湍流模型编译问题,交流交流
-
@一颗鸭蛋 可以邮件交流~ lzhforward@whu.edu.cn
-
-