OpenFOAM/C3/Using-Template-files-in-PyFoam/English

From Script | Spoken-Tutorial
Revision as of 18:04, 16 January 2017 by Viraj20feb (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Tutorial 21: C2

Title : Using Template files in PyFoam Script : Anmol Sahoo, Rahul Joshi Narration : Rahul Joshi

Keywords : OpenFOAM, PyFoam, Python, Template, supersonic flow, wedge


Visual Cue
Narration
Show slide : Title Hello and welcome to the Spoken Tutorial on Using Template files in PyFoam.
Show Slide : Learning Objective In this tutorial we will:
  • Understand the function of PyFoam Utilities
  • Create and use template files
  • Use PyFoamFromTemplate.py for solving the supersonic flow over wedge

We can run this for different wedge angles using template files.

Show Slide : System requirement To record this tutorial I am using
  • Ubuntu Linux Operating System 14.04
  • OpenFOAM 2.3.0
  • PyFoam-0.6.5
Show slide : Prerequisite To practice this tutorial the user should have :
  • Basic Knowledge of using Linux terminal
  • Experience of running and analyzing OpenFOAM cases

If not, please refer to the spoken tutorial series on Linux and OpenFOAM.

Show slide : Template Files What are template files?

Template files are used to generate OpenFOAM files like

blockMeshDict or controlDict

Template files can be programmed, hence we can procedurally generate data.

Show slide : Syntax of Template files A template file should be an OpenFOAM file, with the following -
  • Any line beginning with $$ is a Python program line.
  • It will be executed by Python
  • Any variable can be substituted in the file by using the syntax

| -varname - |

Show slide : Using a template file The following steps should be followed to use a template file :
  • First copy an existing file
  • After this create a template file
  • Then run PyFoamFromTemplate.py
Show slide : Creating a template file Template file will be created for blockMeshDict.

We will use the supersonic flow over a wedge as an example case. The case file is available in the rhoCentralFoam solver.

Type run/tutorials/compres sible/rhoCentralFoam Open the terminal.

Type the path for the rhoCentralFoam inside compressible solvers.

Type

cp -r Wedge5M15

/home/fossee/OpenFO AM/

Now copy the Wedge5M15 case directory into OpenFOAM directory

by typing

cp -r Wedge5M15 /home/fossee/OpenFOAM/ and press Enter.

Cd OpenFOAM/Wedge5 M15 On the terminal, type the path for Wedge5M15 folder inside

OpenFOAM directory.

Type cd constant/polyMesh/bl ockMeshDict Type the path for blockMeshDict file inside polyMesh directory inside

constant.

Type gedit blockMeshDict Open the blockMeshDict file in any editor of your choice.
Point to the vertices section We can see the vertices section.
Show slide : vertices to

be changed

We need to calculate the co-ordinates of the end points of the slope.

Based on the angle, change the following lines

( 0.3048 0.081670913853 -0.005)

( 0.3048 0.081670913853 0.005)

On the terminal type

cp -r blockMeshDict >

blockMeshDict.templ

ate

Switch back to the terminal

Copy your blockMeshDict file into a file called

blockMeshDict.template, type the following-

cp -r blockMeshDict > blockMeshDict.template

gedit blockMeshDict.template Open the blockMeshDict.template file using gedit
Show slide : Template file syntax Add the following lines above convertToMeters

$$import math

$$thetaDegrees = 10.0

$$thetaRadians = math . radians ( thetaDegrees )

$$y_coord = 0.3048* math . tan ( thetaRadians )

Any line preceded with $$ is a Python line, and will be interpreted and executed by Python

Show slide : Template file syntax Modify the vertices entry as

( 0.3048 |-y_coord-| -0.005)

( 0.3048 |-y_coord-| 0.005)

Python variables assigned in the template file, should be substituted at any location in the file.

To do so, use | −varname− | in the file.

Highlight or point to the changes We can see the changes made into this file.
Now, let's create a blank file
Type gedit templateFileConst On the terminal, type gedit templateFileConst and press Enter.
templateFileConst Create a dummy entry inside it by typing

dummy 1.0;

A dummy entry is mandatory.

An external dict has to be provided with any constant that is to be used in the template file.

Press Ctrl+S and close Save and close the both the files
cd ../../ Now go 2 levels back to your case file.
Switch back to slides Let me switch back to slides
Show slide : Running PyFoam command We have to run the template command now.

pyFoamFromTemplate.py --template-file=./blockMeshDict.template

--output=./blockMeshDict --values-dictionary=templateFileConst

--allow-exec-instead-of-assignment

Type this command in terminal >> press Enter Type this command in terminal and press Enter
Type cd constant/polyMesh Now again go inisde the polyMesh folder inside constant
Point to blockMeshDict and a python file We can see that
  • 2 new files are generated
  • the blockMeshDict.template file is replaced by blockMeshDict
  • and .py file is also generated.
Point to the Python

file.

Do not edit the Python file.
On the terminal type

gedit blockMeshDict

In the terminal, open the blockMeshDict file by typing -
gedit blockMeshDict and press Enter.
Point to wedge angle We had changed the wedge angle from 15 deg to 10 deg.
Point to end points The end points of the slope have also changed.
Show slide :Running the case file We can now run the case file by executing the OpenFOAM commands
  • blockMesh
  • rhoCentralFoam
  • visualize the results using Paraview.
Show slide : Assignment As an assignment, use the following wedge angles and run the template

commands.

- 0deg, 5 deg, 20 deg, 25 deg

Show slide : Summary Let us summarize.

In this tutorial, we learnt about PyFoam Template

We also learnt to-

  1. check the installation of script for using template
  2. and using the PyFoamFromTemplate.py command
Show Slide

Forum to answer questions

Please post your timed queries in this forum.
Show Slide

Forum to answer questions

Please post your general queries on OpenFOAM in this forum.
Show Slide Textbook Companion The FOSSEE team coordinates the TBC project.
Show Slide Acknowledgement The Spoken Tutorial Project is funded by NMEICT, MHRD, Govt. of India

For more details , visit this website.

Thank You This is Rahul Joshi from IIT Bombay signing off. Thanks for watching

Contributors and Content Editors

Nancyvarkey, Viraj20feb