presentation_openfoam_workshop_011110_AMW

Download Report

Transcript presentation_openfoam_workshop_011110_AMW

OpenFOAM workshop
1st 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 iridis
1. Run paraview on iridis via X tunnelling/ exceed –
slow for large models
2. 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
WOLFSON UNIT