关于拉格朗日求解器的编译问题
-
最近在加入气泡长大方程,修改了KinematicParcel.H的一系列源代码,编译源代码时候很多warn,但是编译成功了,在编译求解器时候出现以下问题,我没看懂
/home/zly/OpenFOAM/OpenFOAM-3.0.0/src/lagrangian/intermediate/lnInclude/KinematicParcelI.H:105:12: error: expression list treated as compound expression in mem-initializer [-fpermissive] Pc_(0.0) //- myadd ^ /home/zly/OpenFOAM/OpenFOAM-3.0.0/src/lagrangian/intermediate/lnInclude/KinematicParcelI.H:105:12: warning: left operand of comma operator has no effect [-Wunused-value]
我的这个KinematicParcelI.H源代码该地方如下:
template<class ParcelType> inline Foam::KinematicParcel<ParcelType>::KinematicParcel ( const polyMesh& owner, const vector& position, const label cellI, const label tetFaceI, const label tetPtI ) : ParcelType(owner, position, cellI, tetFaceI, tetPtI), active_(true), typeId_(-1), nParticle_(0), d_(0.0), dTarget_(0.0), U_(vector::zero), rho_(0.0), age_(0.0), tTurb_(0.0), dRt_(0.0), //- myadd Ro_(0,0), //- myadd pgo_(0.0), //- myadd UTurb_(vector::zero), rhoc_(0.0), Uc_(vector::zero), muc_(0.0), Pc_(0.0) //- myadd {}
在我修改之前他源代码是这个样子
template<class ParcelType> inline Foam::KinematicParcel<ParcelType>::KinematicParcel ( const polyMesh& owner, const vector& position, const label cellI, const label tetFaceI, const label tetPtI ) : ParcelType(owner, position, cellI, tetFaceI, tetPtI), active_(true), typeId_(-1), nParticle_(0), d_(0.0), dTarget_(0.0), U_(vector::zero), rho_(0.0), age_(0.0), tTurb_(0.0), UTurb_(vector::zero), rhoc_(0.0), Uc_(vector::zero), muc_(0.0) {}
我没看懂编译求解器报错的原因是什么,求大佬指导(我尝试改过我//myadd的添加顺序,都是最后一个部分原因,不过那个地方我看了源代码,是没有逗号的)
-
你加的那些私有成员,声明了么
@李东岳 我在KinematicParcel.H文件,以及这个文件的前面,我都对我新加变量声明了,不然不声明这些东西源代码都无法进行编译,会有很多error。(目前只不过编译时候有一些warning,连着源代码以前自带的一些东西都在warning)。
目前这个问题是我开始编译求解器时候,求解器识别源代码时候出现的情况。我再看看我代码声明问题吧,我也不知道和这个后没有关系
另:之前我代码是这样
template<class ParcelType> inline Foam::KinematicParcel<ParcelType>::KinematicParcel ( const polyMesh& owner, const vector& position, const label cellI, const label tetFaceI, const label tetPtI ) : ParcelType(owner, position, cellI, tetFaceI, tetPtI), active_(true), typeId_(-1), nParticle_(0), d_(0.0), dTarget_(0.0), U_(vector::zero), rho_(0.0), age_(0.0), tTurb_(0.0), dRt_(0.0), //- myadd Ro_(0,0), //- myadd pgo_(0.0), //- myadd Pc_(0.0), //- myadd UTurb_(vector::zero), rhoc_(0.0), Uc_(vector::zero), muc_(0.0) {}
他求解器会报错
/home/zly/OpenFOAM/OpenFOAM-3.0.0/src/lagrangian/intermediate/lnInclude/KinematicParcelI.H:105:12: error: expression list treated as compound expression in mem-initializer [-fpermissive] muc_(0.0)
看起来只报错最后一个地方,我也不知道为什么。这些代码的声明和修改,一部分是我看网上的一篇资料修改,另一部分是我参考着原始代码格式,进行改写。