CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

open Channel, interFoam simulation keep numerically exploding

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 18, 2022, 05:27
Default open Channel, interFoam simulation keep numerically exploding
  #1
Member
 
Miguel Hernandez
Join Date: Feb 2021
Location: En mi casa
Posts: 56
Rep Power: 5
Miguel Hernandez is on a distinguished road
Hi all,
I am running an interFoam simulation, an open channel flowing into a natural stream via a dissipation structure (stilling basin tipe IV).
For the first run I was planning to simulate 40 seconds total.
The simulation runs smoothly for the first seconds; I arrived in the best case at 29 seconds of simulation, then the simulation continues to "explode".
I checked the mesh - it's not great - but with checkMesh I have no errors.
At the inlet, my intention is set a known flow velocity that varies linearly in time until arriving to the wished value.

I was wondering at this point if my BCs are correct.

Can someone help me, please?

These are my BCs:
US_Channel is the upstream channel (artificial channel)
DS_Channel is the downstream channel (natural river)
Vasca_Carico is a fictitious loading tank located at the upstream end of the model
Dissipatore is the dissipative structure (concrete)
Inlet
Outlet
Atm_sx is a patch on the left side of the model, outlet in the atmosphere - only air -
Atm_dx is a patch on the right side of the model, outlet in the atmosphere - only air -
atm is a patch on the top of the model, outlet in the atmosphere - only air -



alpha.water
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      alpha.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 0 0 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    US_Channel
    {
        type            zeroGradient;
    }
    DS_Channel
    {
        type            zeroGradient;
    }
    Vasca_Carico
    {
        type            zeroGradient;
    }
    Inlet
    {
        type            fixedValue;
        value           uniform 1;
    }
    Outlet
    {
        type            inletOutlet;
        inletValue      uniform 0;
        value           uniform 0;
    }
    Atm_sx
    {
        type            inletOutlet;
        inletValue      uniform 0;
        value           uniform 0;
    }
    Atm_dx
    {
        type            inletOutlet;
        inletValue      uniform 0;
        value           uniform 0;
    }
    Dissipatore
    {
        type            zeroGradient;
    }
    atm
    {
        type            inletOutlet;
        inletValue      uniform 0;
        value           uniform 0;
    }
}
epsilon
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -3 0 0 0 0];

internalField   uniform 0.01078;

boundaryField
{
    US_Channel
    {
        type            epsilonWallFunction;
        value           uniform 0;
    }
    DS_Channel
    {
        type            epsilonWallFunction;
        value           uniform 0;
    }
    Vasca_Carico
    {
        type            epsilonWallFunction;
        value           uniform 0;
    }
    Inlet
    {
        type            fixedValue;
        value           $internalField;//uniform 0.01078
    }
    Outlet
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Atm_sx
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Atm_dx
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Dissipatore
    {
        type            epsilonWallFunction;
        value           uniform 0;
    }
    atm
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
}
k
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 0.015;

boundaryField
{
    US_Channel
    {
        type            kqRWallFunction;
        value           uniform 0.1;
    }
    DS_Channel
    {
        type            kqRWallFunction;
        value           uniform 0.1;
    }
    Vasca_Carico
    {
        type            kqRWallFunction;
        value           uniform 0.1;
    }
    Inlet
    {
        type            fixedValue;
        value           $internalField;
    }
    Outlet
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Atm_sx
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Atm_dx
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Dissipatore
    {
        type            kqRWallFunction;
        value           uniform 0.0;
    }
    atm
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
}
nut
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -1 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    US_Channel
    {
        type            nutkRoughWallFunction;
        Ks              uniform 0.05;
        Cs              uniform 0.5;
        value           uniform 0;
    }
    DS_Channel
    {
        type            nutkRoughWallFunction;
        Ks              uniform 0.05;
        Cs              uniform 0.5;
        value           uniform 0;
    }
    Vasca_Carico
    {
        type            nutkWallFunction;
        value           uniform 0;
    }
    Inlet
    {
        type            calculated;
        value           uniform 0;
    }
    Outlet
    {
        type            calculated;
        value           uniform 0;
    }
    Atm_sx
    {
        type            calculated;
        value           uniform 0;
    }
    Atm_dx
    {
        type            calculated;
        value           uniform 0;
    }
    Dissipatore
    {
        type            nutkRoughWallFunction;
        Ks              uniform 0.002;
        Cs              uniform 0.5;
        value           uniform 0;
    }
    atm
    {
        type            calculated;
        value           uniform 0;
    }
}

