|
[Sponsors] |
[OpenFOAM] Postprocessing a billion cell CFD case |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
Senior Member
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,906
Rep Power: 33 ![]() |
Hello All,
A question. I have a huge CFD run and need to extract the iso-surface from the data for visualisation purposes. I can do the VTK conversion but have no good way of creating an iso-surface for visualisation. The actual iso-surface will be considerably smaller than the mesh size and can be manipulated more easily. Do we have a tool that could take a really large CFD data set and make me an iso-surface (ideally in parallel)? Hrv
__________________
Hrvoje Jasak Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Eugene de Villiers
Join Date: Mar 2009
Posts: 725
Rep Power: 21 ![]() |
Its far from perfect, but the existing sampleSurface has an option "constantIsoSurface" to create vtk iso-surfaces and interpolate user specified volFields on to them.
It also runs in parallel. |
|
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Gavin Tabor
Join Date: Mar 2009
Posts: 181
Rep Power: 17 ![]() |
Hrv,
Could you not use VTK direct; read the data into VTK format, generate an isosurface from that, but instead of visualising it on the screen, dump it directly to file - either as an image file (if you know what direction you want to look at it from) or in something like vrml which could be processed further? I've thought for a while that it would be good to build some of the VTK classes directly into OpenFOAM; then you could create a visualisation image each timestep during the run and run them together to get an animation. Oh, to have time to do some of these things! Gavin |
|
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Mark Olesen
Join Date: Mar 2009
Location: https://olesenm.github.io/
Posts: 1,714
Rep Power: 40 ![]() ![]() |
Hi Eugene,
The more general sampling solution used in OpenFOAM-1.5 allows sampling as function objects and also as a post-processing step. Since the isosurfaces are strictly speaking not sampling surfaces, but rather dynamically generated surfaces depending on a particular field value, they only remotely fit in the new framework. I think Gavin's idea of harnessing vtk is interesting. |
|
![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,906
Rep Power: 33 ![]() |
Brilliant! Thank you all.
Gavin, do you happen to know how to harness paraview or VTK to actually do the job? I have converted the data into VTK, but moving multi-GB files around is impractical. Presumably, there is a python interface to make VTK do what I want, but not sure how... Any ideas? Hrv
__________________
Hrvoje Jasak Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk |
|
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Eugene de Villiers
Join Date: Mar 2009
Posts: 725
Rep Power: 21 ![]() |
Hi Mark,
It might only remotely fit into the system, but generating iso-surfaces as meshes for re-use (in for example snappyHexMesh) is an extremely useful function. If it is done using VTK, we would still need a vtk reader to be able to convert vtk format surfaces to triSurfaces. |
|
![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Gavin Tabor
Join Date: Mar 2009
Posts: 181
Rep Power: 17 ![]() |
Hi Hrv,
VTK is just another C++ class library; you can construct a visualisation pipeline by writing code and compiling it just like we do in OpenFOAM. The only real difference is that the VTK authors have decided to do everything with pointers. If you rummage around on the VTK site there are quite a few coded examples. vtkContourFilter or vtkMarchingCubes would work. (There is even a vtkExtractVOI filter for taking a section out of a large dataset). One of the examples codes has the following as an illustration of how to do this: vtkContourFilter *skinExtractor = vtkContourFilter::New(); skinExtractor->SetInputConnection(v16->GetOutputPort()); skinExtractor->SetValue(0, 500); v16 is a VTK dataset. This is then rendered on the screen; but VTK has the facility to render to a file directly without going through the screen. If you did that on its own you would have a code to run which would not go anywhere near the graphics and could just be left to get on with things... Gavin |
|
![]() |
![]() |
![]() |
![]() |
#8 |
Super Moderator
Takuya OSHIMA
Join Date: Mar 2009
Location: Niigata City, Japan
Posts: 518
Blog Entries: 1
Rep Power: 20 ![]() |
Hi all,
Along this line what I think would really be nice is to implement a feature to write ghost cell information [1] as well as decomposed mesh into decomposePar for parallel postprocessing. From my experience in writing the parallelized ParaView reader [2] I felt it is indeed difficult to reconstruct the ghost cell information from the current mesh format that only has point/face/cell/boundaryProcAddressing extra information. As far as I tested with the reader (and everyone can test since it's publicly available), even though decomposed mesh can be postprocessed in parallel, without ghost cells we have to see some sort of artifacts in most of visualization renderings at processor boundaries (e.g. juggy faults in isosurface contours). I don't know so much about parallel postprocessors other than ParaView, but IIRC at least VisIt also has similar ghost cell capabilities. I believe I'm not usually a guy who complains about missing features (implement than complain), but I think it's time for FOAMers to seriously consider about sorting out required features for large-scale postprocessing. Just my two cents. [1] Large Scale Visualization with ParaView: Supercomputing 2008 Tutorial, p. 56, http://paraview.org/Wiki/images/6/62...w_Handouts.pdf [2] http://openfoamwiki.net/index.php/Contrib_Parallelized_Native_OpenFOAM_Reader_fo r_ParaView Takuya |
|
![]() |
![]() |
![]() |
![]() |
#9 |
Member
David Segersson
Join Date: Mar 2009
Posts: 39
Rep Power: 17 ![]() |
Hi,
I'm in need of a tool to make an isosurface for a case thats to big to open in paraview (30 million cells). Since it´s been I while since this thread was updated I thought I´d check if there has been any developement going on in this direction? David |
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
How to use "translation" in solidBodyMotionFunction in OpenFOAM | rupesh_w | OpenFOAM Running, Solving & CFD | 5 | August 16, 2016 04:27 |
interFoam running blowing up | sandy13 | OpenFOAM Running, Solving & CFD | 2 | May 5, 2015 07:16 |
CFD Post Case Comparison | akarlin | CFX | 0 | March 3, 2013 20:52 |
60 million cell case loading in openFoam | nikhilesh | OpenFOAM Running, Solving & CFD | 0 | June 3, 2009 08:36 |
Need help on simple CFD case. (using CFD-ACE+) | Sean | Main CFD Forum | 1 | September 30, 2005 10:05 |