Difference between revisions of "OpenFOAM-version-7/C3/Simulating-1D-Conduction-through-a-Bar/English"
(2 intermediate revisions by the same user not shown) | |||
Line 18: | Line 18: | ||
|| '''Slide''': | || '''Slide''': | ||
− | '''Learning | + | '''Learning Objectives''' |
|| In this tutorial, we will learn to: | || In this tutorial, we will learn to: | ||
* Set up a case of '''heat transfer''' in '''OpenFOAM''' | * Set up a case of '''heat transfer''' in '''OpenFOAM''' | ||
− | * Simulate a '''conduction heat transfer case '''using a''' laplacianFoam''' solver | + | * Simulate a '''conduction heat transfer case ''' using a''' laplacianFoam''' solver |
|- | |- | ||
|| Slide: '''System Specifications''' | || Slide: '''System Specifications''' | ||
|| To record this tutorial, I am using, | || To record this tutorial, I am using, | ||
− | * '''Ubuntu Linux''' | + | * '''Ubuntu Linux''' Operating System version 22.04 |
* '''OpenFOAM''' version 9 | * '''OpenFOAM''' version 9 | ||
* '''ParaView''' version 5.6.0, and | * '''ParaView''' version 5.6.0, and | ||
Line 47: | Line 47: | ||
|- | |- | ||
− | || Slide: '''Code Files''' | + | || Slide: |
+ | |||
+ | '''Code Files''' | ||
|| | || | ||
− | * The files used in this tutorial are provided in the '''Code | + | * The files used in this tutorial are provided in the '''Code Files''' link on this tutorial page |
* Please download and extract them | * Please download and extract them | ||
* Make a copy and then use them while practising | * Make a copy and then use them while practising | ||
Line 58: | Line 60: | ||
'''Geometry''' | '''Geometry''' | ||
|| We will be solving a '''1D Conduction Problem'''. | || We will be solving a '''1D Conduction Problem'''. | ||
− | * The bar is | + | * The bar is 1 metre long. |
|- | |- | ||
Line 64: | Line 66: | ||
|| | || | ||
* The '''left face''' is maintained at a higher temperature compared to the '''right face'''. | * The '''left face''' is maintained at a higher temperature compared to the '''right face'''. | ||
+ | |||
* The '''top''' and '''bottom faces''' of the bar are '''adiabatic'''. | * The '''top''' and '''bottom faces''' of the bar are '''adiabatic'''. | ||
− | * According to '''Fourier’s Law''', we expect the flow of | + | |
+ | * According to the '''Fourier’s Law''', we expect the flow of heat from left to right. | ||
+ | |||
* We will simulate this case using the '''laplacianFoam solver'''. | * We will simulate this case using the '''laplacianFoam solver'''. | ||
|- | |- | ||
|| Only Narration | || Only Narration | ||
− | || Let’s look at the structure of '''laplacianFoam ''' and how its equations are modeled. | + | || Let’s look at the structure of '''laplacianFoam''' and how its equations are modeled. |
|- | |- | ||
− | || Slide: '''laplacianFoam''' | + | || Slide: |
+ | |||
+ | '''laplacianFoam''' | ||
|| | || | ||
− | * '''laplacianFoam '''is a basic '''OpenFOAM '''solver | + | * '''laplacianFoam ''' is a basic '''OpenFOAM '''solver |
− | * '''laplacianFoam''' solves simple Laplace equations | + | * '''laplacianFoam''' solves simple '''Laplace''' equations |
* An example of such an equation is thermal diffusion in a solid | * An example of such an equation is thermal diffusion in a solid | ||
Line 88: | Line 95: | ||
where, | where, | ||
− | * '''alpha''' is the''' thermal diffusivity''' | + | * '''alpha''' is the ''' thermal diffusivity''' |
− | * '''T '''is temperature | + | * '''T ''' is temperature |
|- | |- | ||
Line 96: | Line 103: | ||
|- | |- | ||
|| CTRL + ALT + T | || CTRL + ALT + T | ||
− | || Open the '''terminal''' by pressing '''Ctrl''', '''Alt''' | + | || Open the '''terminal''' by pressing '''Ctrl''', '''Alt''' and '''T''' keys. |
|- | |- | ||
|| [Terminal] Type: | || [Terminal] Type: | ||
Line 106: | Line 113: | ||
'''cd basic/laplacianFoam''' | '''cd basic/laplacianFoam''' | ||
− | || Type this '''command''' and press '''Enter''' to move into the''' directory '''of '''laplacianFoam'''. | + | || Type this '''command''' and press '''Enter''' to move into the ''' directory '''of '''laplacianFoam'''. |
|- | |- | ||
|| [Terminal] Type: '''ls''' | || [Terminal] Type: '''ls''' | ||
− | || Type '''ls '''to view the files present in the '''laplacianFoam '''directory. | + | || Type '''ls ''' to view the files present in the '''laplacianFoam ''' directory. |
|- | |- | ||
|| [Terminal] Type: | || [Terminal] Type: | ||
'''gedit laplacianFoam.C''' | '''gedit laplacianFoam.C''' | ||
− | || Type the following command to open the '''source code '''for '''laplacianFoam'''. | + | || Type the following command to open the '''source code ''' for '''laplacianFoam'''. |
|- | |- | ||
|| [gedit '''laplacianFoam.C'''] Highlight: | || [gedit '''laplacianFoam.C'''] Highlight: | ||
Line no. 62 to 67 | Line no. 62 to 67 | ||
− | || This is the code for solving the '''laplace '''equation in every timestep. | + | || This is the code for solving the '''laplace ''' equation in every timestep. |
|- | |- | ||
|| [gedit '''laplacianFoam.C'''] Highlight: | || [gedit '''laplacianFoam.C'''] Highlight: | ||
Line 131: | Line 138: | ||
|| The second term represents the '''laplacian''' of temperature field '''T'''. | || The second term represents the '''laplacian''' of temperature field '''T'''. | ||
− | '''DT '''stands for thermal diffusivity. | + | '''DT ''' stands for thermal diffusivity. |
|- | |- | ||
Line 153: | Line 160: | ||
|- | |- | ||
|| [Terminal]: '''Ctrl + L''' | || [Terminal]: '''Ctrl + L''' | ||
− | || Press '''Ctrl''' | + | || Press '''Ctrl''' plus '''L''' keys together to clear the screen. |
|- | |- | ||
||Only Narration | ||Only Narration | ||
||Please remember to press '''Enter''' key after typing each '''command''' in the '''terminal'''. | ||Please remember to press '''Enter''' key after typing each '''command''' in the '''terminal'''. | ||
+ | |||
|- | |- | ||
|| [Terminal] Type: '''cp -r ~/Downloads/conductionBar .''' | || [Terminal] Type: '''cp -r ~/Downloads/conductionBar .''' | ||
|| Copy the case folder that you had downloaded and extracted, into the '''run directory'''. | || Copy the case folder that you had downloaded and extracted, into the '''run directory'''. | ||
|- | |- | ||
+ | |||
|| [Terminal] Highlight: | || [Terminal] Highlight: | ||
Line 174: | Line 183: | ||
'''cd conductionBar''' | '''cd conductionBar''' | ||
− | || Let’s move into the case folder using the '''cd | + | || Let’s move into the case folder using the '''cd command'''. |
|- | |- | ||
|| Slide: '''Boundaries''' | || Slide: '''Boundaries''' | ||
|| The '''computational domain''' has '''4 boundaries''', namely '''top''', '''bottom''', '''left''', and '''right'''. | || The '''computational domain''' has '''4 boundaries''', namely '''top''', '''bottom''', '''left''', and '''right'''. | ||
− | All | + | All 4 boundaries are fixed. |
|- | |- | ||
Line 188: | Line 197: | ||
− | Type the following command to open '''blockMeshDict '''in a text editor. | + | Type the following command to open '''blockMeshDict ''' in a text editor. |
|- | |- | ||
Line 194: | Line 203: | ||
'''Point to vertices''' | '''Point to vertices''' | ||
− | || These are | + | || These are '''vertices''' used to make a rectangular '''domain'''. |
|- | |- | ||
|| [gedit blockMeshDict] | || [gedit blockMeshDict] | ||
Line 206: | Line 215: | ||
'''Point to boundary''' | '''Point to boundary''' | ||
− | || The | + | || The two boundaries '''left''' and '''right''' are defined as '''type wall'''. |
− | + | The boundaries '''topAndBottom''' and '''frontAndBack''' are kept empty as we are doing a '''1D simulation'''. | |
− | The | + | |
|- | |- | ||
|| [gedit blockMeshDict] | || [gedit blockMeshDict] | ||
Line 216: | Line 224: | ||
|| Close the blockMeshDict file. | || Close the blockMeshDict file. | ||
|- | |- | ||
− | || Slide: | + | || Slide: |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | '''Boundary Conditions''' | |
+ | || The '''boundary conditions ''' used in the '''simulation''' are as shown in the table. | ||
− | * The '''front''' and''' back '''faces are of type empty, as we are running a '''1D''' simulation. | + | * The '''left face''' is maintained at 373 '''Kelvin''', |
+ | * The '''right face''' is maintained at 273 '''Kelvin''', and | ||
+ | * The '''top''' and '''bottom faces''' and ''front''' and''' back ''' faces are of type empty, as we are running a '''1D''' simulation. | ||
Line 242: | Line 248: | ||
'''T''' | '''T''' | ||
− | || | + | || You will see a '''temperature file'''. |
|- | |- | ||
|| [Terminal] Type: '''gedit 0/T''' | || [Terminal] Type: '''gedit 0/T''' | ||
Line 250: | Line 256: | ||
'''internalField uniform 273 ''' | '''internalField uniform 273 ''' | ||
− | || The '''domain''' is '''initialized''' with a temperature of '''273 | + | || The '''domain''' is '''initialized''' with a temperature of '''273 Kelvin'''. |
|- | |- | ||
|| [gedit - '''T'''] Highlight: | || [gedit - '''T'''] Highlight: | ||
'''bottom '''boundary condition | '''bottom '''boundary condition | ||
− | || The '''left face''' is maintained at a '''constant temperature''' of '''373 | + | || The '''left face''' is maintained at a '''constant temperature''' of '''373 Kelvin'''. |
|- | |- | ||
|| [gedit - '''T'''] Highlight: | || [gedit - '''T'''] Highlight: | ||
'''top '''boundary condition | '''top '''boundary condition | ||
− | || The '''right face''' is maintained at a '''temperature''' of '''273 | + | || The '''right face''' is maintained at a '''temperature''' of '''273 Kelvin'''. |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
|| [gedit - '''T'''] Highlight: | || [gedit - '''T'''] Highlight: | ||
'''“faces” “frontAndBack”''' | '''“faces” “frontAndBack”''' | ||
− | || Since we are simulating a '''1D '''problem, '''frontAndBack ''' | + | || Since we are simulating a '''1D ''' problem, '''topAndBottom''' and '''frontAndBack ''' are set to empty. |
|- | |- | ||
|| [gedit - '''T'''] Close the window | || [gedit - '''T'''] Close the window | ||
Line 278: | Line 280: | ||
'''ls constant''' | '''ls constant''' | ||
− | || Let’s now see the | + | || Let’s now see the content of the '''constant''' folder using the '''ls command'''. |
|- | |- | ||
|| [Terminal] Highlight: | || [Terminal] Highlight: | ||
'''transportProperties''' | '''transportProperties''' | ||
− | || We can see the '''transportProperties '''file in the '''constant''' folder. | + | || We can see the '''transportProperties ''' file in the '''constant''' folder. |
|- | |- | ||
|| [Terminal] Type: '''gedit constant/transportProperties''' | || [Terminal] Type: '''gedit constant/transportProperties''' | ||
− | || Let’s open the '''transportProperties '''file. | + | || Let’s open the '''transportProperties ''' file. |
|- | |- | ||
|| [gedit - '''transportProperties'''] Highlight: | || [gedit - '''transportProperties'''] Highlight: | ||
Line 306: | Line 308: | ||
|- | |- | ||
|| [Terminal] Type: '''blockMesh''' | || [Terminal] Type: '''blockMesh''' | ||
− | || First, let’s '''mesh''' the geometry using the '''blockMesh | + | || First, let’s '''mesh''' the geometry using the '''blockMesh command'''. |
|- | |- | ||
|| [Terminal] Type: '''laplacianFoam''' | || [Terminal] Type: '''laplacianFoam''' | ||
|| Let’s start the '''simulation''' using the following '''command'''. | || Let’s start the '''simulation''' using the following '''command'''. | ||
− | |||
|- | |- | ||
Line 328: | Line 329: | ||
Click on '''vtkBlockColors''' >> Click on '''T ''' | Click on '''vtkBlockColors''' >> Click on '''T ''' | ||
− | |||
|| Let’s view the '''temperature contours''' for the simulation. | || Let’s view the '''temperature contours''' for the simulation. | ||
− | Click on the '''vtkBlockColors''' | + | Click on the '''vtkBlockColors''' drop down in the '''Active Variable Controls''' and select '''T'''. |
− | Ensure that you click on the '''T''' option with a '''point icon''' and not the '''box icon''', in the | + | Ensure that you click on the '''T''' option with a '''point icon''' and not the '''box icon''', in the drop down. |
|- | |- | ||
|| [ParaView] '''VCR Controls''' | || [ParaView] '''VCR Controls''' | ||
− | |||
Click on '''Last Frame ''' | Click on '''Last Frame ''' | ||
− | |||
− | |||
|| Let’s view the '''contours''' at the end of the simulation. | || Let’s view the '''contours''' at the end of the simulation. | ||
− | |||
Click on the '''Last Frame''' button in the '''VCR Controls'''. | Click on the '''Last Frame''' button in the '''VCR Controls'''. | ||
Line 368: | Line 364: | ||
− | ||Now, let us plot the temperature | + | ||Now, let us plot the temperature along the length of the rod. |
− | Click on the''' plot over line''' icon located on top of the screen as shown. | + | Click on the ''' plot over line''' icon located on top of the screen as shown. |
|- | |- | ||
|| [ParaView] | || [ParaView] | ||
Line 383: | Line 379: | ||
'''Properties''' '''Tab =>''' Click on '''Apply ''' | '''Properties''' '''Tab =>''' Click on '''Apply ''' | ||
− | ||Click on the x-axis and then click on the | + | ||Click on the x-axis and then click on the '''Apply button'''. |
Line 411: | Line 407: | ||
* Increase the '''length''' of the '''bar''' in the '''x-direction''' to '''2 metres''' | * Increase the '''length''' of the '''bar''' in the '''x-direction''' to '''2 metres''' | ||
− | * Change the '''DT '''value to | + | * Change the '''DT ''' value to 0.005 |
* Keep all the other parameters unaltered in your '''simulation''' | * Keep all the other parameters unaltered in your '''simulation''' | ||
Line 449: | Line 445: | ||
'''FOSSEE Forum''' | '''FOSSEE Forum''' | ||
|| | || | ||
− | * Do you have any general | + | * Do you have any general or technical questions? |
* Please visit the forum given in the link. | * Please visit the forum given in the link. | ||
Latest revision as of 17:50, 27 September 2024
Title of the script: Simulating 1-D Conduction through a Bar
Author: Mano Prithvi Raj
Keywords: OpenFOAM, ParaView, CFD, computational fluid dynamics, blockMesh, heat transfer, conduction, laplacianFoam, transport properties, FOSSEE, spoken tutorial, video tutorial
Visual Cue | Narration |
Slide:
Opening Slide |
Welcome to the spoken tutorial on Simulating 1D Conduction through a Bar. |
Slide:
Learning Objectives |
In this tutorial, we will learn to:
|
Slide: System Specifications | To record this tutorial, I am using,
However, you may use any other editor of your choice. |
Slide:
Prerequisites
|
As a prerequisite:
|
Slide:
Code Files |
|
Slide:
Geometry |
We will be solving a 1D Conduction Problem.
|
Slide: Geometry |
|
Only Narration | Let’s look at the structure of laplacianFoam and how its equations are modeled. |
Slide:
laplacianFoam |
|
Slide:
laplacianFoam Highlight: Laplacian Equation |
This is the equation implemented in laplacianFoam:
where,
|
Point to the equation. | Let’s see how this equation is implemented in OpenFOAM |
CTRL + ALT + T | Open the terminal by pressing Ctrl, Alt and T keys. |
[Terminal] Type:
cd $FOAM_SOLVERS |
Type the following command and press Enter to move into the solvers directory. |
[Terminal] Type:
cd basic/laplacianFoam |
Type this command and press Enter to move into the directory of laplacianFoam. |
[Terminal] Type: ls | Type ls to view the files present in the laplacianFoam directory. |
[Terminal] Type:
gedit laplacianFoam.C |
Type the following command to open the source code for laplacianFoam. |
[gedit laplacianFoam.C] Highlight:
Line no. 62 to 67 |
This is the code for solving the laplace equation in every timestep. |
[gedit laplacianFoam.C] Highlight:
fvm::ddt(T) |
The first term represents the time derivative for temperature field T. |
[gedit laplacianFoam.C] Highlight:
fvm::laplacian(DT,T) |
The second term represents the laplacian of temperature field T.
DT stands for thermal diffusivity. |
[gedit laplacianFoam.C] Highlight:
fvModels.source(T) |
The last term is on the right hand side of the equation.
It is used to add source terms to the equation. |
Click on Close to close the gedit file. | Let’s move on to the simulation.
You can now close gedit. |
[Terminal] Type:
cd $FOAM_RUN |
Type the following command and press Enter to move into the run directory. |
[Terminal]: Ctrl + L | Press Ctrl plus L keys together to clear the screen. |
Only Narration | Please remember to press Enter key after typing each command in the terminal. |
[Terminal] Type: cp -r ~/Downloads/conductionBar . | Copy the case folder that you had downloaded and extracted, into the run directory. |
[Terminal] Highlight:
|
In my system, the case folder named conductionBar is located in the Downloads folder.
The location of the case folder may be different for you. Please use the appropriate command while copying the folder. |
[Terminal] Type:
cd conductionBar |
Let’s move into the case folder using the cd command. |
Slide: Boundaries | The computational domain has 4 boundaries, namely top, bottom, left, and right.
All 4 boundaries are fixed. |
[Terminal Type]:
gedit system/blockMeshDict |
The details of the mesh can be found in the blockMeshDict file in the system folder.
|
[gedit blockMeshDict]
Point to vertices |
These are vertices used to make a rectangular domain. |
[gedit blockMeshDict]
Point to blocks |
We have a single block with 20 cells only in the x-direction. |
[gedit blockMeshDict]
Point to boundary |
The two boundaries left and right are defined as type wall.
The boundaries topAndBottom and frontAndBack are kept empty as we are doing a 1D simulation. |
[gedit blockMeshDict]
Click on Close to close the gedit file |
Close the blockMeshDict file. |
Slide:
Boundary Conditions |
The boundary conditions used in the simulation are as shown in the table.
|
Only Narration | Let’s see how the boundary conditions are defined in OpenFOAM. |
[Terminal] Type:
ls 0 |
The boundary conditions are defined in 0 folder.
Let’s view its contents. |
[Terminal] Highlight:
T |
You will see a temperature file. |
[Terminal] Type: gedit 0/T | Let’s open the temperature file, T. |
[gedit - T] Highlight:
internalField uniform 273 |
The domain is initialized with a temperature of 273 Kelvin. |
[gedit - T] Highlight:
bottom boundary condition |
The left face is maintained at a constant temperature of 373 Kelvin. |
[gedit - T] Highlight:
top boundary condition |
The right face is maintained at a temperature of 273 Kelvin. |
[gedit - T] Highlight:
“faces” “frontAndBack” |
Since we are simulating a 1D problem, topAndBottom and frontAndBack are set to empty. |
[gedit - T] Close the window | Close the T file. |
[Terminal] Type:
ls constant |
Let’s now see the content of the constant folder using the ls command. |
[Terminal] Highlight:
transportProperties |
We can see the transportProperties file in the constant folder. |
[Terminal] Type: gedit constant/transportProperties | Let’s open the transportProperties file. |
[gedit - transportProperties] Highlight:
“DT” |
In the transportProperties file, we can see a property, DT.
DT stands for thermal diffusivity. |
[gedit - transportProperties] Close the window | Close the file. |
[terminal]: type clear | Clear the screen with the clear command. |
Only narration | Let’s simulate the problem in OpenFOAM. |
[Terminal] Type: blockMesh | First, let’s mesh the geometry using the blockMesh command. |
[Terminal] Type: laplacianFoam | Let’s start the simulation using the following command. |
[Terminal] Highlight: End | The simulation is now complete. |
[Terminal] Type: paraFoam | Let’s view the simulated results in ParaView. |
[ParaView] Properties Tab
Click on Apply |
Click on the Apply button to view the geometry. |
[ParaView] Active Variable Controls
|
Let’s view the temperature contours for the simulation.
|
[ParaView] VCR Controls
Click on Last Frame |
Let’s view the contours at the end of the simulation.
Click on the Last Frame button in the VCR Controls. |
[ParaView] Layout Window
|
We can see the dissipation of heat from the hot end of the bar to the cold end.
|
[ParaView]
Data Analysis => Click on plot over line filter
|
Now, let us plot the temperature along the length of the rod.
|
[ParaView]
|
Click on the x-axis and then click on the Apply button.
|
Only Narration | With this we have come to the end of the tutorial.
|
Slide:
Summary |
In this tutorial, we have learnt to:
|
Slide:
Assignment |
As an assignment:
|
Slide:
Assignment [next slide of assignment] |
|
Slide:
About the Spoken Tutorial Project |
The video at the following link summarizes the Spoken Tutorial project.
Please download and watch it. |
Slide:
Spoken Tutorial Workshops |
We conduct workshops using Spoken Tutorials and give certificates.
Please contact us. |
Slide:
Spoken Tutorial Forum |
Please post your timed queries in this forum. |
Slide:
FOSSEE Forum |
|
Slide:
FOSSEE Case Study Project |
|
Slide: Acknowledgements | The Spoken Tutorial project was established by the Ministry of Education, Govt. of India. |
Only Narration | This tutorial is contributed by Mano Prithvi Raj, Aabhushan Regmi and Payel Mukherjee from IIT Bombay. Thank you for joining. |