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

mesh resolution for using CFD-DEM?

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

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 13, 2018, 20:19
Default mesh resolution for using CFD-DEM?
  #1
New Member
 
Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
yaoyn is on a distinguished road
Hi, I'm new to CFD and I have a concept problem about CFD-DEM, for example, DPMFoam solver. When I was reviewing various publications using CFD-DEM, I realized that the mesh resolution of the simulation is rather coarse. For example, particle size is 4mm and dx = dy = 10mm, dz = 20mm.

1. If we want to resolve the drag around the particle, shouldn't the mesh resolution be finer than the particle size?
2. Why does a coarse mesh valid? I don't quite understand the concept part.

Thank you very much !
yaoyn is offline   Reply With Quote

Old   March 14, 2018, 03:32
Default
  #2
Member
 
Henrik Johansson
Join Date: Oct 2017
Location: Gothenburg
Posts: 38
Rep Power: 8
HenrikJohansson is on a distinguished road
Hi,

With such grid size the particle drag can't be solved by the flow. If you would solve the drag with N-S the mesh size would be almost infinte.
Thus my ide is that it solves the particle using stokes drag.

Maybe these pages will help you understand.
https://www.sharcnet.ca/Software/Flu...ug/node809.htm
https://webspace.clarkson.edu/projec...ols_page3.html
__________________
/ Henrik Johansson
HenrikJohansson is offline   Reply With Quote

Old   March 14, 2018, 09:26
Default
  #3
New Member
 
Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
yaoyn is on a distinguished road
Quote:
Originally Posted by HenrikJohansson View Post
Hi,

With such grid size the particle drag can't be solved by the flow. If you would solve the drag with N-S the mesh size would be almost infinte.
Thus my ide is that it solves the particle using stokes drag.

Maybe these pages will help you understand.
https://www.sharcnet.ca/Software/Flu...ug/node809.htm
https://webspace.clarkson.edu/projec...ols_page3.html
Hi Henrik, thank you for your reply.

1. In that case, how do you determine the appropriate mesh resolution?
2. I'm currenthly try to run some simple cases such as having a single particle falling through the fluid and let it bounce against the bottom wall. Assume no energy loss, the particle should bounce back to the original position. I set all the restitution coeff to 1.0, however, the ball doesn't bounce back a little. I'm using DPMFoam
yaoyn is offline   Reply With Quote

Old   March 15, 2018, 04:28
Default
  #4
Member
 
Henrik Johansson
Join Date: Oct 2017
Location: Gothenburg
Posts: 38
Rep Power: 8
HenrikJohansson is on a distinguished road
Quote:
Originally Posted by yaoyn View Post
1. In that case, how do you determine the appropriate mesh resolution?
The mesh size is determined by your problem. Reynolds number? Turbulence model? Transient/ steady-state flow? and so on

Quote:
Originally Posted by yaoyn View Post
2. I'm currenthly try to run some simple cases such as having a single particle falling through the fluid and let it bounce against the bottom wall. Assume no energy loss, the particle should bounce back to the original position. I set all the restitution coeff to 1.0, however, the ball doesn't bounce back a little. I'm using DPMFoam
If there were no energy loss wouldn't the particle be in total vacuum? The drag on the particle absorbs energy.
How do you induce the particle to move? By gravity or an inital velocity?
If it doesn't bounce back at all then it sounds like BC. problem. My experience with particle tracking in OpenFOAM is limited but I'll try my best to help you.
__________________
/ Henrik Johansson
HenrikJohansson is offline   Reply With Quote

Old   March 15, 2018, 07:34
Default
  #5
New Member
 
Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
yaoyn is on a distinguished road
Quote:
Originally Posted by HenrikJohansson View Post
If there were no energy loss wouldn't the particle be in total vacuum? The drag on the particle absorbs energy.
How do you induce the particle to move? By gravity or an inital velocity?
If it doesn't bounce back at all then it sounds like BC. problem. My experience with particle tracking in OpenFOAM is limited but I'll try my best to help you.
It's by gravity when it's falling, so I also changed the kinematic viscosity to 0, in that case, I think the only governing force is gravity and buo. The fluid density is only 1/2000 of the density of particle, so buo force should be really insignificant. With these setting, the particle still stick to the bottom wall. I also tried to change the bottom boundary condition from inlet to a wall.

Thank you so much for your help and I really appreciate it
yaoyn is offline   Reply With Quote

Old   March 15, 2018, 10:15
Default
  #6
Member
 
Henrik Johansson
Join Date: Oct 2017
Location: Gothenburg
Posts: 38
Rep Power: 8
HenrikJohansson is on a distinguished road
Wall instead of inlet sounds resonable to stay true too physics.
How have you defined your localInteractionCoeffs?
I think total reflection would be as the example usages is defined below.