p_rgh
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [1 -1 -2 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    US_Channel
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    DS_Channel
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Vasca_Carico
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Inlet
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Outlet
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Atm_sx
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Atm_dx
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Dissipatore
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    atm
    {
        type            totalPressure;
        p0              uniform 0;
    /*    rho             rho;
        psi             none;
        gamma           1;
        p0              uniform 0;
        value           uniform 0;*/
    }
}
U
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volVectorField;
    location    "0";
    object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    US_Channel
    {
        type            noSlip;
    }
    DS_Channel
    {
        type            noSlip;
    }
    Vasca_Carico
    {
        type            noSlip;
    }
    Inlet
    {
        type            uniformFixedValue;
        uniformValue    table;
        uniformValueCoeffs
        {
            values
            2
            (
              (0 (0 0 0))
              (1.5 (0.5 0 0))
            )
            ;
        }
        value           uniform (0 0 0);
    }
    Outlet
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           uniform (0 0 0);
    }
    Atm_sx
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           uniform (0 0 0);
    }
    Atm_dx
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           uniform (0 0 0);
    }
    Dissipatore
    {
        type            noSlip;
    }
    atm
    {
        type            pressureInletOutletVelocity;
        value           uniform (0 0 0);
    }
}
Finally my fvSchemes and fvSolution files:

fvSchemes
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes
{
    default         Euler;
}

gradSchemes
{
    default         Gauss linear;
}

divSchemes
{
    div(rhoPhi,U)   Gauss linearUpwind grad(U);
    div(phi,alpha)  Gauss vanLeer;
    div(phirb,alpha) Gauss linear;
    div(rhoPhi,k)      Gauss upwind;
    div(phi,k)       Gauss upwind;
    div(phi,epsilon) Gauss upwind;
    div(rhoPhi,epsilon) Gauss upwind;
    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default         Gauss linear orthogonal;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         orthogonal;//corrected
}
fvSolutions
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    "alpha.water.*"
    {
        nAlphaCorr      1;
        nAlphaSubCycles 2;
        cAlpha          1;

        MULESCorr       yes;
        nLimiterIter    3;

        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-8;
        relTol          0;
    }

    "pcorr.*"
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-10;
        relTol          0.05;
    }

    p_rgh
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-07;
        /*In transient simulations, it is usual to set the solver relative tolerance to 0 to force
        the solution to converge to the solver tolerance in each time step.*/
        relTol          0;//0.05
    }

    p_rghFinal
    {
        $p_rgh;
        relTol          0;
    }

    "(U|k|epsilon).*"
    {
        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-08;
        relTol          0.1;
        minIter         1;
    }
}

PIMPLE
{
    momentumPredictor   no;
    nOuterCorrectors    1;  //1
    nCorrectors         3;
    nNonOrthogonalCorrectors 1; //1
}

relaxationFactors
{
    equations
    {
        ".*"                1;
    }
}
Miguel Hernandez is offline   Reply With Quote

Old   April 18, 2022, 13:53
Default
  #2
Senior Member
 
piu58's Avatar
 
Uwe Pilz
Join Date: Feb 2017
Location: Leipzig, Germany
Posts: 744
Rep Power: 15
piu58 is on a distinguished road
You may try using first order divSchemes first.

If this does not help: Calculate to the timere where all is ok, reduce the time step and look where teh "exploding starts". It would be helpful for us if you make a skecth of this result. May be something is wrong with your b.c.
__________________
Uwe Pilz
--
Die der Hauptbewegung überlagerte Schwankungsbewegung ist in ihren Einzelheiten so hoffnungslos kompliziert, daß ihre theoretische Berechnung aussichtslos erscheint. (Hermann Schlichting, 1950)
piu58 is offline   Reply With Quote

Old   April 18, 2022, 16:07
Default
  #3
Member
 
