1

我正在尝试使用更现实的边界条件修改sonicFoam forwardStep 示例。

0/p

//internalField   uniform 1;
internalField   uniform 100000;

boundaryField
{
inlet
{
    type            fixedValue;
    //value           uniform 1;
    value           uniform 100000;
}

并在0/p

//internalField   uniform 1;
internalField   uniform 300;

boundaryField
{
    inlet
    {
        type            fixedValue;
        //value           uniform 1;
        value           uniform 300;
    }

但这会导致一个奇怪的错误:

时间 = 0.002

无迭代 1 smoothSolver:求解 Uy,初始残差 = 0.0462988,最终残差 = 1.90246e-17,无迭代 1 SmoothSolver:求解 e,初始残差 = 0.999979,最终残差 = 1.12177e-06,无迭代 3 0 泡沫: :error::printStack(Foam::Ostream&) 在 ??:? 1 Foam::sigFpe::sigHandler(int) at ??:? 2 ? 在 "/lib64/libc.so.6" 3 Foam::sqrt(Foam::Field&, Foam::UList const&) at ??:? 4 Foam::sqrt(Foam::tmp > const&) at ??:? 5 Foam::waveTransmissiveFvPatchField::advectionSpeed() const at ??:? 6 Foam::advectiveFvPatchField::updateCoeffs() at ??:? 7 Foam::GeometricField::Boundary::updateCoeffs() 在 ??:? 8 Foam::fvMatrix::fvMatrix(Foam::GeometricField const&, Foam::dimensionSet const&) 在 ??:? 9 Foam::tmp > Foam::fv::optionList::operator()(Foam:: GeometricField const&, Foam::GeometricField&, Foam::word const&) 在 ??:? 10 ? 在 ??:?11 __libc_start_main 在“/lib64/libc.so.6” 12 中?在 ??:?浮点异常

如果您能帮助我了解问题所在以及如何解决,我将不胜感激。

关键词: Floating point exception , __libc_start_main, Foam::error::printStack(Foam::Ostream&),

4

1 回答 1

1

有许多不同的问题可能会导致此类错误。不幸的是,OpenFOAM 错误消息不是很具体,并且没有多少文档显示如何系统地解决这些错误消息。

在这种特定情况下,由于修改后的初始和入口压力值与原始出口值之间的巨大差异而出现错误,我忘记相应地修改。修改:

outlet
    {
        type            waveTransmissive;
        field           p;
        psi             thermo:psi;
        gamma           1.4;
        fieldInf        1;
        lInf            3;
        value           uniform 1;
    }

outlet
    {
        type            waveTransmissive;
        field           p;
        psi             thermo:psi;
        gamma           1.4;
        fieldInf        100000;
        lInf            3;
        value           uniform 100000;
    }

或者干脆

outlet
{
    type            fixedValue;
    value           uniform 100000;
}

解决了问题,求解器成功收敛。调节边界条件的经验法则,deltaTcontrolDict文件中最小化可以减少这个问题的可能性。

于 2018-08-27T12:54:08.597 回答