CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   MPPICFoam crashes when particles interact with obstacle (https://www.cfd-online.com/Forums/openfoam/217295-mppicfoam-crashes-when-particles-interact-obstacle.html)

stamufa May 3, 2019 06:50

MPPICFoam crashes when particles interact with obstacle
 
Hey,

While running a spray case with MPPIC Foam, I get the following stack trace after some time iterations. I'm not really sure where the error lies here:


Code:



PIMPLE: iteration 1
smoothSolver:  Solving for Ux, Initial residual = 0.00010651293, Final residual = 2.1998619e-07, No Iterations 1
smoothSolver:  Solving for Uy, Initial residual = 0.0017293784, Final residual = 5.0699541e-06, No Iterations 1
smoothSolver:  Solving for Uz, Initial residual = 0.00019186911, Final residual = 5.4792818e-07, No Iterations 1
GAMG:  Solving for p, Initial residual = 0.49361599, Final residual = 0.0035218536, No Iterations 4
time step continuity errors : sum local = 5.4196858e-09, global = -2.5300849e-13, cumulative = -1.0684652e-05
GAMG:  Solving for p, Initial residual = 0.02853511, Final residual = 8.068314e-07, No Iterations 11
time step continuity errors : sum local = 1.2901854e-12, global = 1.5379897e-13, cumulative = -1.0684652e-05
smoothSolver:  Solving for epsilon, Initial residual = 6.3743098e-07, Final residual = 6.3743098e-07, No Iterations 0
smoothSolver:  Solving for k, Initial residual = 9.3785347e-08, Final residual = 9.3785347e-08, No Iterations 0
ExecutionTime = 1800.91 s  ClockTime = 1806 s

Courant Number mean: 0.0091293713 max: 0.50100304
deltaT = 2.1611916e-05
Time = 0.0760882

Evolving kinematicCloud

Solving 3-D cloud kinematicCloud

Cloud: kinematicCloud injector: model1
    Added 2 new parcels

[12] #0  Foam::error::printStack(Foam::Ostream&) at ??:?
[12] #1  Foam::sigFpe::sigHandler(int) at ??:?
[12] #2  ? in "/lib64/libc.so.6"
[12] #3  Foam::DICPreconditioner::calcReciprocalD(Foam::Field<double>&, Foam::lduMatrix const&) at ??:?
[12] #4  Foam::DICPreconditioner::DICPreconditioner(Foam::lduMatrix::solver const&, Foam::dictionary const&) at ??:?
[12] #5  Foam::lduMatrix::preconditioner::addsymMatrixConstructorToTable<Foam::DICPreconditioner>::New(Foam::lduMatrix::solver const&, Foam::dictionary const&) at ??:?
[12] #6  Foam::lduMatrix::preconditioner::New(Foam::lduMatrix::solver const&, Foam::dictionary const&) at ??:?
[12] #7  Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:?
[12] #8  Foam::GAMGSolver::solveCoarsestLevel(Foam::Field<double>&, Foam::Field<double> const&) const at ??:?
[12] #9  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::Fie
ld<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const at ??:?
[12] #10  Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const at ??:?
[12] #11  Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) at ??:?
[12] #12  Foam::fvMatrix<double>::solveSegregatedOrCoupled(Foam::dictionary const&) at ??:?
[12] #13  Foam::fvMesh::solve(Foam::fvMatrix<double>&, Foam::dictionary const&) const at ??:?
[12] #14  Foam::PackingModels::Implicit<Foam::MPPICCloud<Foam::KinematicCloud<Foam::Cloud<Foam::MPPICParcel<Foam::KinematicParcel<Foam::particle> > > > > >::cacheFields(bool) at ??:?
[12] #15  ? at ??:?
[12] #16  ? at ??:?
[12] #17  ? at ??:?
[12] #18  ? at ??:?
[12] #19  ? at ??:?
[12] #20  __libc_start_main in "/lib64/libc.so.6"
[12] #21  ? at ??:?


stamufa May 7, 2019 09:47

MPPICFoam crashes when particles interact with obstacle
 
Hey everyone,

I'm using OF 17 and the MPPICFoam solver to solve a simple Euler-Langrange spraying of particles on an inclined plate in my domain. Frustratingly, the simulation crashes just about when (I can see in post-processing) the particles come close enough to the plate in the middle. I believe the problem lies with the kinematicCloudProperties file attached below, but I'm not exactly sure what I should play with. Most changes I've made were with the patchInteractionModel but that's not helped so far


Code:



/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  v1606+                                |
|  \\  /    A nd          | Web:      www.OpenFOAM.com                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    location    "constant";
    object      particleProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solution
{
    active          true;
    coupled        true;
    transient      yes;
    cellValueSourceCorrection off;

    maxCo          1.0;

    interpolationSchemes
    {
        rho        cell;
        U          cellPoint;
        mu          cell;
        epsilon          cell;
        k          cell;


    }

    averagingMethod dual;

    integrationSchemes
    {
        U              Euler;
    }

    sourceTerms
    {
        schemes
        {
            U          semiImplicit 1;
        }
    }
}

constantProperties
{
    rho0            1000;
    alphaMax        0.9;
}

subModels
{
 
  particleForces
    {
        sphereDrag;
        gravity;
    }
   

  injectionModels
    {
        model1
        {
            type            coneNozzleInjection;
            SOI            0.5;
            massTotal      6.0e-1;
            parcelBasisType mass;
            injectionMethod disc;
            flowType        flowRateAndDischarge;
            outerDiameter  1.9e-2;
            innerDiameter  0;
            duration        1.25;
            position        (1.7321 -0.512 0.502);
            direction      (1 0 0);
            parcelsPerSecond 100000;
              flowRateProfile constant 1;
 
            Cd              constant 0.9;

            thetaInner      constant 0.0;
            thetaOuter      constant 10.0;

            sizeDistribution
            {
                type        RosinRammler;

                RosinRammlerDistribution
                {
                    minValue        1e-06;
                    maxValue        0.00015;
                    d              0.00015;
                    n              3;
                }
            }
        }
    }


 
    dispersionModel none;

    patchInteractionModel localInteraction;

    localInteractionCoeffs
    {
        patches
        (
            plate
            {
                type stick;
                  e    0.97;
                  mu  0.09;
            }

            top
            {
                type escape;
              //  e    0.97;
              //  mu  0.09;
            }

            bottom
            {
                type escape;
            //  e    0.97;
              //  mu  0.09;
            }
            left
            {
                type escape;
            //  e    0.97;
              //  mu  0.09;
            }
            right
            {
                type escape;
            }

            front
            {
                type escape;
            }

            back
            {
                type escape;
            }
        );
    }

    heatTransferModel none;

    surfaceFilmModel none;

    packingModel implicit;

    explicitCoeffs
    {
        particleStressModel
        {
            type HarrisCrighton;
            alphaPacked 0.6;
            pSolid 10.0;
            beta 2.0;
            eps 1.0e-7;
        }
        correctionLimitingMethod
        {
            type absolute;
            e 0.9;
        }
    }

    implicitCoeffs
    {
        alphaMin 0.0001;
        rhoMin 1.0;
        applyLimiting true;
        applyGravity false;
        particleStressModel
        {
            type HarrisCrighton;
            alphaPacked 0.6;
            pSolid 5.0;
            beta 2.0;
            eps 1.0e-2;
        }
    }

    dampingModel none;

    isotropyModel stochastic;

    stochasticCoeffs
    {
        timeScaleModel
        {
            type isotropic;
            alphaPacked 0.6;
            e 0.9;
        }
    }

    stochasticCollisionModel none;

    radiation off;
}


cloudFunctions
{}


// ************************************************************************* //


wyldckat May 12, 2019 16:50

Quick answer: I'm not familiar with this solver, but there have been recent reports that leads me to believe that there might be one or two flaws in it. And from the dictionary file you provided, I can't see anything terribly wrong.

So, my suggestions:
  1. Claiming you are using version "17" is not specific enough. You are either using: 1.7, v1706 or v1712, which are all fairly different versions.
  2. Therefore, upgrade to the latest version on the OpenFOAM project you are following.
  3. Then try to run the case with that recent version.
  4. If it still crashes, try with a non-inclined plate, because it could be a bug in the collision detection algorithm when there is a collision angle for when the plate is inclined.
  5. If it works just fine with a non-inclined plate, then report the bug to the specific OpenFOAM project you are following.

Pisolino November 18, 2019 11:53

hi,

i'm having nearly the same issues, i'm trying with explicit formulation and at least the simulation seems to last longer, however in some regions i have strong overpacking. Maybe this is the cause of the implicit divergence/crash. Does anyone had the same feedback?

Pisolino85 June 25, 2020 06:43

Hi all, in OF7 i solved this by understanding the physical meaning of pS parameter for implicit packing model.



It seems that is quite dependent from your particle type. value of 5 is mainly low for other powders and it can easily lead to overpack (above alphamax).


I suggest to adjust that value up to 200 or more according to your particles sizes and density.



If anyone knows a way to calculate pS from experimental testing it would be great.



Bye


All times are GMT -4. The time now is 08:07.