Miguel Hernandez
Join Date: Feb 2021
Location: En mi casa
Posts: 56
Rep Power: 5
Miguel Hernandez is on a distinguished road
I've modified the fvSolution, the simulation runs smoothly til 29.6 seconds... Than there is a continuity error, for what I understand ( see please below....)

Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    "alpha.water.*"
    {
       nAlphaCorr      1;
       nAlphaSubCycles 2;
       cAlpha          1;
       //added
       MULESCorr       yes;
       nLimiterIter    3;

       solver          smoothSolver;
       smoother        symGaussSeidel;
       tolerance       1e-08;  //1e-08
       relTol          0;
    }

    "pcorr.*"
    {

        solver          GAMG;//PCG
        preconditioner  DIC;
        smoother        GaussSeidel;//Add by pol
        tolerance       1e-10; //1e-10
        relTol          0;
    }

    p_rgh
    {
        solver          GAMG;
        tolerance       1e-4;  //1e-7
        relTol          0.01;
        smoother        GaussSeidel;  //DIC
        nPreSweeps      0;
        nPostSweeps     2;
        cacheAgglomeration true; //false
        nCellsInCoarsestLevel 2090;//1000
        agglomerator    faceAreaPair;
        mergeLevels     1;

    }

    p_rghFinal
    {
        solver          GAMG;
        tolerance       1e-6;  //1e-7
        relTol          0.0;
        smoother        GaussSeidel;  //DIC
        nPreSweeps      0;
        nPostSweeps     2;
        cacheAgglomeration true; //false
        nCellsInCoarsestLevel 2090;//1000
        agglomerator    faceAreaPair;
        mergeLevels     1;
        /*$p_rgh;
        tolerance       1e-09;//1e-09
        relTol          0;*/
    }

    "(U|k|epsilon).*"
    {
        solver          smoothSolver;
        smoother        symGaussSeidel;
        nSweep          1;
        tolerance       1e-08; //1e-08
        relTol          0.1;
    }

    UFinal
    {
        $U;
        relTol          0;
    }
}

PIMPLE
{
    momentumPredictor   no;//no
    nOuterCorrectors    50;  //1
    nCorrectors         5;  //3
    nNonOrthogonalCorrectors 1; //1
    correctPhi          yes;

    residualControl
    {
        U
        {
                tolerance  1e-03;
                relTol     0;
        }

        p_rgh
        {
                tolerance  1e-03;
                relTol     0;
        }

    }
}

relaxationFactors
{
    equations
    {
        ".*"                1;
    }
}
Code:
Courant Number mean: 0.00872699 max: 0.498106
Interface Courant Number mean: 0.0028107 max: 0.498106
deltaT = 0.00181341
Time = 29.6728

