摆动流入口 BC

计算科学 边界条件 开放式泡沫
2021-12-26 11:39:57

我想做振荡流的 LES,即通道中没有平均分量的正弦流。为了在不使用长通道的情况下以较低的目数获得完全发展的流动,我想将其映射回下游的某个位置或从出口回收。

对于正弦曲线,我在 RANS 中使用了 codedFixedValue。对于映射,我可以使用类似于 PitzDailyMapped 教程中的 mappedpatch 之类的东西。

是否可以以某种方式将映射的入口与 codedFixedValue 结合起来?

也欢迎任何其他减少计算工作量的建议。

谢谢

SM

1个回答

我会继续扩展codedFixedValue边界条件,您已经可以使用一些行直接从其代码访问映射的入口补丁。下面是一个愚蠢的例子,应该说明访问。请注意,赋值运算符的说法是我自己编的,唯一的目的是为了说明工作原理。上面的几行是重要的。

您首先定义入口补丁名称并获取对网格的 const 引用。之后创建对速度场的 const 引用,该引用从对象注册表中查找。下一步查找补丁名称并将相应的补丁 ID 存储为标签,然后下一行将重用该标签来访问入口补丁的边界字段。

myPatch
{
    type            codedFixedValue;
    value           uniform 0;
    redirectType    rampedFixedValue;   // name of generated BC

    code
    #{
        const word coupledPatchName("INLET");
        const fvMesh& mesh(dimensionedInternalField().mesh());
        const volVectorField& U(db().lookupObject<volVectorField>("U");

        const label coupledPatchID(mesh.boundaryMesh().findPatchID(coupledPatchName));

        const vectorField& UbCoupled(U.boundaryField()[coupledPatchID]);

        operator==(10*vector::one*max(mag(UbCoupled)));
    #};
}

我希望这对您的问题有所帮助,否则请大声疾呼。