WOLFSON UNIT OpenFOAM workshop 1 st November 2010 Postprocessing & the black art of scripting Sandy Wright.

Post on 21-Dec-2015

225 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

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

top related