PIMPLE: iteration 1
smoothSolver:  Solving for alpha.water, Initial residual = 4.95598e-05, Final residual = 2.81908e-11, No Iterations 2
Phase-1 volume fraction = 0.0743685  Min(alpha.water) = 0  Max(alpha.water) = 1
MULES: Correcting alpha.water
Phase-1 volume fraction = 0.0743685  Min(alpha.water) = 0  Max(alpha.water) = 1
smoothSolver:  Solving for alpha.water, Initial residual = 4.95599e-05, Final residual = 2.82273e-11, No Iterations 2
Phase-1 volume fraction = 0.0743701  Min(alpha.water) = 0  Max(alpha.water) = 1
MULES: Correcting alpha.water
Phase-1 volume fraction = 0.0743701  Min(alpha.water) = 0  Max(alpha.water) = 1
Setting residual field for first solver iteration for solver field: p_rgh
GAMG:  Solving for p_rgh, Initial residual = 0.00258632, Final residual = 8.67018e-05, No Iterations 2
GAMG:  Solving for p_rgh, Initial residual = 0.000611305, Final residual = 7.03293e-05, No Iterations 1
time step continuity errors : sum local = 5.69794e-05, global = 9.86179e-06, cumulative = -0.0137937
GAMG:  Solving for p_rgh, Initial residual = 0.327079, Final residual = 0.00261458, No Iterations 5
GAMG:  Solving for p_rgh, Initial residual = 0.0600958, Final residual = 0.000503613, No Iterations 5
time step continuity errors : sum local = 0.00120971, global = 2.13181e-05, cumulative = -0.0137724
GAMG:  Solving for p_rgh, Initial residual = 0.999777, Final residual = 0.0072521, No Iterations 5
GAMG:  Solving for p_rgh, Initial residual = 0.0310123, Final residual = 0.000135246, No Iterations 7
time step continuity errors : sum local = 10.5254, global = 0.739539, cumulative = 0.725766
GAMG:  Solving for p_rgh, Initial residual = 1, Final residual = 0.00917299, No Iterations 5
GAMG:  Solving for p_rgh, Initial residual = 0.0391282, Final residual = 0.000295516, No Iterations 6
time step continuity errors : sum local = 1.99456e+10, global = 1.29176e+08, cumulative = 1.29176e+08
GAMG:  Solving for p_rgh, Initial residual = 1, Final residual = 0.00788926, No Iterations 5
GAMG:  Solving for p_rgh, Initial residual = 0.0308159, Final residual = 7.83812e-07, No Iterations 19
time step continuity errors : sum local = 2.82235e+25, global = 1.83278e+24, cumulative = 1.83278e+24
PIMPLE: iteration 2
smoothSolver:  Solving for alpha.water, Initial residual = 0.000217746, Final residual = 8.86914e-09, No Iterations 64
Phase-1 volume fraction = 6.48819e-07  Min(alpha.water) = 0  Max(alpha.water) = 1
MULES: Correcting alpha.water
Phase-1 volume fraction = -539.784  Min(alpha.water) = -4.15712e+25  Max(alpha.water) = 2.51495e+25
smoothSolver:  Solving for alpha.water, Initial residual = 1, Final residual = 4.85524e-09, No Iterations 12
Phase-1 volume fraction = -2.58774e+14  Min(alpha.water) = -5.62831e+17  Max(alpha.water) = 3.8513e+17
MULES: Correcting alpha.water
Phase-1 volume fraction = 1.95218e+44  Min(alpha.water) = -1.81229e+66  Max(alpha.water) = 2.32406e+66
GAMG:  Solving for p_rgh, Initial residual = 1, Final residual = 0.00894108, No Iterations 50
GAMG:  Solving for p_rgh, Initial residual = 3.20506e-26, Final residual = 3.20506e-26, No Iterations 0
time step continuity errors : sum local = 1.04794e+56, global = 1.16607e+40, cumulative = 1.16607e+40
GAMG:  Solving for p_rgh, Initial residual = 0.0569763, Final residual = 0.000388805, No Iterations 7
GAMG:  Solving for p_rgh, Initial residual = 4.38524e-26, Final residual = 4.38524e-26, No Iterations 0
time step continuity errors : sum local = 2.11986e+94, global = 1.20331e+78, cumulative = 1.20331e+78
[9] #0  Foam::error::printStack(Foam::Ostream&)sh: addr2line: command not found
 addr2line failed
[9] #1  Foam::sigFpe::sigHandler(int)sh: addr2line: command not found
 addr2line failed
[9] #2  sh: which: command not found
__kernel_rt_sigreturn
[9] #3  Foam::scalarProduct<double, double>::type Foam::sumProd<double>(Foam::UList<double> const&, Foam::UList<double> const&)sh: addr2line: command not found
 addr2line failed
[9] #4  Foam::PCG::scalarSolve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) constsh: addr2line: command not found
 addr2line failed
[9] #5  Foam::GAMGSolver::solveCoarsestLevel(Foam::Field<double>&, Foam::Field<double> const&) constsh: addr2line: command not found
 addr2line failed
[9] #6  Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) constsh: addr2line: command not found
 addr2line failed
[9] #7  Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) constsh: addr2line: command not found
 addr2line failed
[9] #8  Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&)sh: addr2line: command not found
 addr2line failed
[9] #9  Foam::fvMatrix<double>::solveSegregatedOrCoupled(Foam::dictionary const&)sh: addr2line: command not found
 addr2line failed
[9] #10  Foam::fvMesh::solve(Foam::fvMatrix<double>&, Foam::dictionary const&) constsh: addr2line: command not found
 addr2line failed
[9] #11  sh: which: command not found
?
[9] #12  __libc_start_mainsh: addr2line: command not found
 addr2line failed
