CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Post-Processing (
-   -   Visualizing OpenFOAM VTK-files using mayavi/mlab in Python (

bjnieuwboer December 16, 2013 10:39

Visualizing OpenFOAM VTK-files using mayavi/mlab in Python
Hi All,

I am trying to visualize my model results from OpenFOAM in python using mayavi/mlab. I am able to plot the surfaces of my model. However, I would like to make a quiverplot of my velocity field and a volume plot of my pressures. I found some documentation this. However, this documentation did not state anything on the combination with loaded VTK-files. The code beneath is the one I use for plotting the surfaces. Could anyone help me extend this to plotting the velocities and pressures using python?


import os
from mayavi.core.api import Engine
from mayavi.sources.vtk_file_reader import VTKFileReader
from mayavi.modules.surface import Surface
from mayavi import mlab
vtkFile_tot = os.path.normpath('D:/Bas/python/VTK/131023cutterBlended08RelVel_0.vtk')
engine = Engine()
scene = engine.new_scene()
reader = VTKFileReader()
surface = Surface()

bjnieuwboer July 30, 2014 10:52

Working principle
After a while I found a way to visualise my VTK files generated by OpenFOAM using mayavi.


import os

 # engine imports.
 from mayavi.scripts import mayavi2
 from mayavi.sources.api import VTKFileReader
 from mayavi.modules.glyph import Glyph
 from mayavi.filters.mask_points import MaskPoints
 from mayavi.core.api import Engine
 from mayavi import mlab

 # Create a new VTK scene if none is present yet
 def initializeVTK(filename):
    except NameError:
        global engine
        print 'warning is due to the check if the global variable named engine already exists'
        engine = Engine()
    if len(engine.scenes) == 0:
    r = VTKFileReader()


 # Make a mask for the points
 m = MaskPoints()
 m.filter.set(on_ratio=300, random_mode=False)
 engine.add_filter(m) # this adds the module 'm' the engine
 g = Glyph()
 engine.add_module(g) # this adds the module 'g' the engine

 g.glyph.color_mode = 'color_by_vector'
 g.glyph.scale_mode = 'scale_by_vector'
 # Use arrows to view the scalars.
 gs = g.glyph.glyph_source
 gs.glyph_source = gs.glyph_dict['arrow_source']

 f = mlab.gcf()
 f.scene.background = (1.0, 1.0, 1.0) # set background color 

All times are GMT -4. The time now is 16:00.