Difference between revisions of "OpenFOAM/C3/Using-Template-files-in-PyFoam/English"
Nancyvarkey (Talk | contribs) |
Nancyvarkey (Talk | contribs) |
||
| (13 intermediate revisions by one other user not shown) | |||
| Line 13: | Line 13: | ||
|- | |- | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Title | | style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Title | ||
| − | | style="border:0.25pt solid #000000;padding:0cm;"| Hello and welcome to the | + | | style="border:0.25pt solid #000000;padding:0cm;"| Hello and welcome to the spoken tutorial on '''Using Template files in PyFoam.''' |
|- | |- | ||
| Line 22: | Line 22: | ||
* Create and use template files | * Create and use template files | ||
* Use '''PyFoamFromTemplate.py '''for solving the '''supersonic flow over wedge''' | * Use '''PyFoamFromTemplate.py '''for solving the '''supersonic flow over wedge''' | ||
| − | + | *We can run this for different '''wedge angles '''using '''template '''files. | |
| − | We can run this for different '''wedge angles '''using '''template '''files. | + | |
|- | |- | ||
| Line 40: | Line 39: | ||
* Experience of running and analyzing '''OpenFOAM '''cases | * Experience of running and analyzing '''OpenFOAM '''cases | ||
| − | If not, please refer to the spoken tutorial series on '''Linux '''and '''OpenFOAM'''. | + | If not, please refer to the spoken tutorial series on '''Linux '''and |
| + | |||
| + | '''OpenFOAM'''. | ||
|- | |- | ||
| Line 46: | Line 47: | ||
| style="border:0.25pt solid #000000;padding:0cm;"| What are '''template '''files? | | style="border:0.25pt solid #000000;padding:0cm;"| What are '''template '''files? | ||
| − | '''Template '''files are used to generate '''OpenFOAM '''files like | + | '''Template '''files are used to generate '''OpenFOAM '''files like '''blockMeshDict or controlDict''' |
| − | |||
'''Template '''files can be programmed, hence we can procedurally generate data. | '''Template '''files can be programmed, hence we can procedurally generate data. | ||
| + | |||
|- | |- | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Syntax of Template files | | style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Syntax of Template files | ||
| Line 57: | Line 58: | ||
* Any line beginning with '''$$ '''is a '''Python program '''line. | * Any line beginning with '''$$ '''is a '''Python program '''line. | ||
* It will be executed by '''Python''' | * It will be executed by '''Python''' | ||
| − | * Any variable can be substituted in the file by using the syntax | + | * Any variable can be substituted in the file by using the syntax '''| -varname - |''' |
| − | + | ||
| − | '''| -varname - |''' | + | |
|- | |- | ||
| Line 78: | Line 77: | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Type '''run/tutorials/compres sible/rhoCentralFoam''' | | style="border:0.25pt solid #000000;padding:0cm;"| Type '''run/tutorials/compres sible/rhoCentralFoam''' | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Open the '''terminal'''. | | style="border:0.25pt solid #000000;padding:0cm;"| Open the '''terminal'''. | ||
| + | |||
Type the '''path '''for the '''rhoCentralFoam '''inside '''compressible solvers.''' | Type the '''path '''for the '''rhoCentralFoam '''inside '''compressible solvers.''' | ||
| Line 84: | Line 84: | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Type | | style="border:0.25pt solid #000000;padding:0cm;"| Type | ||
| − | '''cp -r | + | '''cp -r Wedge15Ma5''' |
| − | '''/home/fossee/ | + | '''/home/fossee/OpenFOAM/''' |
| − | | style="border:0.25pt solid #000000;padding:0cm;"| Now copy the ''' | + | | style="border:0.25pt solid #000000;padding:0cm;"| Now copy the '''Wedge15Ma5 case directory '''into '''OpenFOAM directory''' |
by typing | by typing | ||
| − | '''cp -r | + | '''cp -r Wedge15Ma5 ''' |
| + | |||
| + | Type the path of '''your OpenFOAM directory''' and press '''Enter.''' | ||
|- | |- | ||
| style="border:0.25pt solid #000000;padding:0cm;"| '''Cd OpenFOAM/Wedge5 M15''' | | style="border:0.25pt solid #000000;padding:0cm;"| '''Cd OpenFOAM/Wedge5 M15''' | ||
| − | | style="border:0.25pt solid #000000;padding:0cm;"| On the '''terminal, '''type the path for ''' | + | | style="border:0.25pt solid #000000;padding:0cm;"| On the '''terminal, '''type the path for '''Wedge15Ma5 folder '''inside '''OpenFOAM directory.''' |
| − | + | ||
| − | '''OpenFOAM directory.''' | + | |
|- | |- | ||
| Line 126: | Line 126: | ||
| style="border-top:0.25pt solid #000000;border-bottom:none;border-left:0.25pt solid #000000;border-right:0.25pt solid #000000;padding:0cm;"| On the terminal type | | style="border-top:0.25pt solid #000000;border-bottom:none;border-left:0.25pt solid #000000;border-right:0.25pt solid #000000;padding:0cm;"| On the terminal type | ||
| − | '''cp -r blockMeshDict | + | '''cp -r blockMeshDict ''' |
'''blockMeshDict.templ''' | '''blockMeshDict.templ''' | ||
| Line 133: | Line 133: | ||
| style="border-top:0.25pt solid #000000;border-bottom:none;border-left:0.25pt solid #000000;border-right:0.25pt solid #000000;padding:0cm;"| Switch back to the '''terminal'''. | | style="border-top:0.25pt solid #000000;border-bottom:none;border-left:0.25pt solid #000000;border-right:0.25pt solid #000000;padding:0cm;"| Switch back to the '''terminal'''. | ||
| − | Copy your '''blockMeshDict '''file into a file called '''blockMeshDict.template | + | Copy your '''blockMeshDict '''file into a file called '''blockMeshDict.template''' |
| + | |||
Type the following- | Type the following- | ||
| − | '''cp -r blockMeshDict | + | '''cp -r blockMeshDict blockMeshDict.template''' |
|- | |- | ||
| − | | style="border:0.25pt solid #000000;padding:0cm;"| gedit blockMeshDict. | + | | style="border:0.25pt solid #000000;padding:0cm;"| gedit blockMeshDict.templat e |
| style="border:0.25pt solid #000000;padding:0cm;"| Open the '''blockMeshDict.template''' file using '''gedit'''. | | style="border:0.25pt solid #000000;padding:0cm;"| Open the '''blockMeshDict.template''' file using '''gedit'''. | ||
|- | |- | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Template file syntax | | style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Template file syntax | ||
| − | | style="border:0.25pt solid #000000;padding:0cm;"| Add the following lines above '''convertToMeters''' | + | | style="border:0.25pt solid #000000;padding:0cm;"| Add the following lines above '''convertToMeters'''. |
| + | |||
| + | |- | ||
| + | | style="border:0.25pt solid #000000;padding:0cm;"| Edit '''blockMeshDict.template''' | ||
| + | | style="border:0.25pt solid #000000;padding:0cm;"| Any line preceded with '''$$ ''' is a '''Python ''' line, and will be interpreted and executed by '''Python''' | ||
'''$$import math''' | '''$$import math''' | ||
| Line 154: | Line 159: | ||
'''$$y_coord <nowiki>=</nowiki> 0.3048* math . tan ( thetaRadians )''' | '''$$y_coord <nowiki>=</nowiki> 0.3048* math . tan ( thetaRadians )''' | ||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Template file syntax | | style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Template file syntax | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Modify the '''vertices '''entry as | | style="border:0.25pt solid #000000;padding:0cm;"| Modify the '''vertices '''entry as | ||
| + | |||
'''( 0.3048 |-y_coord-| -0.005)''' | '''( 0.3048 |-y_coord-| -0.005)''' | ||
| + | |||
'''( 0.3048 |-y_coord-| 0.005)''' | '''( 0.3048 |-y_coord-| 0.005)''' | ||
| Line 188: | Line 192: | ||
| style="border:0.25pt solid #000000;padding:0cm;"| templateFileConst | | style="border:0.25pt solid #000000;padding:0cm;"| templateFileConst | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Create a dummy entry inside it by typing | | style="border:0.25pt solid #000000;padding:0cm;"| Create a dummy entry inside it by typing | ||
| + | |||
'''dummy 1.0;''' | '''dummy 1.0;''' | ||
| + | |||
A dummy entry is mandatory. | A dummy entry is mandatory. | ||
| + | |||
An external '''dict '''has to be provided with any '''constant '''that is to be used in the '''template '''file. | An external '''dict '''has to be provided with any '''constant '''that is to be used in the '''template '''file. | ||
| Line 201: | Line 208: | ||
|- | |- | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Running PyFoam command | | style="border:0.25pt solid #000000;padding:0cm;"| Show slide : Running PyFoam command | ||
| − | | style="border:0.25pt solid #000000;padding:0cm;"| We have to run the '''template''' | + | | style="border:0.25pt solid #000000;padding:0cm;"| We have to run the '''template command''' now. |
| + | |||
'''pyFoamFromTemplate.py --template-file<nowiki>=</nowiki>./blockMeshDict.template''' | '''pyFoamFromTemplate.py --template-file<nowiki>=</nowiki>./blockMeshDict.template''' | ||
| Line 215: | Line 223: | ||
|- | |- | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Point to '''blockMeshDict '''and a python file | | style="border:0.25pt solid #000000;padding:0cm;"| Point to '''blockMeshDict '''and a python file | ||
| − | | style="border:0.25pt solid #000000;padding:0cm;"| We can see that | + | | style="border:0.25pt solid #000000;padding:0cm;"| We can see that |
| − | + | ||
| − | + | * 2 new files are generated | |
| + | * the '''blockMeshDict''' | ||
| + | * and a '''Python '''file is also generated. | ||
|- | |- | ||
| − | | style="border:0.25pt solid #000000;padding:0cm;"| Point to the '''Python''' | + | | style="border:0.25pt solid #000000;padding:0cm;"| Point to the '''Python''' file. |
| − | + | ||
| − | file. | + | |
| style="border:0.25pt solid #000000;padding:0cm;"| Do not edit the '''Python '''file. | | style="border:0.25pt solid #000000;padding:0cm;"| Do not edit the '''Python '''file. | ||
| Line 230: | Line 237: | ||
'''gedit blockMeshDict''' | '''gedit blockMeshDict''' | ||
| − | | style="border:0.25pt solid #000000;padding:0cm;"| | + | | style="border:0.25pt solid #000000;padding:0cm;"| Open the '''blockMeshDict '''file by typing - |
| − | '''gedit blockMeshDict '''and press '''Enter.''' | + | |- |
| + | | style="border:0.25pt solid #000000;padding:0cm;"| | ||
| + | | style="border:0.25pt solid #000000;padding:0cm;"| '''gedit blockMeshDict '''and press '''Enter.''' | ||
|- | |- | ||
| Line 260: | Line 269: | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Let us summarize. | | style="border:0.25pt solid #000000;padding:0cm;"| Let us summarize. | ||
| − | In this tutorial, we learnt about '''PyFoam Template''' | + | In this tutorial, we learnt about '''PyFoam Template Files''' |
We also learnt to- | We also learnt to- | ||
| − | # | + | # Create and use '''template files''' |
# and using the '''PyFoamFromTemplate.py '''command | # and using the '''PyFoamFromTemplate.py '''command | ||
|- | |- | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Show Slide | | style="border:0.25pt solid #000000;padding:0cm;"| Show Slide | ||
| + | |||
Forum to answer questions | Forum to answer questions | ||
| Line 275: | Line 285: | ||
|- | |- | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Show Slide | | style="border:0.25pt solid #000000;padding:0cm;"| Show Slide | ||
| + | |||
Forum to answer questions | Forum to answer questions | ||
| Line 286: | Line 297: | ||
| style="border:0.25pt solid #000000;padding:0cm;"| Show Slide Acknowledgement | | style="border:0.25pt solid #000000;padding:0cm;"| Show Slide Acknowledgement | ||
| style="border:0.25pt solid #000000;padding:0cm;"| The Spoken Tutorial Project is funded by NMEICT, MHRD, Govt. of India | | style="border:0.25pt solid #000000;padding:0cm;"| The Spoken Tutorial Project is funded by NMEICT, MHRD, Govt. of India | ||
| + | |||
For more details , visit this website. | For more details , visit this website. | ||
Latest revision as of 10:38, 2 March 2017
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 | |
| 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:
|
| Show Slide : System requirement | To record this tutorial I am using
|
| Show slide : Prerequisite | To practice this tutorial the user should have :
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
|
| Show slide : Syntax of Template files | A template file should be an OpenFOAM file, with the following -
|
| Show slide : Using a template file | The following steps should be followed to use a template file :
|
| 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
cp -r Wedge15Ma5 /home/fossee/OpenFOAM/ |
Now copy the Wedge15Ma5 case directory into OpenFOAM directory
by typing cp -r Wedge15Ma5 Type the path of your OpenFOAM directory and press Enter. |
| Cd OpenFOAM/Wedge5 M15 | On the terminal, type the path for Wedge15Ma5 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
cp -r blockMeshDict blockMeshDict.template |
| gedit blockMeshDict.templat e | Open the blockMeshDict.template file using gedit. |
| Show slide : Template file syntax | Add the following lines above convertToMeters. |
| Edit blockMeshDict.template | Any line preceded with $$ is a Python line, and will be interpreted and executed by Python
$$import math $$thetaDegrees = 10.0 $$thetaRadians = math . radians ( thetaDegrees ) $$y_coord = 0.3048* math . tan ( thetaRadians ) |
| Show slide : Template file syntax | Modify the vertices entry as
|
| Python variables assigned in the template file, should be substituted at any location 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
|
| Press Ctrl+S and close | Save and close the file. |
| Show slide : Running PyFoam command | We have to run the template command now.
--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 |
| Point to blockMeshDict and a python file | We can see that
|
| Point to the Python file. | Do not edit the Python file. |
| On the terminal type
gedit blockMeshDict |
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
|
| 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 Files We also learnt to-
|
| Show Slide
|
Please post your timed queries in this forum. |
| Show Slide
|
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
|
| Thank You | This is Rahul Joshi from IIT Bombay signing off. Thanks for watching |