[9] #13  sh: which: command not found
?
[1e57e9171cd2:445  :0:445] Caught signal 8 (Floating point exception: tkill(2) or tgkill(2))
==== backtrace (tid:    445) ====
 0  /usr/lib64/libucs.so.0(ucs_handle_error+0x114) [0xffff817f4a94]
 1  /usr/lib64/libucs.so.0(+0x22dcc) [0xffff817f4dcc]
 2  /usr/lib64/libucs.so.0(+0x22fa4) [0xffff817f4fa4]
 3  linux-vdso.so.1(__kernel_rt_sigreturn+0) [0xffff8c2247c0]
 4  /lib64/libpthread.so.0(raise+0xb0) [0xffff86de1e48]
 5  linux-vdso.so.1(__kernel_rt_sigreturn+0) [0xffff8c2247c0]
 6  /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZN4Foam7sumProdIdEENS_13scalarProductIT_S2_E4typeERKNS_5UListIS2_EES8_+0x44) [0xffff879a6af4]
 7  /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZNK4Foam3PCG11scalarSolveERNS_5FieldIdEERKS2_h+0x648) [0xffff877cb418]
 8  /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZNK4Foam10GAMGSolver18solveCoarsestLevelERNS_5FieldIdEERKS2_+0xa8) [0xffff877f17e8]
 9  /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZNK4Foam10GAMGSolver6VcycleERKNS_7PtrListINS_9lduMatrix8smootherEEERNS_5FieldIdEERKS8_S9_S9_S9_S9_S9_RNS1_IS8_EESD_h+0x450) [0xffff877f3a68]
10  /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZNK4Foam10GAMGSolver5solveERNS_5FieldIdEERKS2_h+0x478) [0xffff877f5750]
11  /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libfiniteVolume.so(_ZN4Foam8fvMatrixIdE15solveSegregatedERKNS_10dictionaryE+0x44c) [0xffff8ab276dc]
12  /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libfiniteVolume.so(_ZN4Foam8fvMatrixIdE24solveSegregatedOrCoupledERKNS_10dictionaryE+0x368) [0xffff8a3bf300]
13  /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libfiniteVolume.so(_ZNK4Foam6fvMesh5solveERNS_8fvMatrixIdEERKNS_10dictionaryE+0x1c) [0xffff8a369004]
14  interFoam() [0x44cd78]
15  /lib64/libc.so.6(__libc_start_main+0xe8) [0xffff86c69fa0]
16  interFoam() [0x452688]
=================================
[1e57e9171cd2:00445] *** Process received signal ***
[1e57e9171cd2:00445] Signal: Floating point exception (8)
[1e57e9171cd2:00445] Signal code:  (-6)
[1e57e9171cd2:00445] Failing at address: 0x1f5000001bd
[1e57e9171cd2:00445] [ 0] linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0xffff8c2247c0]
[1e57e9171cd2:00445] [ 1] /lib64/libpthread.so.0(raise+0xb0)[0xffff86de1e48]
[1e57e9171cd2:00445] [ 2] linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0xffff8c2247c0]
[1e57e9171cd2:00445] [ 3] /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZN4Foam7sumProdIdEENS_13scalarProductIT_S2_E4typeERKNS_5UListIS2_EES8_+0x44)[0xffff879a6af4]
[1e57e9171cd2:00445] [ 4] /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZNK4Foam3PCG11scalarSolveERNS_5FieldIdEERKS2_h+0x648)[0xffff877cb418]
[1e57e9171cd2:00445] [ 5] /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZNK4Foam10GAMGSolver18solveCoarsestLevelERNS_5FieldIdEERKS2_+0xa8)[0xffff877f17e8]
[1e57e9171cd2:00445] [ 6] /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZNK4Foam10GAMGSolver6VcycleERKNS_7PtrListINS_9lduMatrix8smootherEEERNS_5FieldIdEERKS8_S9_S9_S9_S9_S9_RNS1_IS8_EESD_h+0x450)[0xffff877f3a68]
[1e57e9171cd2:00445] [ 7] /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libOpenFOAM.so(_ZNK4Foam10GAMGSolver5solveERNS_5FieldIdEERKS2_h+0x478)[0xffff877f5750]
[1e57e9171cd2:00445] [ 8] /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libfiniteVolume.so(_ZN4Foam8fvMatrixIdE15solveSegregatedERKNS_10dictionaryE+0x44c)[0xffff8ab276dc]
[1e57e9171cd2:00445] [ 9] /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libfiniteVolume.so(_ZN4Foam8fvMatrixIdE24solveSegregatedOrCoupledERKNS_10dictionaryE+0x368)[0xffff8a3bf300]
[1e57e9171cd2:00445] [10] /usr/lib/openfoam/openfoam2112/platforms/linuxARM64GccDPInt32Opt/lib/libfiniteVolume.so(_ZNK4Foam6fvMesh5solveERNS_8fvMatrixIdEERKNS_10dictionaryE+0x1c)[0xffff8a369004]
[1e57e9171cd2:00445] [11] interFoam[0x44cd78]
[1e57e9171cd2:00445] [12] /lib64/libc.so.6(__libc_start_main+0xe8)[0xffff86c69fa0]
[1e57e9171cd2:00445] [13] interFoam[0x452688]
[1e57e9171cd2:00445] *** End of error message ***
--------------------------------------------------------------------------
mpirun noticed that process rank 9 with PID 0 on node 1e57e9171cd2 exited on signal 8 (Floating point exception).
-----------------------------------------------------
I've tried to use a smaller Courant number (even 0.1) whit adjustable time step... nothing...

