WOLFSON UNIT OpenFOAM workshop 1 st November 2010 Postprocessing & the black art of scripting Sandy Wright
Dec 21, 2015
WOLFSON UNIT
OpenFOAM workshop1st November 2010
Postprocessing & the black art of scripting
Sandy Wright
WOLFSON UNIT
Postprocessing
• Paraview– Open source, multi-platform– Based on VTK toolkit– http://www.paraview.org/– Can compile or download exe
• ParaFOAM – Reads native FOAM formats– Can be very difficult to install correctly– NOT installed on Iridis
WOLFSON UNIT
The basics
• Cell centred data v node centred• Filters
– Colour by ..– Slice– Clip– Vectors (Glyphs)– Calculator
• Save Data
WOLFSON UNIT
Customisation
• Custom filters (Tools->create custom filter)
• State files (same can be achieved via python script)
• Background images (Edit->View settings)
• Customised colour maps
WOLFSON UNIT
Adaptability
• Parallelisation (pvbatch can be run via mpi)
• State files & filters platform independent (up to a point)
• Server-client (ie store files on one machine, use graphics processing of the one in front of you)
• Python scripting...
WOLFSON UNIT
Visualisation of cases on iridis1. Run paraview on iridis via X tunnelling/ exceed –
slow for large models2. Tar & Gzip ./VTK & processor*/VTK– large files
(typically 1-2 GB when zipped)3. Lower mesh resolution via mapFields– lose
resolution, but v useful for quick viewing etc (and smooths out hot spots etc !!)
4. Extract and port surfaces only (100’s of MB only)
WOLFSON UNIT
Map fields• Make new run dir (lets call it low_res)• Copy constant & system dirs to low_res dir• Make timestep folder (equiv to last time step of full solution) in
low_res• Create / copy template field data files (eg U, p) in
low_res/timestep• Create blockMeshDict of required density in
low_res/constant/polyMesh• Create mapFieldsDict in low_res/system
• blockMesh >> LOG-map_fields.txt
• mapFields ../full_solution_dir -parallelSource -sourceTime 1803 >> LOG-map_fields.txt
WOLFSON UNIT
Scripting“A scripting language is a programming language
that allows control of applications and the environment etc without requiring compilation.”
• Unix/Linux– Bourne shell (aka Bash)– C shell– Others(Korn, mudsh, fish, scsh, pysh ...)
• Python“Python is an interpreted, object-oriented, high-
level programming language with dynamic semantics”
WOLFSON UNIT
Shell scripts• Basically a copy of what you would type on the
command line, but...– Allows decision making (if/else)– Simple (e.g. arithmetic) operators
• Why – Avoid mistakes in repetitive commands– Incorporation of command line exe’s leads to very powerful tools– Daisy chain different scripts together
• Redirection (< > >>), standard streams (0,1,2...)
• Example of openfoam running script• Example of ‘house keeping’ script
WOLFSON UNIT
Different shells
• Shebang ( #!/bin/bash )• Iridis is run on Bourne/Bash• Good practise• Why Bash
– http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/– Redirecting streams (eg stderr to stdout => 2>&1 )
• Mix ‘n’ match
WOLFSON UNIT
Command line editors
• Why ? Surely this went out with the punch card ....– Template script file– Repetitive searches in LARGE files
• SED– sed 's/yourword/myword/g' infile >outfile
• head – head –n 5 infile > outfile
WOLFSON UNIT
Python• Easy to learn and readable• Object orientated
– Libraries & routines out there to be used!
• Lists – a = ['spam', 'eggs', 100, 1234] – >>> a
• ['spam', 'eggs', 100, 1234]
– >>> a[3] • 1234
• For loops (note indenting)• for i in range(24):
Example of Paraview python script
WOLFSON UNIT
Resources• http://www.paraview.org/Wiki/ParaView
• http://www.cfd-online.com/Forums/
• > paraview -?
• Google !!!
WOLFSON UNIT
Scripting resources• http://www.python.org/• http://docs.python.org/tutorial/• http://docs.python.org/release/2.5.2/tut/tut.html• http://www.soton.ac.uk/~sesg3020/index.html
• http://www.hypexr.org/bash_tutorial.php• http://tldp.org/LDP/abs/html/
• http://www.eng.cam.ac.uk/help/tpl/unix/sed.html• http://www.grymoire.com/Unix/Sed.html