ASCEND/C2/Writing-basic-model/English
Tutorial 3: Developing a Basic model in ASCEND
|
|
Open Slide number 1
Title slide |
Welcome to the spoken tutorial on Developing a Basic Model in ASCEND |
Open Slide 2
Learning Objectives |
In this tutorial,
We will learn how to
|
Open Slide number 3
System Requirement |
Here I am using
|
Open Slide number 4
Pre-requisites |
To know more about ASCEND
Please visit ascend4.org For relevant tutorials please visit our website |
Open Slide number 5
Example |
Let us begin the tutorial with a simple example.
In this example, let us solve 3 simultaneous equations with 3 unknowns We will use a text editor like gedit to write our model I already have the code for the example in a text file Let me explain the code |
Open mymodel.a4c in gedit | Open the file mymodel.a4c in a text editor |
Highlight the “system.a4l” line | Initially we mention the library (that is a collection of pre-defined models that we need in our model).
Here we require the basic system.a4l library .a4l extension denotes the ascend4 library the name of the library is written in double quotes
|
Highlight the semi colon | Note that semi colon is a statement terminator in ASCEND
ASCEND considers all the statements as one sentence if semi colon is not put after each statement |
Highlight MODEL my_model | MODEL my_model begins a model with name my_model
You can give any name to the model |
Highlight (*variables declaration*) | In ASCEND comments are written in parenthesis enclosed with in a pair of asterik mark
Comments are not executed They make the model easier to understand We will now define variables for our model |
Highlight solver_var
|
Any variable whose value is expected to be computed by ASCEND must be of type solver_var |
Highlight all the defined variables | Thus we define variable x,y,z,d and a as a solver_var
The definition of the type solver_var is predefined in the system.a4l library IS_A is an operator in ASCEND which is used to define variable types |
Highlight all the equation sequentially | Equations to be solved are
x+y+z = a*d x+y+2*z = 5 and 5*x+2*y-3*z = 0 Note that we have not mentioned how to solve this given set of equations. We have also not mentioned which variables are to be specified and which are to be calculated
|
Highlight END my_model | Now end this model with END my_model
|
Show the loaded model on ASCEND interface | Now open this model in ASCEND |
Highlight the successful execution line in the message panel | Note that ASCEND has executed the on_load method by default
This can be seen from the message in the panel below |
Highlight the values of the variables on ASCEND interface | Observe that ASCEND has given the default value of 0.5 to each of the variable |
Click the solve button | Now click on the solve icon
ASCEND displays the results |
Highlight the converged message in the panel below | This can be confirmed in the panel below
A converged message is displayed after the successful completion of the calculation |
Highlight the values of the variables y and d | Note that ASCEND squared the system automatically
Keping the values of two variables y and d as default value and calculated the value for rest of the variables |
Right click on d and assign it a value 1
Fix d by selecting the fixed option Repeat the same for x |
Now suppose we want to make x and d as our fixed variable by assigning values to them and solve for a, y and z
Then, right click on d and select properties from the drop down menu Under values, assign a value to d Here I am giving the value 1 Now in solving section, select fixed Click on Apply and OK Now similarly repeat the same procedure for fixing the value of x |
Highlight the corresponding results | Observe that ASCEND has solve the model and you will have a new set of results
Note that the fixed variables are shown in green color and free variables, calculated by ASCEND are shown in blue color Also note that the final result has been displayed with a tick mark and the fixed variables have been denoted by a closed lock icon We can also specify the fixed and free variables in the code and assigning value to the variables In ASCEND the solution procedure is separate from the problem statement Methods contain procedures to solve the model |
Open my_model in gedit | We will now explain different methods to solve our model
Open the file my_model.a4c in a text editor We write the methods after equations |
Delete END my_model and remove asterik from METHODS and end of the code | Now remove the line END my_model
Delete the parenthesis and asterik mark in front of methods and at the end of the code
|
Highlighte the corrsponding lines in the code sequentially | Under method specify, we fixed variable a and d
We also assign values to the variables as a = 1 and d=3,note that to assign the values to a particular variable, we use a : and = sign together I will refer := to sign as is equal to from here on Under method on_load we run the method specify This is the method that describes ASCEND the action to be taken when a model is loaded |
Click on the save button | Now end the method on_load and my_model and save this file |
Show the ascend interface | Now open this with ASCEND |
Select the on_load method and run the code | Now under methods select on_load
Click on run |
Click on the solve button and highlight the asnwers | Click on solve icon
Observe that ASCEND has fixed the variable a and d and calculated the values for x,y and z |
Open the code file again in gedit | Now open the code for my_model.a4c again |
Carry out the required editing in the code file | Now remove the values assigned under specify
Now we will add a new method called values Type method values and then type a = 1, d= 2 and end values Now under on_load type run values after run specify |
Open the file with ascend | Now save the file and open it with ASCEND |
Run the code using on_laod method and press solve | Again run the method on_load and click on solve
You will see ASCEND has fixed variable a and d and assigned the values as mentioned under values section in the code |
Open the required code file in gedit | Now let’s look at an interesting feature of dimensional consistency in ASCEND with the help of another model
Here we will compute the mass of a cylinder I already have the code for this model Let me explain the code Open cylinder.a4c with a text editor |
Highlight the corresponding line in a sequential order | Note that here we require atoms.a4l library as compared to systems library used earlier in the last model
atoms is a refined version of systems library and contains the definition of various variable types that represent different physical units For example we write v is a volume m is a mass etc. Volume, mass etc. are different variable types defined in atoms.a4l This helps in ensuring that the equations written in ASCEND model are dimensionally consistent After this we write equations and methods as explained earlier Note that while specifying values for these variable types, we need to mention the corresponding physical units in curly brackets Here we write V = 100 cm^3 and p = 100kg/m^3 Note that V is in CGS units while p is in SI units The user doesn't have to worry about the units as ASCEND itself performs the unit conversion |
Open the file in ASCEND and run and solve it using the on_load method | Now open this file in ASCEND
Now once again run the on_load method and solve the problem |
Highlight the answers | Observe that ASCEND has converted the values of volume into SI units and then calculated the mass in SI units
Note that ASCEND by default uses SI units until specified otherwise |
Open Slide number 5:
Summary |
Now let us summarize,in this tutorial,
We have learned how to
|
Open Slide number 6:
Assignment |
Do the following assignment
Edit the model cylinder in a text editor and make it dimensionally inconsistent For example, write m is a distance instead of mass Now run this dimensionally inconsistent model in ASCEND and observe the output Add more variables and equations to the model cylinder.a4c and solve it in ASCEND |
Open Slide number 7
About the Spoken Tutorial Project |
Information on the spoken tutorial project is available on our website
spoken-tutorial.org |
Open Slide number 8
Spoken Tutorial Workshops |
Details on Workshops based on spoken tutorials is also available on the website |
Open Slide number 9
Acknowledgements |
Spoken tutorial project is funded by NMEICT,MHRD
|
Open Slide number 10
Thank You |
This is Priya Bagde from IIT Bombay signing off
Thank You for joining |