|
[Sponsors] |
March 7, 2014, 10:16 |
DPMFoam solver inadequacy
|
#1 |
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
Hey foamers!!
I am a fledgling in this new community. However, thanks to this forum I have been able to pick up the basics of openfoam rather quickly. I have been trying to simulate "Specific gravity aided separation of grains" on a vibrating table. I have just began my work and started with setting up a very simple case of a fluidized system i.e a rectangular box being filled with spherical grains from the top and fluidized slightly from the bottom (quite similar to the Goldschmidt tutorial case). I am encountering this very persistent issue. When i inject about 500 particles into the domain, the simulation proceeds flawlessly towards completion. However, when i decide to inject 5000 particles (not parcels) into the same system (no changes in the set up) the simulation crashes after the first time step.. with the following error .. Code:
Solving 3-D cloud kinematicCloud 509 move-collide subCycles [2] #0 Foam::error::printStack(Foam::Ostream&) at ~/OpenFOAM/OpenFOAM-2.3.0/src/OSspecific/POSIX/printStack.C:221 [2] #1 Foam::sigFpe::sigHandler(int) at ~/OpenFOAM/OpenFOAM-2.3.0/src/OSspecific/POSIX/signals/sigFpe.C:108 [2] #2 in "/lib/x86_64-linux-gnu/libc.so.6" [2] #3 Foam::divideOp3<double, double, double>::operator()(double const&, double const&) const at ~/OpenFOAM/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude/ops.H:167 [2] #4 void VectorSpaceOps<3, 0>::opVS<Foam::Vector<double>, Foam::VectorSpace<Foam::Vector<double>, double, 3>, double, Foam::divideOp3<double, double, double> >(Foam::Vector<double>&, Foam::VectorSpace<Foam::Vector<double>, double, 3> const&, double const&, Foam::divideOp3<double, double, double>) at ~/OpenFOAM/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude/VectorSpaceM.H:34 [2] #5 Foam::Vector<double> Foam::operator/<Foam::Vector<double>, double, 3>(Foam::VectorSpace<Foam::Vector<double>, double, 3> const&, double) at ~/OpenFOAM/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude/VectorSpaceI.H:587 [2] #6 Foam::PairCollision<Foam::CollidingCloud<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > > >::wallInteraction() at ~/OpenFOAM/OpenFOAM-2.3.0/src/lagrangian/intermediate/lnInclude/PairCollision.C:249 [2] #7 Foam::PairCollision<Foam::CollidingCloud<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > > >::collide() at ~/OpenFOAM/OpenFOAM-2.3.0/src/lagrangian/intermediate/lnInclude/PairCollision.C:671 [2] #8 [2] at ~/OpenFOAM/OpenFOAM-2.3.0/src/lagrangian/intermediate/lnInclude/CollidingCloud.C:66 [2] #9 [2] at ~/OpenFOAM/OpenFOAM-2.3.0/src/lagrangian/intermediate/lnInclude/CollidingCloud.C:224 [2] #10 [2] at ~/OpenFOAM/OpenFOAM-2.3.0/src/lagrangian/intermediate/lnInclude/KinematicCloud.C:204 [2] #11 [2] at ~/OpenFOAM/OpenFOAM-2.3.0/src/lagrangian/intermediate/lnInclude/KinematicCloud.C:112 [2] #12 [2] at ~/OpenFOAM/OpenFOAM-2.3.0/src/lagrangian/intermediate/lnInclude/CollidingCloud.C:197 [2] #13 [2] at ~/OpenFOAM/ask-2.3.0/Solvers/DPMFoam_mod/DPMFoam_mod.C:85 [2] #14 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" [2] #15 [2] in "/home/ask/OpenFOAM/ask-2.3.0/platforms/linux64GccDPDebug/bin/DPMFoam_mod" [ask-HP-Z230-Tower-Workstation:19297] *** Process received signal *** [ask-HP-Z230-Tower-Workstation:19297] Signal: Floating point exception (8) [ask-HP-Z230-Tower-Workstation:19297] Signal code: (-6) [ask-HP-Z230-Tower-Workstation:19297] Failing at address: 0x3e800004b61 [ask-HP-Z230-Tower-Workstation:19297] [ 0] /lib/x86_64-linux-gnu/libc.so.6(+0x364a0) [0x7f38a88d94a0] [ask-HP-Z230-Tower-Workstation:19297] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x35) [0x7f38a88d9425] [ask-HP-Z230-Tower-Workstation:19297] [ 2] /home/ask/OpenFOAM/OpenFOAM-2.3.0/platforms/linux64GccDPDebug/lib/libOpenFOAM.so(_ZN4Foam6sigFpe10sigHandlerEi+0xbc) [0x7f38a9d9f7d0] [ask-HP-Z230-Tower-Workstation:19297] [ 3] /lib/x86_64-linux-gnu/libc.so.6(+0x364a0) [0x7f38a88d94a0] [ask-HP-Z230-Tower-Workstation:19297] [ 4] DPMFoam_mod(_ZNK4Foam9divideOp3IdddEclERKdS3_+0x20) [0x4c25d4] [ask-HP-Z230-Tower-Workstation:19297] [ 5] DPMFoam_mod(_ZN14VectorSpaceOpsILi3ELi0EE4opVSIN4Foam6VectorIdEENS2_11VectorSpaceIS4_dLi3EEEdNS2_9divideOp3IdddEEEEvRT_RKT0_RKT1_T2_+0x29) [0x4aba77] [ask-HP-Z230-Tower-Workstation:19297] [ 6] DPMFoam_mod(_ZN4FoamdvINS_6VectorIdEEdLi3EEET_RKNS_11VectorSpaceIS3_T0_XT1_EEEd+0x3c) [0x49cc25] [ask-HP-Z230-Tower-Workstation:19297] [ 7] /home/ask/OpenFOAM/OpenFOAM-2.3.0/platforms/linux64GccDPDebug/lib/liblagrangianIntermediate.so(_ZN4Foam13PairCollisionINS_14CollidingCloudINS_14KinematicCloudINS_5CloudINS_15CollidingParcelINS_15KinematicParcelINS_8particleEEEEEEEEEEEE15wallInteractionEv+0x3f6) [0x7f38ace7bea4] [ask-HP-Z230-Tower-Workstation:19297] [ 8] /home/ask/OpenFOAM/OpenFOAM-2.3.0/platforms/linux64GccDPDebug/lib/liblagrangianIntermediate.so(_ZN4Foam13PairCollisionINS_14CollidingCloudINS_14KinematicCloudINS_5CloudINS_15CollidingParcelINS_15KinematicParcelINS_8particleEEEEEEEEEEEE7collideEv+0x30) [0x7f38ace6b44a] [ask-HP-Z230-Tower-Workstation:19297] [ 9] DPMFoam_mod() [0x4f6996] [ask-HP-Z230-Tower-Workstation:19297] [10] DPMFoam_mod() [0x4e1b31] [ask-HP-Z230-Tower-Workstation:19297] [11] DPMFoam_mod() [0x4cc6b1] [ask-HP-Z230-Tower-Workstation:19297] [12] DPMFoam_mod() [0x4b6d84] [ask-HP-Z230-Tower-Workstation:19297] [13] DPMFoam_mod() [0x4a383e] [ask-HP-Z230-Tower-Workstation:19297] [14] DPMFoam_mod() [0x493a3d] [ask-HP-Z230-Tower-Workstation:19297] [15] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f38a88c476d] [ask-HP-Z230-Tower-Workstation:19297] [16] DPMFoam_mod() [0x4921e9] [ask-HP-Z230-Tower-Workstation:19297] *** End of error message *** -------------------------------------------------------------------------- mpirun noticed that process rank 2 with PID 19297 on node ask-HP-Z230-Tower-Workstation exited on signal 8 (Floating point exception). Is there any manner in which I could get this simulation up and running. Have I missed something critical in my initial set up that leads to the solvers inadequacy to handle 5000 particles (which is not a large number by any means)??? Any help would be greatly appreciated. Regards ansubru Last edited by wyldckat; March 11, 2014 at 15:35. Reason: Added [CODE][/CODE] |
|
March 7, 2014, 11:11 |
|
#2 |
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
Well.. I have solved the issue myself.. I guess.. I realized that some of the model parameters I employed.. modulus of elasticity etc were wrongly defined (wrong values).. hence some of the intermediate parameters estimated were wrongly estimated close to a null value leading to the crash.. Phew!! I think I solved that one....
I am still open for ideas.. If someone feels my deduction is wrong.. |
|
July 3, 2014, 12:35 |
Q
|
#3 |
Senior Member
|
Hi all,
I have two questions about DPMFoam: 1- Where is the tangential restitution coefficient? I didn't find it in case/constant/kinematicCloudProperties. 2- Is it possible to define two type particles with different density and/or diameter? Regards, |
|
July 3, 2014, 13:24 |
|
#4 | ||
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
Hi Maysam!!
Its nice to see another person working with DPMFoam, this solver has a very poor user base. To answer your questions, Quote:
http://www.cfdem.com/liggghts-open-s...imulation-code Quote:
Code:
model1 { type patchInjection; parcelBasisType fixed; patchName inlet; U0 (0 0 -1.5); nParticle 1; parcelsPerSecond 20000000; sizeDistribution { type multiNormal; multiNormalDistribution { minValue 0.0005 ; maxValue 0.00255 ; expectation (0.001 0.0025) ; variance (0.0001 0.0001) ; strength (0.5 0.5) ; } } flowRateProfile constant 1; massTotal 2000000; SOI 0; duration 0.00001; } } Regards ansubru |
|||
July 3, 2014, 15:24 |
|
#5 |
Senior Member
|
Thanks a lot Ananda,
I am happy too seeing a person working on DPM. I am almost new with Lagrangian in OpenFOAM. I worked with pisoFoam solver before. Because I didn't need moving Mesh in my previous works I don't have any idea about coupling dynamic mesh and DPM now. I want use DPMFoam in simulating dense fluidized beds and spouted beds. Now I want see if it is validated or not. Did you have any validation for assurance results of DPMFoam in fluidized beds test cases? Do you think it is a good choice? About two particle types: How can I have it in Godschemidt test case? I mean I want use case/constant/kinematicCloudPositions file and positioning two type particles in desired coordinates, not injecting them? Regards, |
|
July 4, 2014, 04:23 |
|
#6 | ||
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
Hi again!!
Quote:
Quote:
Just replace this bit in the tutorial 'sizeDistribution' initialization .. Code:
sizeDistribution { type multiNormal; multiNormalDistribution { minValue 0.0005 ; maxValue 0.00255 ; expectation (0.001 0.0025) ; variance (0.0001 0.0001) ; strength (0.5 0.5) ; } BR ansubru |
|||
July 4, 2014, 04:53 |
|
#7 | |
Senior Member
|
Thanks.
I am trying to do validation with other test cases. As you know, the Goldschemidt tutorial is qualitative, not quantitative. I worked with LIGGGTS and CFDEM which seems good solver from JKU, but because of my previous knowledge about OpenFoam, I prefer it, yet. about multi type particle: I want to have two type particles with fixed value of size, not with wide size distribution. for example 20,000 particles with diameter of 2 mm and 5,000 particles with diameter of 4 mm. I think your commands are related to size distribution, isn't it? for fixed value of one type the below command is good, Can it be revised for two particles with two fixed value size? Quote:
|
||
July 4, 2014, 05:33 |
|
#8 | |
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
Hi again!!
Quote:
Do let me know about ur validation cases... BR ansubru |
||
July 4, 2014, 06:36 |
|
#9 |
Senior Member
|
It works but some questions arise:
1- TypeID and nParticle is 1 in parafoam postprocessing. Showing contour of "d" leads to mixture of two diameters in whole of the domain, randomly or one by one. How can we arrange desired configuration?, for example large particle in the bottom and small particles on the top of the bed, initially. For this purpose, I think we should revise the particleClousPositions by separating positions of each type. I don't know how is possible for desired initial mixture configuration. Do you know? 2- For binary particles differing in density I think we can define another TypeId like below but don't know how to define diameter of each type in sizeDistribution section, also in the kinematicCloudPositions file. Code:
constantProperties { parcelTypeId 1; rhoMin 1e-15; minParticleMass 1e-15; rho0 2526; youngsModulus 1e8; poissonsRatio 0.35; constantVolume false; alphaMax 0.99; } |
|
July 4, 2014, 06:46 |
|
#10 |
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
Well, I did not have the need to have fixed positions for a particular size so I have not investigated it.. Moreover, if you have to change how the kinematiccloud positions injects/places the particles you might have to tweak the code as you rightly pointed out.. i am sorry... I can be of very little assistance on this regard ... one suggestion could be (may work for you).. use two injections instead of one.. In that way define two kinematic position files (one for the top section and the other for the bottom one).. then use the fixed distribution for each.. you can have two type ID's and two different densities.. I think this could be a way forward??
BR ansubru |
|
July 4, 2014, 07:05 |
|
#11 |
Senior Member
|
It was only for curiosity and I don't need it yet. I will work on it in my leisure time.
What is strength definition? I changed it from (0.5 0.5) to (1.5 0.5) and it worked without error, So it couldn't be volume fraction of two particles. Do you know if it is based on number, mass, volume, ...? Regards, |
|
July 4, 2014, 07:08 |
|
#12 |
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
From my understanding, strength is based on number ..
|
|
June 9, 2015, 07:09 |
|
#13 |
New Member
mehdi
Join Date: Nov 2010
Location: Tehran
Posts: 16
Rep Power: 16 |
Dear All
I'm new in applying CFD in coupling with DEM. So far I find three fine soft-wares for CFD-DEM applications and have some experiences with them: CFD-DEM coupling , DPMfoam in OpenFoam and Mfix. Now my question is what's the difference among them and which one is more powerful and valid? Specially which one has the tools for handling electrostatic forces and other non-contacting forces between particles? Best Regards |
|
June 9, 2015, 07:19 |
|
#14 |
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
Hi mehdi!!
The softwares you have mentioned are all widely used for simulating several applications of granular and other dense multiphase flow. Each code has its own merits and de-merits and additionally ease of use as well. For instance, the OF code is not very straight forward to use, and will need a little acclimating time. Mfix and CFD-DEM coupling are a little more straight forward to use. The choice of course depends on the user, and the level of proficiency with CFD tools. If you are interested in including your own models then OF is definitely the most customizable, however mfix is not that far behind. The choice is of course entirely urs to make, remember your application and the degree of customizability you desire. If its a straight forward case study, where you need results quickly I would suggest CFD-DEm coupling and mfix.. If you want complete control of every relevant physics, then I would definitely recommend OF. Hope this would help you Regards Ansubru |
|
June 10, 2015, 08:51 |
|
#15 |
New Member
mehdi
Join Date: Nov 2010
Location: Tehran
Posts: 16
Rep Power: 16 |
Hi Ananda,
I appreciate your valuable comments on my post. It was completely useful. |
|
July 1, 2015, 09:30 |
|
#16 | |
New Member
Nan
Join Date: Feb 2015
Posts: 6
Rep Power: 11 |
Quote:
I agree with Ansubru. I think what is also important to mention, when you talk of which is more powerful, is the programming language used and your proficiency with them. All of these are great packages to start with. If your work involves substantial development, I will ask you to be careful. Be sure what suits you. MFIX uses FORTRAN while OF and CFDEM uses C++. From my experience in using all three packages I found MFIX most easy to use. The code is very easy to read. While OF was most difficult to read. It makes heavy use of templates and has several layers of coding. For an inexperienced C++ user this can be very frustrating. However, if you are not going to make heavy changes and just make use of features as is than you may choose only based on their resp features. Hope that helps! Vinay |
||
May 23, 2018, 22:17 |
|
#17 | |
Member
Min Zhang
Join Date: Mar 2017
Posts: 81
Rep Power: 9 |
Quote:
Hello Ansubru, This is Min. I have been working on MPPICFoam for 3 months and I plan to use DPMFoam. I think you are an expert on DPMFoam. Could I ask several questions? If we set nParticle=1 for DPMFoam, what is the difference between unresolved CFD-DEM and DPMFoam? If we set nParticle>1 for DPMFoam, what is the difference between coarse-grained CFD-DEM and DPMFoam? What is the difference between MPPICFoam and DPMFoam? In addition, I am wondering whether you could have a look at my post about MPPICFoam when you have time. Simulate particle/liquid flow in a converging geometry with MPPICFoam Thank you so much! |
||
May 24, 2018, 04:53 |
|
#18 |
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
Hi Min!
Firstly, I am flattered that you think I am an 'expert' in DPMFoam (I personally dont think that is the case :P).. To provide a quick answer to some of your questions - 1) I am no expert in MPPIC methods, infact I have never worked with that framework. A quick google gave me this --> *The heart of the MP-PIC method is in the use of the as yet undefined particle volume fraction in [21] and [26] to approximate advanced-time pressures and solids stresses*(Andrews and Rourke, International Journal of Multiphase flow (1994) https://doi.org/10.1016/0301-9322(95)00072-0). So I am guessing that you need to dig into how the particle stresses are estimated in the MPPIC src code. A good starting point is - "grep -r -i MPPIC .". That shell command run in the foam/src dir would give you all the relevant files that you could investigate. 2) If we set nParticle=1 for DPMFoam, what is the difference between unresolved CFD-DEM and DPMFoam? This question I do not understand. What do you mean by unresolved CFD-DEM, are you referring to the boundary layers around the particle being unresolved? If so, then that is a feature of all CFD-DEM approaches, remember its a Lagrangian treatment for the particles which assumes point particle treatment (negligible size, but fixed mass) If nparticle = 1, it means that one DEM particle represents one real particle, if nparticle = n it means you are looking at clusters of particles and if you have a really dense bed of several million particles, then this would be a reasonable assumption to predict some general trends of the particulate flow. In CFD-DEM you are coupling the fluid and the particle much like the MPPIC (its 4 way coupled), only that you solve for the individual particle positions (using Newtons 2nd law) and not a louville equation for the distribution of particle positions. So in some way this is deterministic! 3) What is the difference between MPPICFoam and DPMFoam? The fundamental difference as I see is the governing equations being solved. CFD-DEM is a euler-lagrange treatment, where as MPPIC seems more like a continuum-meso scale approach where a Liouville equation is solved for the distribution function of particle positions, velocities and sizes. Due to this CFD-DEM is a bit more tractable as the equations you are solving are 'simpler' and the coupling between the phases (at least in DPMFoam) is semi-implicit (which is combination of explicit and implicit treatments): In essence for a simulation with a few 100000 particles CFD-DEM is much more tractable (particularly given the computing resources we have these days) Hope I was able to clear some of your doubts. Regards Ananda |
|
May 24, 2018, 10:45 |
|
#19 | |||||||
Member
Min Zhang
Join Date: Mar 2017
Posts: 81
Rep Power: 9 |
Hi Ananda,
Thank you so much for your answer! Quote:
I am wondering whether you are still working on DPMFoam, or other similar methods. Quote:
2) If we set nParticle=1 for DPMFoam, what is the difference between unresolved CFD-DEM and DPMFoam? Quote:
Another question, what do you mean by "point particle treatment (negligible size, but fixed mass)"? I think in CFD-DEM, the particles have the real size, yes? My question is, what is the difference of the particle treatments between DPMFoam and CFD-DEM? Quote:
Quote:
Since DPMFoam and MPPICFoam are utilizing a lot of same functions, they should be very similar, the only difference is the particle-particle interaction, yes? 3) What is the difference between MPPICFoam and DPMFoam? Quote:
A lot of CFD-DEM studies are based on OpenFOAM&LIGGGHTS&CFDEMcoupling, yes? But DPMFoam is only a solver in OpenFOAM. What is the difference? Quote:
As far as I know, the equations of MPPICFoam are much more complex than CFD-DEM methods. Could you give more details about the semi-implicit scheme? So you mean, DPMFoam is CFD-DEM, yes? Absolutely! Thanks again for your detailed answers! Best regards, Min |
||||||||
May 25, 2018, 06:50 |
|
#20 | ||||||
Member
Ananda Kannan
Join Date: Feb 2014
Location: Göteborg, Sweden
Posts: 55
Rep Power: 12 |
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
And to answer your first question, I do not work with DPMFoam anymore, but I am really interested to see how it has developed over the years. Currently I am dealing more with an Immersed boundary based DNS method to study gas-solid systems involving nanoparticles (rarefied flow of particulates in a micro-channels) Regards /Ananda |
|||||||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Fluent Adjoint Solver? | ex10148 | FLUENT | 16 | September 28, 2018 09:11 |
thobois class engineTopoChangerMesh error | Peter_600 | OpenFOAM | 4 | August 2, 2014 10:52 |
Divergence problem | Smaras | FLUENT | 13 | February 21, 2013 06:03 |
3d vof | Smaras | FLUENT | 2 | February 19, 2013 07:58 |
why the solver reject it? Anyone with experience? | bearcat | CFX | 6 | April 28, 2008 15:08 |