|
[Sponsors] |
Odd lagrangian particle behavior at small size |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
November 3, 2015, 11:59 |
Odd lagrangian particle behavior at small size
|
#1 |
New Member
Paul Handy
Join Date: Sep 2014
Location: Idaho, USA
Posts: 21
Rep Power: 12 |
I'm attempting to reproduce the results of Hoffman et al (http://onlinelibrary.wiley.com/doi/1...71109/abstract) in OpenFOAM (Data retrieved from "Gas Cyclones and Swirl Tubes" https://books.google.com/books?id=jq...page&q&f=false). It seemed to me that the best solver to use in this case was MPPICFoam, and that's how I set it up.
Here's my basic case setup: constant/kinematicCloudProperties: Code:
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.air cell; U.air cellPoint; mu.air cell; } averagingMethod dual; integrationSchemes { U Euler; } sourceTerms { schemes { U semiImplicit 1; } } } constantProperties { rho0 2730; alphaMax 0.9; } subModels { particleForces { ErgunWenYuDrag { alphac alpha.air; } gravity; } injectionModels { model1 { type patchInjection; massTotal .1125; SOI 1; parcelBasisType mass; patchName inlet; duration 1; parcelsPerSecond 3e4; U0 (0 0 -10 ); flowRateProfile constant 1; sizeDistribution { type general; generalDistribution { distribution ( ( 0.30000e-6 0.11602) ( 0.89700e-6 0.10512) ( 1.49400e-6 0.09194) ( 2.09100e-6 0.08211) ( 2.68800e-6 0.08818) ( 3.28500e-6 0.07266) ( 3.88200e-6 0.04576) ( 4.47900e-6 0.03196) ( 5.07600e-6 0.02825) ( 5.67300e-6 0.02596) ( 6.27000e-6 0.02365) ( 6.86700e-6 0.02130) ( 7.46400e-6 0.01891) ( 8.06100e-6 0.01654) ( 8.65800e-6 0.01435) ( 9.25500e-6 0.01237) ( 9.85200e-6 0.01059) (10.44900e-6 0.00903) (11.04600e-6 0.00767) (11.64300e-6 0.00652) (12.24000e-6 0.00557) (12.83700e-6 0.00484) (13.43400e-6 0.00431) (14.03100e-6 0.00399) (14.62800e-6 0.00387) (15.22500e-6 0.00388) (15.82200e-6 0.00388) (16.41900e-6 0.00389) (17.01600e-6 0.00389) (17.61300e-6 0.00389) (18.21000e-6 0.00388) (18.80700e-6 0.00386) (19.40400e-6 0.00385) (20.00100e-6 0.00382) (20.59800e-6 0.00380) (21.19500e-6 0.00377) (21.79200e-6 0.00373) (22.38900e-6 0.00369) (22.98600e-6 0.00364) (23.58300e-6 0.00359) (24.18000e-6 0.00354) (24.77700e-6 0.00348) (25.37400e-6 0.00342) (25.97100e-6 0.00335) (26.56800e-6 0.00328) (27.16500e-6 0.00320) (27.76200e-6 0.00312) (28.35900e-6 0.00303) (28.95600e-6 0.00294) (29.55300e-6 0.00285) (30.15000e-6 0.00275) (30.74700e-6 0.00265) (31.34400e-6 0.00256) (31.94100e-6 0.00247) (32.53800e-6 0.00238) (33.13500e-6 0.00229) (33.73200e-6 0.00220) (34.32900e-6 0.00212) (34.92600e-6 0.00204) (35.52300e-6 0.00196) (36.12000e-6 0.00188) (36.71700e-6 0.00180) (37.31400e-6 0.00173) (37.91100e-6 0.00166) (38.50800e-6 0.00159) (39.10500e-6 0.00152) (39.70200e-6 0.00145) (40.29900e-6 0.00139) (40.89600e-6 0.00133) (41.49300e-6 0.00127) (42.09000e-6 0.00121) (42.68700e-6 0.00115) (43.28400e-6 0.00110) (43.88100e-6 0.00105) (44.47800e-6 0.00100) (45.07500e-6 0.00095) (45.67200e-6 0.00091) (46.26900e-6 0.00086) (46.86600e-6 0.00082) (47.46300e-6 0.00078) (48.06000e-6 0.00074) (48.65700e-6 0.00071) (49.25400e-6 0.00068) (49.85100e-6 0.00064) (50.44800e-6 0.00061) (51.04500e-6 0.00059) (51.64200e-6 0.00056) (52.23900e-6 0.00054) (52.83600e-6 0.00052) (53.43300e-6 0.00050) (54.03000e-6 0.00048) (54.62700e-6 0.00047) (55.22400e-6 0.00045) (55.82100e-6 0.00044) (56.41800e-6 0.00043) (57.01500e-6 0.00043) (57.61200e-6 0.00042) (58.20900e-6 0.00042) (58.80600e-6 0.00042) (59.40300e-6 0.00042) (60.00000e-6 0.00000) ); } } } } dispersionModel none; patchInteractionModel localInteraction; localInteractionCoeffs { patches ( walls { type rebound; e 0.97; mu 0.09; } inlet { type rebound; e 0.97; mu 0.09; } outlet { type escape; } particleOutlet { type escape; } ); } heatTransferModel none; surfaceFilmModel none; packingModel none; //was implicit; dampingModel none; isotropyModel stochastic; stochasticCollisionModel none; stochasticCoeffs { timeScaleModel { type isotropic; alphaPacked 0.6; e 0.9; } } radiation off; } cloudFunctions {} Code:
FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object turbulenceProperties.air; } simulationType LES; LES { LESModel kEqn; turbulence on; printCoeffs on; delta cubeRootVol; cubeRootVolCoeffs { } } Code:
FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object transportProperties; } contiuousPhaseName air; rho.air 1.2; transportModel Newtonian; nu 1.568e-05; Code:
FoamFile { version 2.0; format ascii; class uniformDimensionedVectorField; location "constant"; object g; } dimensions [0 1 -2 0 0 0 0]; value ( 0 -9.81 0 ); Code:
FoamFile { version 2.0; format ascii; class volScalarField; object k.air; } dimensions [0 2 -2 0 0 0 0]; internalField uniform 1; boundaryField { inlet { type fixedValue; value $internalField; } outlet { type inletOutlet; phi phi.air; inletValue $internalField; value $internalField; } ".*" { type kqRWallFunction; value $internalField; } } Code:
FoamFile { version 2.0; format ascii; class volScalarField; object nut.air; } dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type calculated; value $internalField; } outlet { type calculated; value $internalField; } ".*" { type nutkWallFunction; value $internalField; } } Code:
FoamFile { version 2.0; format ascii; class volScalarField; object p; } dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type fixedFluxPressure; phi phi.air; value $internalField; } outlet { type fixedValue; phi phi.air; value uniform 0; } ".*" { type fixedFluxPressure; phi phi.air; value $internalField; } } Code:
FoamFile { version 2.0; format binary; class volVectorField; location "0"; object U.air; } dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { inlet { type fixedValue; value uniform (0 0 -10 ); } outlet { type pressureInletOutletVelocity; phi phi.air; inletValue uniform (0 0 0); value uniform (0 0 0); } ".*" { type fixedValue; value uniform (0 0 0); } } Code:
FoamFile { version 2.0; format ascii; class dictionary; location "system"; object controlDict; } application MPPICFoam; startFrom latestTime; startTime 0; stopAt endTime; endTime 7; deltaT 2e-4; writeControl runTime; writeInterval 0.1; purgeWrite 0; writeFormat binary; writePrecision 6; writeCompression yes; timeFormat general; timePrecision 6; runTimeModifiable yes; Code:
FoamFile { version 2.0; format ascii; class dictionary; object fvSchemes; } ddtSchemes { default Euler; } gradSchemes { default Gauss linear; } divSchemes { default none; div(alphaPhic,U.air) Gauss linearUpwindV unlimited; div(((alpha.air*nuEff.air)*dev2(T(grad(U.air))))) Gauss linear; div(phiGByA,kinematicCloud:alpha) Gauss linear; div(alphaPhic,epsilon.air) Gauss limitedLinear 1; div(alphaPhic,k.air) Gauss limitedLinear 1; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } fluxRequired { default no; p; kinematicCloud:alpha; } Code:
FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } solvers { p { solver GAMG; tolerance 1e-06; relTol 0.01; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } pFinal { solver GAMG; tolerance 1e-06; relTol 0; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } "(U|k|epsilon|omega).air" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } "(U|k|epsilon|omega).airFinal" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } kinematicCloud:alpha { solver GAMG; tolerance 1e-06; relTol 0.1; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 10; agglomerator faceAreaPair; mergeLevels 1; } } PIMPLE { nOuterCorrectors 1; nCorrectors 2; momentumPredictor yes; nNonOrthogonalCorrectors 0; pRefCell 0; pRefValue 0; } relaxationFactors { } cyclone-particles.png This shows the particles just moments after they first enter the cyclone. Note that they are flowing around both ends of the finder. cyclone-particles-age.png Moments later (colored for age), you can see that the particles are just filling the side with the inlet, not coming down much with gravity. I can't explain why this is happening, but certain changes to the kinematic properties will stop it:
What am I missing here? Am I using the wrong solver for this case? |
|
November 5, 2015, 16:54 |
|
#2 |
New Member
Paul Handy
Join Date: Sep 2014
Location: Idaho, USA
Posts: 21
Rep Power: 12 |
Edit: I thougth that I had done this already, but I set coupling to false, and kept the drag parameter; the number of particles escaping through the top did not seem to quite match Hoffman's case, but it was greater than nothing, and the vortex kept. I suppose that the coupling means that particles can interact with ( and interrupt) the air flow. I was hoping that this would work for me, but I much prefer to have something that somewhat resembles reality.
Last edited by phandy; November 6, 2015 at 11:49. |
|
November 11, 2017, 19:07 |
|
#3 |
New Member
Saeed
Join Date: Sep 2016
Posts: 16
Rep Power: 10 |
By the way, do you know when to use packing, damping and isotropy models? whether to set them all for a case or any combinations of them?
|
|
Tags |
lagrangian, mppicfoam |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Lagrangian particle stats | rtb21 | OpenFOAM Programming & Development | 0 | August 5, 2014 12:25 |
In DPM model, with rosin-rammler particle size distribution described problems, thank | fa84a8g779 | FLUENT | 1 | July 11, 2013 22:30 |
DMP model - mesh size and particle size | songpen1985 | FLUENT | 0 | April 17, 2013 05:38 |
lagrangian particle simulation | RedAdmiral | Main CFD Forum | 2 | February 9, 2013 16:05 |
critical error during installation of openfoam | Fabio88 | OpenFOAM Installation | 21 | June 2, 2010 04:01 |