是不是因为u取值的问题,能不能先拟合出符合实验数据的u,k,z0这三个关键参数,用这些拟合的参数来给openfoam算风廓线;
第二个问题也许是因为实验风廓线不是完美的对数廓线,导致不同参考高度和速度算出的风廓线不一样。
另外,我之前给ABL廓线的时候是用了codedFixedValue边界条件自己编了一段廓线生成代码给k、w和e用,你可以参考一下(我的环境是2.4.x):
xMin
{
type codedFixedValue;
value $internalField; //default value
redirectType kAtm; //name of new BC type
code
#{
const fvPatch& inletPatch = this->patch();
scalarField& vf = *this;
forAll(vf, i)
{
scalar z = inletPatch.Cf()[i].z();
scalar z_Ground = 8;
scalar Cmu = 0.11;
scalar uStar = 0.618;
scalar z0 = 0.03;
scalar C1 = -0.1693041080673375; // C1和C2根据实验数据的k拟合得到
scalar C2 = 3.668086709040146;
vf[i] = sqr(uStar)/sqrt(Cmu) * sqrt(C1*log((z - z_Ground + z0)/z0) + C2);
}
#};
}
w和e的边界条件代码同理