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

Erosion field Q is zero everywhere.

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 20, 2024, 12:06
Default Erosion field Q is zero everywhere.
  #1
New Member
 
Join Date: Dec 2021
Location: Argentina, BB
Posts: 5
Rep Power: 4
ariedinger is on a distinguished road
Dear all,

we are trying to calculate the erosion field Q in a pipe using OpenFOAM v11. Our configuration is quite straightforward: we are running a one-way coupling case where the lagrangian phase is uncoupled from the eulerian phase, and there are no interactions between particles. We just want to test how the erosion mechanism works in OpenFOAM v11 in this simple test case.

We are setting it up in the constant/cloudProperties/cloudFunctions dictionary as follows:

Code:
cloudFunctions
{
    erosion
    {
       type            particleErosion;
       p   1;
       patches
       (
           walls
       );
    }
}
This is as given in the description of the ParticleErosion.H file (https://cpp.openfoam.org/v11/Particl...8H_source.html). Our pipe geometry is given by an inlet patch, an outlet patch, and the walls patch. We understand that in OF v11 it is not necessary to specify the functions in the system/controlDict file anymore as in previous versions. and as seen in the examples here:

https://www.tfd.chalmers.se/~hani/ku...ing_report.pdf.


Therefore, we are not sure if some more configuration is needed in order to effectively calculate the erosion field Q. In other words, we can open the erosion field with ParaView, but it is zero at all times, even when there are clearly many particles colliding with the walls.

Here is our full constant/cloudProperties dictionary:

Code:
type        cloud;

solution
{
    coupled         no;
    transient       yes;           
    cellValueSourceCorrection no; 

    interpolationSchemes
    {
        rho        cell;
        U          cellPoint;
        mu         cell;
        alpha      cell;
        kapa       cell;
        Cp         cell;
    }

    averagingMethod dual;

    integrationSchemes
    {
        U               Euler;
    }

    sourceTerms
    {
        schemes
        {
            U           semiImplicit 1;
        }
        resetOnStartup yes;
    }
}

constantProperties
{
    rho0            2500; // Particle density [kg/m^3]
}

subModels
{ 
    particleForces
    {
        sphereDrag;
    }

    injectionModels
    {
        model1
        {
            type                patchInjection; 
            uniformParcelSize   volume;
            parcelBasisType     fixed;
            massFlowRate        1;
            //massTotal           1;
            patchName           inlet;                
            parcelsPerSecond    3576;
            //nParticle           1000;
            //uniformParcelSize   nParticle;
            U0                  (0 10 0);
            sizeDistribution                      
            {
                type            normal;     
                min             20e-6;    
                max             180e-6;  
                mu              100e-6; 
                sigma           25e-6; 
                Q               1;
            }

            SOI             1.1;
            duration        1;
        }
    }

    dispersionModel stochasticDispersionRAS;

    patchInteractionModel standardWallInteraction;

    standardWallInteractionCoeffs
    {
        type rebound;
    }
    /*
    localInteractionCoeffs
    {
        patches
        (
            walls
            {
                type rebound;
                e    0.97;    
                mu   0.09;
            }
            inlet
            {
                type rebound;
                e    0.97;
                mu   0.09;
            }
            outlet
            {
                type escape;
            }
        );
    }
    */
    heatTransferModel none;

    surfaceFilmModel none;

    packingModel    none;

    dampingModel relaxation;

    relaxationCoeffs
    {
      timeScaleModel
      {
        type          nonEquilibrium;
        alphaPacked   0.58;
        e             0.9; 
      }
    }

    isotropyModel stochastic;

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

    radiation off;

    collisionModel  none;

    stochasticCollisionModel none;
}

cloudFunctions
{
    erosion
    {
       type            particleErosion;
       p   1;
       patches
       (
           walls
       );
    }
}
We are sure we must be doing something wrong, so any help is appreciated.

Thank you in advance.

Best regards,

AR
ariedinger is offline   Reply With Quote

Old   March 22, 2024, 15:14
Default
  #2
New Member
 
Join Date: Dec 2021
Location: Argentina, BB
Posts: 5
Rep Power: 4
ariedinger is on a distinguished road
We have found out that the erosion field Q is zero because of the following conditional in ParticleErosion.C (https://cpp.openfoam.org/v11/Particl...8C_source.html):

Code:
         // Quick rejection if the particle is travelling away from the patch
 
         if ((nw & U) < 0)
 
         {
 
             return;
 
         }
So, the code returns from that conditional before calculating the erosion field. Now, we have printed the scalar product between the normal nw and U, and found out that it is always negative. This makes us believe that the normal vector is facing towards the curvature in our pipe geometry, and not away from it. Thus, when the particles are traveling towards the patch, the scalar product between the normal vector and the U vector (nw & U) is negative. Therefore, we argue that this conditional should be

Code:
 
         if ((nw & U) > 0)
 
         {
 
             return;
 
         }
We have tested this in our mesh, and by doing this we can effectively calculate the erosion field. We believe that then, there must be some problem with our mesh, and this is why the normal vectors are calculated this way. We are yet to test this hypothesis.
ariedinger is offline   Reply With Quote

Reply

Tags
erosion model, lagrange particle, lagrangian particle


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
DynamicRefineFvMesh & Supersonic Erosion siefer92 OpenFOAM Programming & Development 1 February 4, 2021 17:00
Reading time dependent rotating magnetic field (volVectorField) for MHD solver kavatar OpenFOAM Programming & Development 1 December 11, 2020 01:55
potential flows, helmholtz decomposition and other stuffs pigna Main CFD Forum 1 October 26, 2017 08:34
Access to field which is evaluated at the moment Tobi OpenFOAM Programming & Development 6 April 19, 2017 13:09
''unknown radialModelType type Gidaspow'' PROBLEM WITH THE BED TUTORIAL AndoniBM OpenFOAM Running, Solving & CFD 2 March 25, 2015 18:44


All times are GMT -4. The time now is 18:56.