sonicFoam forwardStep 现实边界条件导致错误::printStack(Foam::Ostream&)

Posted

技术标签:

【中文标题】sonicFoam forwardStep 现实边界条件导致错误::printStack(Foam::Ostream&)【英文标题】:sonicFoam forwardStep realistic boundary conditions leads to error::printStack(Foam::Ostream&) 【发布时间】:2018-08-27 12:05:45 【问题描述】:

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

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

库朗数平均值:0.24881 最大值:0.25 对角线:求解 rho,初始残差 = 0,最终残差 = 0, 无迭代 0 PIMPLE:迭代 1 smoothSolver:求解 Ux, 初始残差 = 1,最终残差 = 9.33263e-16,无迭代 1 smoothSolver:求解 Uy,初始残差 = 1,最终残差 = 6.21609e-17,无迭代 1 smoothSolver:求解 e,初始残差 = 1,最终残差 = 2.96112e-06,无迭代 3 smoothSolver:求解 p,初始残差 = 1,最终残差 = 9.16163e-07,无迭代 22 对角线:求解 rho,初始残差 = 0,最终残差 = 0,无迭代 0 时间步连续性 错误:总和本地 = 0.000363585,全局 = 0.000346824,累积 = 0.000346824 PIMPLE:迭代 2 smoothSolver:求解 Ux,初始残差 = 0.0109637,最终残差 = 3.46971e-14,无迭代 1 smoothSolver:求解 Uy,初始残差 = 0.0462988,最终 残差 = 1.90246e-17,无迭代 1 smoothSolver:求解 e, 初始残差 = 0.999979,最终残差 = 1.12177e-06,否 迭代 3 0 泡沫::错误::printStack(泡沫::Ostream&) 在??:? 1 Foam::sigFpe::sigHandler(int) at ??:? 2 ?在“/lib64/libc.so.6”中 3 Foam::sqrt(Foam::Field&, Foam::UList const&) 在 ??:? 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::word const&) at ??:? 10 ?在 ??:? 11 __libc_start_main 在“/lib64/libc.so.6” 12 ?在 ??:?浮点异常

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

关键字: Floating point exception__libc_start_mainFoam::error::printStack(Foam::Ostream&)

【问题讨论】:

【参考方案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;

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

【讨论】:

以上是关于sonicFoam forwardStep 现实边界条件导致错误::printStack(Foam::Ostream&)的主要内容,如果未能解决你的问题,请参考以下文章

使用边距设置跨度之间的距离

边玩游戏,边学编程?试试这款开源游戏

可扩展/模块化 CSS:如何处理模块之间的垂直边距?

如何阅读Spring源码

如何向相对 div 溢出父级添加边距以向下移动内容

看海