I don't have any ideas....
Miguel Hernandez is offline   Reply With Quote

Old   April 19, 2022, 03:17
Default
  #4
Senior Member
 
piu58's Avatar
 
Uwe Pilz
Join Date: Feb 2017
Location: Leipzig, Germany
Posts: 744
Rep Power: 15
piu58 is on a distinguished road
Before you get a floating point exception you get often very high values for pressure and/ or velocity. It is important to find out where that starts. Run up to 29 seconds, reduce the time step (or the Courant number), and observe with paraview where the irregularity starts.
__________________
Uwe Pilz
--
Die der Hauptbewegung überlagerte Schwankungsbewegung ist in ihren Einzelheiten so hoffnungslos kompliziert, daß ihre theoretische Berechnung aussichtslos erscheint. (Hermann Schlichting, 1950)
piu58 is offline   Reply With Quote

Old   April 19, 2022, 09:25
Default
  #5
Senior Member
 
Santiago Lopez Castano
Join Date: Nov 2012
Posts: 354
Rep Power: 16
Santiago is on a distinguished road
Quote:
Originally Posted by Miguel Hernandez View Post
Hi all,
I am running an interFoam simulation, an open channel flowing into a natural stream via a dissipation structure (stilling basin tipe IV).
For the first run I was planning to simulate 40 seconds total.
The simulation runs smoothly for the first seconds; I arrived in the best case at 29 seconds of simulation, then the simulation continues to "explode".
I checked the mesh - it's not great - but with checkMesh I have no errors.
At the inlet, my intention is set a known flow velocity that varies linearly in time until arriving to the wished value.

I was wondering at this point if my BCs are correct.

Can someone help me, please?

These are my BCs:
US_Channel is the upstream channel (artificial channel)
DS_Channel is the downstream channel (natural river)
Vasca_Carico is a fictitious loading tank located at the upstream end of the model
Dissipatore is the dissipative structure (concrete)
Inlet
Outlet
Atm_sx is a patch on the left side of the model, outlet in the atmosphere - only air -
Atm_dx is a patch on the right side of the model, outlet in the atmosphere - only air -
atm is a patch on the top of the model, outlet in the atmosphere - only air -



alpha.water
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      alpha.water;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 0 0 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    US_Channel
    {
        type            zeroGradient;
    }
    DS_Channel
    {
        type            zeroGradient;
    }
    Vasca_Carico
    {
        type            zeroGradient;
    }
    Inlet
    {
        type            fixedValue;
        value           uniform 1;
    }
    Outlet
    {
        type            inletOutlet;
        inletValue      uniform 0;
        value           uniform 0;
    }
    Atm_sx
    {
        type            inletOutlet;
        inletValue      uniform 0;
        value           uniform 0;
    }
    Atm_dx
    {
        type            inletOutlet;
        inletValue      uniform 0;
        value           uniform 0;
    }
    Dissipatore
    {
        type            zeroGradient;
    }
    atm
    {
        type            inletOutlet;
        inletValue      uniform 0;
        value           uniform 0;
    }
}
epsilon
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -3 0 0 0 0];

internalField   uniform 0.01078;

boundaryField
{
    US_Channel
    {
        type            epsilonWallFunction;
        value           uniform 0;
    }
    DS_Channel
    {
        type            epsilonWallFunction;
        value           uniform 0;
    }
    Vasca_Carico
    {
        type            epsilonWallFunction;
        value           uniform 0;
    }
    Inlet
    {
        type            fixedValue;
        value           $internalField;//uniform 0.01078
    }
    Outlet
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Atm_sx
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Atm_dx
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Dissipatore
    {
        type            epsilonWallFunction;
        value           uniform 0;
    }
    atm
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
}
k
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 0.015;

