# mesh resolution for using CFD-DEM?

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

 March 13, 2018, 20:19 mesh resolution for using CFD-DEM? #1 New Member   Noah Yao Join Date: Feb 2017 Posts: 13 Rep Power: 9 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 !

 March 14, 2018, 03:32 #2 Member   Henrik Johansson Join Date: Oct 2017 Location: Gothenburg Posts: 38 Rep Power: 8 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

March 14, 2018, 09:26
#3
New Member

Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
Quote:
 Originally Posted by HenrikJohansson 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

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

March 15, 2018, 04:28
#4
Member

Henrik Johansson
Join Date: Oct 2017
Location: Gothenburg
Posts: 38
Rep Power: 8
Quote:
 Originally Posted by yaoyn 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 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

March 15, 2018, 07:34
#5
New Member

Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
Quote:
 Originally Posted by HenrikJohansson 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

 March 15, 2018, 10:15 #6 Member   Henrik Johansson Join Date: Oct 2017 Location: Gothenburg Posts: 38 Rep Power: 8 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

March 15, 2018, 12:09
#7
New Member

Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
Quote:
 Originally Posted by HenrikJohansson 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;

}

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

 March 16, 2018, 08:21 #8 Member   Henrik Johansson Join Date: Oct 2017 Location: Gothenburg Posts: 38 Rep Power: 8 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

March 16, 2018, 09:06
#9
New Member

Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
Quote:
 Originally Posted by HenrikJohansson 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.

 March 16, 2018, 09:15 #10 Member   Henrik Johansson Join Date: Oct 2017 Location: Gothenburg Posts: 38 Rep Power: 8 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

March 16, 2018, 09:22
#11
New Member

Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
Quote:
 Originally Posted by HenrikJohansson 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.

 March 20, 2018, 04:07 #12 Member   Henrik Johansson Join Date: Oct 2017 Location: Gothenburg Posts: 38 Rep Power: 8 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.

March 21, 2018, 00:07
#13
New Member

Noah Yao
Join Date: Feb 2017
Posts: 13
Rep Power: 9
Quote:
 Originally Posted by HenrikJohansson 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