Difference between revisions of "ASCEND/C2/Iterative-calculations-and-Plotting-Graphs/English"
Nancyvarkey (Talk | contribs) |
Nancyvarkey (Talk | contribs) |
||
Line 16: | Line 16: | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| In this tutorial, | | style="border:0.75pt solid #000001;padding:0.0104in;"| In this tutorial, | ||
− | We will learn | + | We will learn |
− | * | + | * how to use '''FOR''' loop in '''ASCEND''' |
− | * | + | * how to use '''Arrays''' in our '''MODEL''' |
− | * | + | * and how to plot Graphs using '''ASCEND''' |
Line 30: | Line 30: | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Here I am using | | style="border:0.75pt solid #000001;padding:0.0104in;"| Here I am using | ||
− | '''Ubuntu Linux OS | + | '''Ubuntu Linux OS version 12.04''' |
− | '''ASCEND | + | '''ASCEND version 0.9.8''' |
|- | |- | ||
Line 43: | Line 43: | ||
To know more about '''ASCEND,''' please visit '''ascend4.org''' | To know more about '''ASCEND,''' please visit '''ascend4.org''' | ||
− | |||
− | |||
|- | |- | ||
Line 50: | Line 48: | ||
Problem Statement | Problem Statement | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| This is the problem statement for this tutorial. |
− | Suppose we want to study the variation in '''mass''' of a '''thin walled cylindrical vessel''' with respect to its ''' | + | Suppose we want to study the variation in '''mass''' of a '''thin walled cylindrical vessel''' with respect to its '''Height to Diameter ratio''' |
− | + | i.e. '''H''' to '''D''' ratio. | |
− | The | + | The equation describing our system is the mass of the metal: |
− | '''metal mass = | + | '''metal mass = density of the metal into volume of the wall''' |
|- | |- | ||
Line 69: | Line 67: | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| We have two '''models''' in our file. | | style="border:0.75pt solid #000001;padding:0.0104in;"| We have two '''models''' in our file. | ||
− | The first | + | The first '''model''' defines parameters hat will be passed into second model. |
− | To know more on writing reusable '''models''' refer to | + | To know more on writing reusable '''models''' refer to other lectures in this series. |
|- | |- | ||
Line 83: | Line 81: | ||
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Zoom in on the second MODEL vesselplot. | | style="border:0.75pt solid #000001;padding:0.0104in;"| Zoom in on the second MODEL vesselplot. | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| Now we write our second '''MODEL''' ''' | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| Now we write our second '''MODEL vesselplot'''. This '''model''' uses the previously defined '''parameters'''. |
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight the declaration of n_entries | | style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight the declaration of n_entries | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| We define the total number of '''data points''' that we want, by defining '''variable | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| We define the total number of '''data points''' that we want, by defining '''variable n_entries''' |
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight the declaration of H_to_D_ratio and metal_mass | | style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight the declaration of H_to_D_ratio and metal_mass | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| Therafter, we declare two '''arrays H_to_D_ratio''' and '''metal_mass''' | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| Therafter, we declare two '''arrays H_to_D_ratio''' and '''metal_mass'''. |
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight the FOR loop | | style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight the FOR loop | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| Now,we start a '''FOR''' loop, using which we pass the '''parameters''' of previous model in a new''' array v'''. | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| Now,we start a '''FOR''' loop, using which we pass the '''parameters''' of previous '''model''' in a new''' array v'''. |
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight the FOR loop in METHOD values | | style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight the FOR loop in METHOD values | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| Note that,we assign values to the previously defined '''array H_to_D_ratio '''under '''METHOD | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| Note that,we assign values to the previously defined '''array H_to_D_ratio '''under '''METHOD values'''. |
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Open up ASCEND interface.Load the program and run it. | | style="border:0.75pt solid #000001;padding:0.0104in;"| Open up ASCEND interface.Load the program and run it. | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| Before moving any further, let | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| Before moving any further, let us load the ASCEND interface and then run our program. |
+ | |||
+ | |- | ||
+ | | style="border:0.75pt solid #000001;padding:0.0104in;"| On the ASCEND interface. | ||
+ | | style="border:0.75pt solid #000001;padding:0.0104in;"| Let me open our file which is of the name '''vesselplot'''. | ||
+ | |||
+ | Let me load the '''model.''' | ||
+ | |||
+ | |- | ||
+ | | style="border:0.75pt solid #000001;padding:0.0104in;"| On the ASCEND interface. | ||
+ | | style="border:0.75pt solid #000001;padding:0.0104in;"| Let me run the '''values METHOD''' and solve it. | ||
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Point to the type 'array' displayed on interface | | style="border:0.75pt solid #000001;padding:0.0104in;"| Point to the type 'array' displayed on interface | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| As you can see, '''ASCEND''' clearly indicates that '''H_to_D_ratio | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| As you can see, '''ASCEND''' clearly indicates that '''H_to_D_ratio''' and '''metal_mass ''' are of the type '''arrays'''. |
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Click on 'H_to_D_ratio' arrow | | style="border:0.75pt solid #000001;padding:0.0104in;"| Click on 'H_to_D_ratio' arrow | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| To see different values stored in the '''array''', we just click on the drop down menu. | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| To see the different values stored in the '''array''', we just click on the drop down menu. |
+ | |||
+ | This shows all the values stored in the array '''H to D ratio'''. | ||
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Click on 'v' arrow | | style="border:0.75pt solid #000001;padding:0.0104in;"| Click on 'v' arrow | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| Also, to see the values of the parameters passed to '''array v''', we click on the arrow next to it. | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| Also, to see the values of the various parameters passed to '''array v''', we click on the arrow next to it. |
+ | |||
+ | Then we can click on the arrow next to any of these numbers to see the required values. | ||
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Source code in Text editor | | style="border:0.75pt solid #000001;padding:0.0104in;"| Source code in Text editor | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| Now, let's | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| Now, let's see how to plot graphs using '''ASCEND'''. |
+ | |||
+ | |||
+ | |||
+ | Let me minimize this window and open the source code. | ||
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight REQUIRE "plot.a4l” | | style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight REQUIRE "plot.a4l” | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| Firstly, we need to include | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| Firstly, we need to include a new library in our '''MODEL''''. |
+ | |||
+ | The name of the library is '''plot.a4l''' | ||
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight massVSratio IS_A plt_plot_symbol | | style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight massVSratio IS_A plt_plot_symbol | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| To plot a graph in '''ASCEND''', we need to declare a '''variable''' of the type''' plt_plot_symbol'''. | | style="border:0.75pt solid #000001;padding:0.0104in;"| To plot a graph in '''ASCEND''', we need to declare a '''variable''' of the type''' plt_plot_symbol'''. | ||
+ | |||
+ | Here we define '''mass v/s ratio''' as a variable of this type. | ||
|- | |- | ||
| style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight (CurveSet, Curves) | | style="border:0.75pt solid #000001;padding:0.0104in;"| Highlight (CurveSet, Curves) | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| This declaration requires two '''parameters''' namely '''Curveset''' and '''Curves'''. | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| This declaration requires two '''parameters''' namely, '''Curveset''' and '''Curves'''. |
|- | |- | ||
Line 148: | Line 168: | ||
# a set of '''integers''' and | # a set of '''integers''' and | ||
− | # two lists of data giving the '''y-values''' and the '''x-values''' for the curve. | + | # two lists of data giving the '''y-values''' and |
+ | *the '''x-values''' for the curve. | ||
− | In our case, this set of '''integers''' is from | + | In our case, this set of '''integers''' is from 1 to 20. |
− | And the ''' | + | And the two '''arrays''' – '''metal_mass '''& '''H_to_D_ratio''' gives the '''y''' and '''x values''' respectiveley. |
|- | |- | ||
Line 169: | Line 190: | ||
| style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Let us now see how to get the required plot. | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Let us now see how to get the required plot. | ||
− | + | Let us go back to the '''ASCEND''' interface. | |
− | + | ||
|- | |- | ||
| style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Right-click on massVSratio and choose the plot option | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Right-click on massVSratio and choose the plot option | ||
− | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| | + | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Let us go to the variable '''mass vs ratio'''. Right-click on it and select the '''plot''' option. |
|- | |- | ||
| style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Maximise the plot window | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Maximise the plot window | ||
− | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| This gives us the required plot, with the title and the labels that we mentioned in the code. | + | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| This gives us the required plot, with the title and the labels that we had mentioned in the code. |
|- | |- | ||
Line 186: | Line 206: | ||
|- | |- | ||
| style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Remove the massVSratio.tittle line from the source code and save it. | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Remove the massVSratio.tittle line from the source code and save it. | ||
− | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| We remove the '''title | + | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| We remove the line that defines the '''title '''for our plot. |
|- | |- | ||
| style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Open up ASCEND interface.Load the program and run it. | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Open up ASCEND interface.Load the program and run it. | ||
− | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| | + | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Let me save the file and reload it in the '''ASCEND''' interface. |
+ | |||
+ | Let me again solve it and plot the graph again. | ||
|- | |- | ||
Line 204: | Line 226: | ||
|- | |- | ||
| style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Click to bring up the bullets | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| Click to bring up the bullets | ||
− | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| In this tutorial, we have learnt | + | | style="border-top:none;border-bottom:0.75pt solid #000001;border-left:0.75pt solid #000001;border-right:0.75pt solid #000001;padding:0.0104in;"| In this tutorial, we have learnt |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | * How to use '''FOR''' loop in '''ASCEND''' | ||
+ | * How to use '''Arrays''' in our '''MODEL''' | ||
+ | * How to Plot Graphs in '''ASCEND''' | ||
|- | |- | ||
Line 217: | Line 236: | ||
Assignment | Assignment | ||
− | | style="border:0.75pt solid #000001;padding:0.0104in;"| As an assignment, change the size of array to 40 and re-attempt this problem. | + | | style="border:0.75pt solid #000001;padding:0.0104in;"| As an assignment, change the size of array to 40 and re-attempt this problem covered in this tutorial. |
|- | |- |
Revision as of 15:52, 18 August 2014
Tutorial 6: Iteration & Graph Plotting
|
|
Slide number 1
Title slide |
Welcome to the tutorial on Iteration & Graph Plotting in ASCEND |
Show Slide 2 | In this tutorial,
We will learn
|
Slide number 3
System Requirement |
Here I am using
Ubuntu Linux OS version 12.04 ASCEND version 0.9.8 |
Slide number 4
Pre-requisites |
To follow this tutorial, user must have basic knowledge of Linux and ASCEND.
|
Slide number 5
Problem Statement |
This is the problem statement for this tutorial.
i.e. H to D ratio. The equation describing our system is the mass of the metal: metal mass = density of the metal into volume of the wall |
Source Code in Text Editor | Let's look at the source code for this problem. |
Zoom in on the MODEL vessel and paremeters part of the code. | We have two models in our file.
The first model defines parameters hat will be passed into second model.
|
Zoom out and show the entire MODEL vessel | After defining the parameters, we define the required variables and equations.
|
Zoom in on the second MODEL vesselplot. | Now we write our second MODEL vesselplot. This model uses the previously defined parameters. |
Highlight the declaration of n_entries | We define the total number of data points that we want, by defining variable n_entries |
Highlight the declaration of H_to_D_ratio and metal_mass | Therafter, we declare two arrays H_to_D_ratio and metal_mass. |
Highlight the FOR loop | Now,we start a FOR loop, using which we pass the parameters of previous model in a new array v. |
Highlight the FOR loop in METHOD values | Note that,we assign values to the previously defined array H_to_D_ratio under METHOD values. |
Open up ASCEND interface.Load the program and run it. | Before moving any further, let us load the ASCEND interface and then run our program. |
On the ASCEND interface. | Let me open our file which is of the name vesselplot.
Let me load the model. |
On the ASCEND interface. | Let me run the values METHOD and solve it. |
Point to the type 'array' displayed on interface | As you can see, ASCEND clearly indicates that H_to_D_ratio and metal_mass are of the type arrays. |
Click on 'H_to_D_ratio' arrow | To see the different values stored in the array, we just click on the drop down menu.
This shows all the values stored in the array H to D ratio. |
Click on 'v' arrow | Also, to see the values of the various parameters passed to array v, we click on the arrow next to it.
Then we can click on the arrow next to any of these numbers to see the required values. |
Source code in Text editor | Now, let's see how to plot graphs using ASCEND.
Let me minimize this window and open the source code. |
Highlight REQUIRE "plot.a4l” | Firstly, we need to include a new library in our MODEL'.
The name of the library is plot.a4l |
Highlight massVSratio IS_A plt_plot_symbol | To plot a graph in ASCEND, we need to declare a variable of the type plt_plot_symbol.
Here we define mass v/s ratio as a variable of this type. |
Highlight (CurveSet, Curves) | This declaration requires two parameters namely, Curveset and Curves. |
Highlight the following lines:
CurveSet IS_A set OF symbol_constant; CurveSet :== ['test']; |
Curveset allows us to tag and identify each of the curves we plot. |
Highlight the following lines:
Curves['test'] IS_A plt_curve([1..n_entries], metal_mass,H_to_D_ratio) |
The second parameter Curves requires 3 parameters-
In our case, this set of integers is from 1 to 20.
|
Highlight the following lines:
massVSratio.title :='Metal mass of the walls vs H to D ratio for a thin-walled cylindrical vessel'; massVSratio.XLabel := 'H to D ratio'; massVSratio.YLabel := 'metal mass IN kg/m^3 |
We give title and label for our plot under the METHODS section. |
Open up ASCEND interface.Load the program and run it. | Let us now see how to get the required plot.
Let us go back to the ASCEND interface. |
Right-click on massVSratio and choose the plot option | Let us go to the variable mass vs ratio. Right-click on it and select the plot option. |
Maximise the plot window | This gives us the required plot, with the title and the labels that we had mentioned in the code. |
Source code in Text editor | Let us now see what happens if we don't mention the plot title. |
Remove the massVSratio.tittle line from the source code and save it. | We remove the line that defines the title for our plot. |
Open up ASCEND interface.Load the program and run it. | Let me save the file and reload it in the ASCEND interface.
Let me again solve it and plot the graph again. |
Maximise the plot window | We can clearly see that ASCEND titles the plot as 'undefined'. |
Slide number 6
Summary |
This brings us to the end of this tutorial. Let’s summarize. |
Click to bring up the bullets | In this tutorial, we have learnt
|
Slide Number 7
Assignment |
As an assignment, change the size of array to 40 and re-attempt this problem covered in this tutorial. |
Slide Number 8
About slide |
Watch the video available at
http://spoken-tutorial.org/What_is_a_Spoken_Tutorial It summarises the Spoken Tutorial project If you do not have good bandwidth, you can download and watch it |
Slide number 9
About slide |
The Spoken Tutorial Project Team:
Conducts workshops using spoken tutorials Gives certificates to those who pass an online test For more details, please write to contact@spoken-tutorial.org
|
Slide number 10
Acknowledgment |
Spoken Tutorial Project is a part of the Talk to a Teacher project
It is supported by the National Mission on Education through ICT, MHRD, Government of India More information on this Mission is available at[1]http://spoken-tutorial.org/NMEICT-Intro
|
Slide number 11
Thank you slide |
This is Tarun Gangwar from IIT Bombay signing off. Thank you for joining. |