boundaryField
{
    US_Channel
    {
        type            kqRWallFunction;
        value           uniform 0.1;
    }
    DS_Channel
    {
        type            kqRWallFunction;
        value           uniform 0.1;
    }
    Vasca_Carico
    {
        type            kqRWallFunction;
        value           uniform 0.1;
    }
    Inlet
    {
        type            fixedValue;
        value           $internalField;
    }
    Outlet
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Atm_sx
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Atm_dx
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
    Dissipatore
    {
        type            kqRWallFunction;
        value           uniform 0.0;
    }
    atm
    {
        type            inletOutlet;
        inletValue      $internalField;
        value           $internalField;
    }
}
nut
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -1 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    US_Channel
    {
        type            nutkRoughWallFunction;
        Ks              uniform 0.05;
        Cs              uniform 0.5;
        value           uniform 0;
    }
    DS_Channel
    {
        type            nutkRoughWallFunction;
        Ks              uniform 0.05;
        Cs              uniform 0.5;
        value           uniform 0;
    }
    Vasca_Carico
    {
        type            nutkWallFunction;
        value           uniform 0;
    }
    Inlet
    {
        type            calculated;
        value           uniform 0;
    }
    Outlet
    {
        type            calculated;
        value           uniform 0;
    }
    Atm_sx
    {
        type            calculated;
        value           uniform 0;
    }
    Atm_dx
    {
        type            calculated;
        value           uniform 0;
    }
    Dissipatore
    {
        type            nutkRoughWallFunction;
        Ks              uniform 0.002;
        Cs              uniform 0.5;
        value           uniform 0;
    }
    atm
    {
        type            calculated;
        value           uniform 0;
    }
}

p_rgh
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volScalarField;
    location    "0";
    object      p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [1 -1 -2 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    US_Channel
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    DS_Channel
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Vasca_Carico
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Inlet
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Outlet
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Atm_sx
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Atm_dx
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    Dissipatore
    {
        type            fixedFluxPressure;
        gradient        uniform 0;
        value           uniform 0;
    }
    atm
    {
        type            totalPressure;
        p0              uniform 0;
    /*    rho             rho;
        psi             none;
        gamma           1;
        p0              uniform 0;
        value           uniform 0;*/
    }
}
U
Code:
FoamFile
{
    version     2.0;
    format      binary;
    arch        "LSB;label=32;scalar=64";
    class       volVectorField;
    location    "0";
    object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    US_Channel
    {
        type            noSlip;
    }
    DS_Channel
    {
        type            noSlip;
    }
    Vasca_Carico
    {
        type            noSlip;
    }
    Inlet
    {
        type            uniformFixedValue;
        uniformValue    table;
        uniformValueCoeffs
        {
            values
            2
            (
              (0 (0 0 0))
              (1.5 (0.5 0 0))
            )
            ;
        }
        value           uniform (0 0 0);
    }
    Outlet
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           uniform (0 0 0);
    }
    Atm_sx
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           uniform (0 0 0);
    }
    Atm_dx
    {
        type            inletOutlet;
        inletValue      uniform (0 0 0);
        value           uniform (0 0 0);
    }
    Dissipatore
    {
        type            noSlip;
    }
    atm
    {
        type            pressureInletOutletVelocity;
        value           uniform (0 0 0);
    }
}
Finally my fvSchemes and fvSolution files:

fvSchemes
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes
{
    default         Euler;
}

gradSchemes
{
    default         Gauss linear;
}