Code:
Description
    Wall interaction model. Three choices:
    - rebound - optionally specify elasticity and resitution coefficients
    - stick   - particles assigined zero velocity
    - escape  - remove particle from the domain
    Example usage:
        StandardWallInteractionCoeffs
        {
            type        rebound; // stick, escape
            e           1;       // optional - elasticity coeff
            mu          0;       // optional - restitution coeff
        }
Source: https://github.com/OpenFOAM/OpenFOAM...lInteraction.H
__________________
/ Henrik Johansson
HenrikJohansson is offline   Reply With Quote

Old   March 15, 2018, 12:09
Default
  #7
New Member
 
Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
yaoyn is on a distinguished road
Quote:
Originally Posted by HenrikJohansson View Post
Wall instead of inlet sounds resonable to stay true too physics.
How have you defined your localInteractionCoeffs?
I think total reflection would be as the example usages is defined below.

Code:
Description
    Wall interaction model. Three choices:
    - rebound - optionally specify elasticity and resitution coefficients
    - stick   - particles assigined zero velocity
    - escape  - remove particle from the domain
    Example usage:
        StandardWallInteractionCoeffs
        {
            type        rebound; // stick, escape
            e           1;       // optional - elasticity coeff
            mu          0;       // optional - restitution coeff
        }
Source: https://github.com/OpenFOAM/OpenFOAM...lInteraction.H
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  5                                     |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "constant";
    object      particleProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

    interpolationSchemes
    {
        rho.water         cell;
        U.water           cellPoint;
        mu.water          cell;
    }

    integrationSchemes
    {
        U               Euler;
    }

    sourceTerms
    {
        schemes
        {
            U semiImplicit 1;
        }
    }
}

constantProperties
{
    parcelTypeId 1;

    rhoMin          1e-15;
    minParcelMass   1e-15;

    rho0            1200;
    youngsModulus   1.5e10; //average
    poissonsRatio   0.2; //average

    constantVolume  true;

    alphaMax        0.99;
}

subModels
{
    particleForces
    {
        // ErgunWenYuDrag
        // {
        //     alphac alpha.water;
        // }
        sphereDrag;
        gravity;
    }

    injectionModels
    {
        model1
        {
            type            manualInjection;
            massTotal       0;
            parcelBasisType fixed;
            nParticle       1;
            SOI             0;
            positionsFile   "kinematicCloudPositions";
            U0              (0 0 0);
            sizeDistribution
            {
                type        fixedValue;
                fixedValueDistribution
                {
                    value   1e-3;
                }
            }
        }
    }

    dispersionModel none;

    // patchInteractionModel none;
    patchInteractionModel localInteraction;

    localInteractionCoeffs
    {
        patches
        (
            top
            {
                type rebound;
                // e    0.97;
    a            // mu   0.09;
                e    1.00;
                mu   1.00;
            }
            bottom
            {
                type rebound;
                e    1.0;
                mu   1.00;
            }
            walls
            {
                type rebound;
                e    1.0;
                mu   1.00;
            }
            frontAndBack
            {
                type rebound;
                e    1.0;
                mu   1.00;
            }
        );
    }

    StandardWallInteractionCoeffs
    {
        type rebound;
        e    1.0;
        mu   1.00;
    }

    heatTransferModel none;

    surfaceFilmModel none;

    collisionModel pairCollision;

    // collisionModel none;

    pairCollisionCoeffs
    {
        maxInteractionDistance  0.0005;

        writeReferredParticleCloud no;

        pairModel pairSpringSliderDashpot;

        pairSpringSliderDashpotCoeffs
        {
            useEquivalentSize   no;
            alpha               1;
            b                   1.5;
            mu                  0.10;
            cohesionEnergyDensity 0; // energy needed to separate molecules apart
            collisionResolutionSteps 12;
        };

        wallModel wallSpringSliderDashpot;

        wallSpringSliderDashpotCoeffs
        {
            useEquivalentSize no;
            collisionResolutionSteps 12;
            youngsModulus   1.5e10;
            poissonsRatio   0.2;
            alpha           1; //restitution
            b               1.5;
            mu              0;
            cohesionEnergyDensity 0;
        };


        U     U.water;
    }

    stochasticCollisionModel none;

    // radiation off;
}


cloudFunctions
{}


// ************************************************************************* //
This is my kinematicCloudProperties. My bottom is set as a wall with slip or no slip condition. That's my wall interaction setting I did. But it doesn't work
yaoyn is offline   Reply With Quote

Old   March 16, 2018, 08:21
Default
  #8
Member
 
