|January 16, 2012, 12:25||
Modeling the Earth's Mantle: is OpenFOAM a good candidate?
Join Date: Jan 2010
Posts: 4Rep Power: 7
I'd like to figure out if OpenFOAM is a suitable candidate for a project I have in mind to model the Earth's upper mantle. I've read through the OpenFOAM documentation and tried a few of the tutorials after installing OpenFOAM in Ubuntu. Before I dive too far into the development of my project I thought it would be a good idea to ask the openfoam community about the feasibility of my project using openfoam and pitfalls that I may encounter or tips for packages to use.
First a little background to let you know where I'm coming from. I just finished my master's studying flow in the Earth's upper mantle using this software package:
CitcomCU is tailored to modeling the Earth's mantle, so in that sense it's a good product for the task. However, there are several key limitations:
1. Cartesian coordinates only for the mesh
2. No adaptive grid refinement
3. No native "open" boundary conditions (stress free in all 3 directions), and when I modified the boundary conditions in the source code I got somewhat "iffy" results.
I already took a job in an unrelated field after graduation, but for my own edification and professional development I'd like to try to use another fluid dynamics model and set up the same types of systems to compare and benchmark the results. Enter OpenFOAM. Let me briefly lay out the system that I would like to model so that people can comment on how it might best be modeled in OpenFOAM:
3-D cartesian coordinate space, ~ 800x400x12,800km.
Temperature: constant top and bottom temperatures, temperature flux out the side boundaries
Velocity: no-slip on the top, free slip on 3 sides, stress-free open on bottom and one of the sides
Equations to be solved:
conservation of mass momentum and energy
-time-dependent, solution is expected to develop random droplets that fall from the top boundary, so no steady state solution is expected. There may be a statistical steady state reached after I run the model long enough.
Arrhenius equation that includes the effects of temperature and pressure among other things. This equation will produce viscosities near the top of my model that go to infinity, but can be capped at ~1e30Pa*s . The viscosity will drop down to ~1e17Pa*s in the middle of the domain before returning to ~1e22Pa*s at the bottom of the domain. Solving for such a large viscosity contrast may be difficult?
Need to track certain characteristics via lagrangian particles that are advected passively within the domain. I know this can be tricky when you have open boundaries since some particles can leave the domain. I have a couple of ideas about how to handle this and don't mind digging into some source code to make my own solutions for this part.
Would really like to use a dynamic mesh that adds resolution to areas that have high viscosity contrast.
I definitely need this code to be parallelized, and would be interested in adding GPGPU capability (I've read about some linear solvers being developed for OpenFOAM+CUDA).
So, I probably left out some relevant details, but does anyone have any thoughts on this project?
|January 16, 2012, 17:39||
Join Date: Apr 2009
Location: Winnipeg, Canada
Posts: 397Rep Power: 12
OpenFOAM is very powerful. Most of what you talk about exists in OpenFOAM in some form, but you will have to write a custom solver. In terms of learning curves, you're looking at a few.
1. You could get a transient, laminar, boussinesq solver in one shot - finiteVolume and core library only (temperature being a scalar transport only).
2. I think the viscosity models are in the thermophysical library, which in my opinion is overly complicated. It uses five levels of embedded templating... but if you want energy, you'll need it, so that's your second learning curve.
3. Particle tracking is another one, but I believe it is much easier to understand than thermophysical.
4. Finally, dynamic meshing. If you want good dynamic meshing, go with OpenFOAM-extend... I know they've put a lot of effort into it. But I don't know much about that. So there's your final learning curve.
Once you learn OpenFOAM top to bottom, though, the world is your oyster.
Follow me on twitter @DavidGaden
|January 16, 2012, 19:20||
Join Date: Jan 2010
Posts: 4Rep Power: 7
|January 17, 2012, 03:57||
Adaptive mesh refinement
Join Date: May 2009
Posts: 31Rep Power: 8
A while back I tried adaptive mesh refinement on some problem involving shocks. It worked well, but I never found out how to apply it when running parallel. I couldn't make it to do redistribution of the cells, making it in principle useless on parallel calculations.
This could well be due to incompetence on my part, and I would appreciate if someone could give some hints about how parallel efficency can be achieved with AMR. OpenFOAM-extend maybe?
|January 18, 2012, 20:13||
Daniel WEI (老魏)
Join Date: Mar 2009
Location: South Bend, IN, USA
Blog Entries: 9Rep Power: 12
Actually, half a year ago, I am also interested in modeling this. However, something came up... But I'd like to hear your good news.
|Thread||Thread Starter||Forum||Replies||Last Post|
|OpenFOAM vs. Fluent & CFX||marco||Main CFD Forum||81||March 31, 2009 14:22|
|Know a good book for multiscale flow modeling?||TT||Main CFD Forum||0||November 29, 2006 16:11|
|Is blockMesh generally considered a good quality tool||york||OpenFOAM Native Meshers: blockMesh||4||November 15, 2006 14:42|
|Would OpenFOAM be good for this shortterm project distributed force field||brooksmoses||OpenFOAM Running, Solving & CFD||2||November 2, 2005 04:58|
|Modeling Flow/Saturation/Absorption in Fibers||Gene Dougherty||Main CFD Forum||0||June 6, 2003 14:49|