divSchemes
{
    div(rhoPhi,U)   Gauss linearUpwind grad(U);
    div(phi,alpha)  Gauss vanLeer;
    div(phirb,alpha) Gauss linear;
    div(rhoPhi,k)      Gauss upwind;
    div(phi,k)       Gauss upwind;
    div(phi,epsilon) Gauss upwind;
    div(rhoPhi,epsilon) Gauss upwind;
    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default         Gauss linear orthogonal;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         orthogonal;//corrected
}
fvSolutions
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    "alpha.water.*"
    {
        nAlphaCorr      1;
        nAlphaSubCycles 2;
        cAlpha          1;

        MULESCorr       yes;
        nLimiterIter    3;

        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-8;
        relTol          0;
    }

    "pcorr.*"
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-10;
        relTol          0.05;
    }

    p_rgh
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-07;
        /*In transient simulations, it is usual to set the solver relative tolerance to 0 to force
        the solution to converge to the solver tolerance in each time step.*/
        relTol          0;//0.05
    }

    p_rghFinal
    {
        $p_rgh;
        relTol          0;
    }

    "(U|k|epsilon).*"
    {
        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-08;
        relTol          0.1;
        minIter         1;
    }
}

PIMPLE
{
    momentumPredictor   no;
    nOuterCorrectors    1;  //1
    nCorrectors         3;
    nNonOrthogonalCorrectors 1; //1
}

relaxationFactors
{
    equations
    {
        ".*"                1;
    }
}
My suggestion: Don't use wall models (that are function of k) in boundaries that are not fully wet nor fully dry. Go with nutUWallModel, or no model at all in the transient stage of your simulation, then set up the wall model.
Santiago is offline   Reply With Quote

Old   April 19, 2022, 11:34
Default
  #6
Member
 
Miguel Hernandez
Join Date: Feb 2021
Location: En mi casa
Posts: 56
Rep Power: 5
Miguel Hernandez is on a distinguished road
Quote:
Originally Posted by piu58 View Post
Before you get a floating point exception you get often very high values for pressure and/ or velocity. It is important to find out where that starts. Run up to 29 seconds, reduce the time step (or the Courant number), and observe with paraview where the irregularity starts.
Thank you...
I've tried to figured out with paraview as you suggested, without any success unfortunately, I'm not able to understand what is going on in my model.
Currently, I'm trying a new mesh, let's see what will happen....

Thanks again for your suggestions...
Miguel Hernandez is offline   Reply With Quote

Old   April 19, 2022, 11:40
Default
  #7
Member
 
Miguel Hernandez
Join Date: Feb 2021
Location: En mi casa
Posts: 56
Rep Power: 5
Miguel Hernandez is on a distinguished road
Quote:
Originally Posted by Santiago View Post
My suggestion: Don't use wall models (that are function of k) in boundaries that are not fully wet nor fully dry. Go with nutUWallModel, or no model at all in the transient stage of your simulation, then set up the wall model.
Thank you Santiago.
Do you mean to change, in the transient stage, the BCs in the nut file from nutkRoughWallFunction (for the channels and the dissipative structure) with nutkWallFunction?

My intent was to simulate the roughness of the channel and the stilling basins being made of different materials (natural channel VS concrete)... something like is usually done in Hec-Ras, for example, e.g. setting a manning coefficient of 0.035 for natural channels and 0.014 for concrete....
Miguel Hernandez is offline   Reply With Quote

Old   April 20, 2022, 09:20
Default
  #8
Senior Member
 
Santiago Lopez Castano
Join Date: Nov 2012
Posts: 354
Rep Power: 16
Santiago is on a distinguished road
Quote:
Originally Posted by Miguel Hernandez View Post
Thank you Santiago.
Do you mean to change, in the transient stage, the BCs in the nut file from nutkRoughWallFunction (for the channels and the dissipative structure) with nutkWallFunction?

My intent was to simulate the roughness of the channel and the stilling basins being made of different materials (natural channel VS concrete)... something like is usually done in Hec-Ras, for example, e.g. setting a manning coefficient of 0.035 for natural channels and 0.014 for concrete....
Run without wall models (calculated), or just with nutkWallModel. Once you get a statistically steady flow, move to setting the roughness.
Santiago is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
[OpenFOAM.com] swak4foam compiling issues on a cluster saj216 OpenFOAM Installation 5 January 17, 2023 17:05
[Other] Tabulated thermophysicalProperties library chriss85 OpenFOAM Community Contributions 62 October 2, 2022 04:50
[swak4Foam] Installation Problem with OF 6 version Aurel OpenFOAM Community Contributions 14 November 18, 2020 17:18
Open Channel Flow Simulation physicosm OpenFOAM Running, Solving & CFD 0 December 6, 2019 08:06
Fluent Open Channel Simulation ahammack Fluent Multiphase 0 October 12, 2016 13:58


All times are GMT -4. The time now is 04:51.