Henrik Johansson
Join Date: Oct 2017
Location: Gothenburg
Posts: 38
Rep Power: 8
HenrikJohansson is on a distinguished road
I could not find any fault with it. Thats the way i would have set up my BC.'s for total reflection. I'll be looking into DPMFoam myself for a few weeks for work. So hopefully I can come with more helpfull information within a few weeks or so.
__________________
/ Henrik Johansson
HenrikJohansson is offline   Reply With Quote

Old   March 16, 2018, 09:06
Default
  #9
New Member
 
Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
yaoyn is on a distinguished road
Quote:
Originally Posted by HenrikJohansson View Post
I could not find any fault with it. Thats the way i would have set up my BC.'s for total reflection. I'll be looking into MPPICFoam myself for a few weeks for work. So hopefully I can come with more helpfull information within a few weeks or so.
Thanks so much Henrik, I will continue look into this problem to see if I have overlooked any fundamental concepts. I thought this would be a rather simple question.
yaoyn is offline   Reply With Quote

Old   March 16, 2018, 09:15
Default
  #10
Member
 
Henrik Johansson
Join Date: Oct 2017
Location: Gothenburg
Posts: 38
Rep Power: 8
HenrikJohansson is on a distinguished road
No worries.

Have you tried setting the restitution coefficient (mu) to zero?
I'm running the DPMFoam test case now and so far no parcels have either escaped or got stuck on any wall.
The tutorial case have the localInteractionCoeffs defined as:
Code:
            {
                type rebound;
                e    0.97;
                mu   0.09;
            }
__________________
/ Henrik Johansson
HenrikJohansson is offline   Reply With Quote

Old   March 16, 2018, 09:22
Default
  #11
New Member
 
Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
yaoyn is on a distinguished road
Quote:
Originally Posted by HenrikJohansson View Post
No worries.

Have you tried setting the restitution coefficient (mu) to zero?
I'm running the DPMFoam test case now and so far no parcels have either escaped or got stuck on any wall.
The tutorial case have the localInteractionCoeffs defined as:
Code:
            {
                type rebound;
                e    0.97;
                mu   0.09;
            }
I tried before. I think when you have multiple particles, this shouldn't be a problem. If you only have one particle set it at the middle of your domain, then the particle just doesn't bounce back. I read a paper published back in 1997. He wrote his own CFD-DEM code and the way he determine the delta t was by letting a particle to fall and bounce back.
yaoyn is offline   Reply With Quote

Old   March 20, 2018, 04:07
Default
  #12
Member
 
Henrik Johansson
Join Date: Oct 2017
Location: Gothenburg
Posts: 38
Rep Power: 8
HenrikJohansson is on a distinguished road
I been looking into DPMFoam for a bit now.
Ran a test case with two parcels falling and rebouncing against a wall and each other.
I'm working on the parcels splitting when colliding. They bounce back against the wall and each other like they should. Maybe this test case could help you?

Here is my test case. http://fileshare.triona.se/DownloadP...3-3a85aa8793b3

I also tried to comment all the properties in kinematicCloudProperties.
Found this post concerning restitution coefficient. icoUncoupledKinematicParcelFoam - strange thing
__________________
/ Henrik Johansson

Last edited by HenrikJohansson; March 22, 2018 at 02:37.
HenrikJohansson is offline   Reply With Quote

Old   March 21, 2018, 00:07
Default
  #13
New Member
 
Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
yaoyn is on a distinguished road
Quote:
Originally Posted by HenrikJohansson View Post
I been looking into DPMFoam for a bit now.
Ran a test case with two parcels falling and rebouncing against a wall and each other.
I'm working on the parcels splitting when colliding. They bounce back against the wall like and each other. Maybe this test case could help you?

Here is my test case. http://fileshare.triona.se/DownloadP...3-3a85aa8793b3

I also tried to comment all the properties in kinematicCloudProperties.
Found this post concerning restitution coefficient. icoUncoupledKinematicParcelFoam - strange thing
Hi Henrik,

Thank you so much for your help. Your comments are really detailed and helpful. Currently, I still can't get my case working and I started to dig out all the relevant literatures. I will post updates here if I can ever get it working
yaoyn 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
decomposePar problem: Cell 0contains face labels out of range vaina74 OpenFOAM Pre-Processing 37 July 20, 2020 05:38
mesh from icem cfd to cfx, how? Rogerio Fernandes Brito CFX 17 April 18, 2016 03:34
Transport mesh from ICEM CFD, to Fluent, to Sysnoise Wieland FLUENT 2 April 15, 2012 06:28
Icemcfd 11: Loss of mesh from surface mesh option? Joe CFX 2 March 26, 2007 18:10
How to control Minximum mesh space? hung FLUENT 7 April 18, 2005 09:38


All times are GMT -4. The time now is 19:23.