1

I'm trying to modify the sonicFoam forwardStep example with more realistic boundary conditions.

In 0/p :

//internalField   uniform 1;
internalField   uniform 100000;

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

And in 0/p:

//internalField   uniform 1;
internalField   uniform 300;

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

But this leads to an strang error:

Time = 0.002

Courant Number mean: 0.24881 max: 0.25 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 PIMPLE: iteration 1 smoothSolver: Solving for Ux, Initial residual = 1, Final residual = 9.33263e-16, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 1, Final residual = 6.21609e-17, No Iterations 1 smoothSolver: Solving for e, Initial residual = 1, Final residual = 2.96112e-06, No Iterations 3 smoothSolver: Solving for p, Initial residual = 1, Final residual = 9.16163e-07, No Iterations 22 diagonal: Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0 time step continuity errors : sum local = 0.000363585, global = 0.000346824, cumulative = 0.000346824 PIMPLE: iteration 2 smoothSolver: Solving for Ux, Initial residual = 0.0109637, Final residual = 3.46971e-14, No Iterations 1 smoothSolver: Solving for Uy, Initial residual = 0.0462988, Final residual = 1.90246e-17, No Iterations 1 smoothSolver: Solving for e, Initial residual = 0.999979, Final residual = 1.12177e-06, No Iterations 3 0 Foam::error::printStack(Foam::Ostream&) at ??:? 1 Foam::sigFpe::sigHandler(int) at ??:? 2 ? in "/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() at ??:? 8 Foam::fvMatrix::fvMatrix(Foam::GeometricField const&, Foam::dimensionSet const&) at ??:? 9 Foam::tmp > Foam::fv::optionList::operator()(Foam::GeometricField const&, Foam::GeometricField&, Foam::word const&) at ??:? 10 ? at ??:? 11 __libc_start_main in "/lib64/libc.so.6" 12 ? at ??:? Floating point exception

I would appreciate if you could help me know what is wrong and how I can solve it.

Keywords: Floating point exception, __libc_start_main, Foam::error::printStack(Foam::Ostream&),

Foad S. Farimani
  • 12,396
  • 15
  • 78
  • 193

1 Answers1

1

There are a dozen of different issues which can cause such an error. Unfortunately the OpenFOAM error messages are not very specific and there are not many documentations showing how these error messages can be systematically resolved.

In this specific case the error arises due to the huge difference between the modified initial and inlet pressure value and the original outlet value, which I forgot to modify accordingly. Modifying:

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

to

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

or simply

outlet
{
    type            fixedValue;
    value           uniform 100000;
}

resolves the issue and the solver converges successfully. Rule of thumb moderating the boundary condition, minimizing deltaT in controlDict file can diminish the probability of this issue.

Foad S. Farimani
  • 12,396
  • 15
  • 78
  • 193