<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ascend4.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fatihaktepe</id>
	<title>ASCEND - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://ascend4.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fatihaktepe"/>
	<link rel="alternate" type="text/html" href="https://ascend4.org/Special:Contributions/Fatihaktepe"/>
	<updated>2026-04-30T04:47:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://ascend4.org/index.php?title=PyGTK_Screenshots&amp;diff=2297</id>
		<title>PyGTK Screenshots</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=PyGTK_Screenshots&amp;diff=2297"/>
		<updated>2011-05-16T00:02:43Z</updated>

		<summary type="html">&lt;p&gt;Fatihaktepe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;If you haven&#039;t already seen it, our [[ASCEND overview]] is a good first place to start reading about ASCEND, and includes quite a few introductory screenshots.&#039;&#039;&lt;br /&gt;
{{missingimages}}&lt;br /&gt;
&lt;br /&gt;
There are two user interfaces for ASCEND. The older, more mature user interface (and the only one offered in the &#039;stable&#039; 2000 release) is the [[TcltkScreenshots|Tcl/Tk GUI]], for which [[TcltkScreenshots|screenshots]] are not shown here. This page shows the newer Python/PyGTK GUI that has been under development more recently by [[User:Jpye|John Pye]] For instructions on getting it running, see the [[PythonWrapper]] page.&lt;br /&gt;
&lt;br /&gt;
== Browser ==&lt;br /&gt;
&lt;br /&gt;
This is the main instance browser in the PyGTK ASCEND GUI. Fixed &amp;lt;tt&amp;gt;solver_var&amp;lt;/tt&amp;gt;s are shown in green, free ones are shown in blue, all other instances/variables are shown in black. Values of all of these can be edited directly in-place. Errors and messages are shown in the lower pane, methods can be run from the combobox at the top.&lt;br /&gt;
&lt;br /&gt;
[[Image:ascend-browser.png|300px|thumb|none|The ASCEND model &#039;browser&#039;, the main view of the PyGTK GUI.]]&lt;br /&gt;
&lt;br /&gt;
The ASCEND GUI is different from the [[TcltkScreenshots|Tcl/Tk GUI]] in that it concentrates the user interface into a single window as far as possible, to make ASCEND more &#039;approachable&#039; for new users. Solver selection and parameter control is the via menus. The &#039;Library&#039; concept is mostly bypassed, as models loaded from the shell (for example by typing &amp;lt;tt&amp;gt;ascend mymodel.a4c&amp;lt;/tt&amp;gt;) are immediately opened, and, if they contain a &#039;self-titled&#039; &amp;lt;tt&amp;gt;MODEL&amp;lt;/tt&amp;gt; declaration (eg &amp;lt;tt&amp;gt;MODEL mymodel REFINES mybasetype&amp;lt;/tt&amp;gt;), then that model is instantiated and its &amp;lt;tt&amp;gt;on_load&amp;lt;/tt&amp;gt; method is run. The &#039;Modules&#039; allows types to be selected from any of the loaded modules, but often now it is not needed. It is also automatically emptied when the user requests to instantiate load a new module; there is no way of having multiple models at a time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: the above is running on Linux (Ubuntu 9.10).&lt;br /&gt;
&lt;br /&gt;
== Plotting with PyGTK GUI ==&lt;br /&gt;
&lt;br /&gt;
To plot from the PyGTK GUI, you must set up your model according to Chapter 4 of the [[Media:Book.pdf|User&#039;s Manual (1 MB .pdf)]]. Then, you can right-click on an instance of &amp;lt;tt&amp;gt;plt_plot_integer&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;plt_plot_symbol&amp;lt;/tt&amp;gt; and click &#039;Plot&#039; and your plot should appear in a new window. &lt;br /&gt;
&lt;br /&gt;
[[Image:plot-right-click.png|300px|thumb|none|Right-click on a plt_plot_integer or plt_plot_symbol sub-model in order to create simple plots with ASCEND.]]&lt;br /&gt;
&lt;br /&gt;
Plotting under PyGTK is done with the [http://matplotlib.sourceforge.net/ matplotlib] library, which gives the additional benefit of allowing plots to be easily exported in a variety of formats including SVG and EPS, PNG and JPEG, etc.&lt;br /&gt;
&lt;br /&gt;
You can also produce thiese plots programmatically using the [[PythonWrapper]] as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=py&amp;gt;&lt;br /&gt;
instance.getPlot().show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most of the functionality that extracts the plot data from the ASCEND instance hierarchy in provided through the SWIG interface, allowing other scripting languages to access the raw plot data.&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot of a the &#039;plotbvp&#039; demo from the ASCEND standard models:&lt;br /&gt;
&lt;br /&gt;
[[Image:ascend-pygtk-plot.png|300px|thumb|none|Plot of the solution from {{src|models/plotbvp.a4c}}.]]&lt;br /&gt;
&lt;br /&gt;
== Editing solver parameters ==&lt;br /&gt;
&lt;br /&gt;
Recently we&#039;ve added support for editing solver parameters through the PyGTK GUI. Any parameter that you&#039;ve changed shows in yellow until you click &#039;apply&#039;. Note that your parameters aren&#039;t saved: if you reload your model they will be reset to their default values. Unfortunately.&lt;br /&gt;
&lt;br /&gt;
[[Image:solver-params-2.png|330px|thumb|none|Solver Parameters dialog in the ASCEND PyGTK GUI.]]&lt;br /&gt;
&lt;br /&gt;
== Viewing an incidence matrix ==&lt;br /&gt;
&lt;br /&gt;
This is a simple overall view of the sparsity matrix for a system, either before or after you&#039;ve solved it. It permits zooming and exporting of the image to various output formats, which should be useful in some case. Mouse-ing over the matrix will show you the variable and relation you&#039;re looking at, via the text in the bottom-right of the window (see also the &#039;Diagnose&#039; feature below). Fixed variables are shown in green, solved free variables are shown in black. We haven&#039;t checked out how this stuff works for conditional modelling cases just yet.&lt;br /&gt;
&lt;br /&gt;
[[Image:sparsity-4bar-mouse.png|300px|thumb|none|A smaller incidence matrix showing mouse-over variable info in bottom right]]&lt;br /&gt;
&lt;br /&gt;
== Observers ==&lt;br /&gt;
&lt;br /&gt;
Here is a screenshot of the [[Observers|observer]] functionality, which is roughly equivalent to the &#039;PROBE&#039; in the [[TcltkScreenshots|Tcl/Tk GUI]]. In the &#039;simulation&#039; window you can set which solver variables you want to observe (right click, select &#039;Observe&#039;) and they will appear in your Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[Image:ascend-observer2.png]]&lt;br /&gt;
&lt;br /&gt;
Each time you have solved a scenario that you want to keep, press ctrl-K to &#039;&#039;&#039;keep&#039;&#039;&#039; the current observed values in the observer data window. &lt;br /&gt;
&lt;br /&gt;
Note that the bold row in the table is &#039;live&#039;; its values will &#039;&#039;follow&#039;&#039; your current simulation, and it is &#039;&#039;&#039;is editable&#039;&#039;&#039;. Edit any bold entry in the table, and so long as it corresponds to a FIXED variable, the results will show up immediately in the other columns (assuming you have set &#039;Auto&#039; on).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you have run all the scenarios you want, hit &#039;ctrl-C&#039; and you can copy your scenario data to another application. You can see here that the results paste into OpenOffice spreadsheets in an immediately useful form:&lt;br /&gt;
&lt;br /&gt;
[[Image:ascend-paste.png]]&lt;br /&gt;
&lt;br /&gt;
The Observer tab is also used, in slighly adapted form, as the method in which integration results (time series) are viewed.&lt;br /&gt;
&lt;br /&gt;
You can also plot from the [[Observers|observer tab]]. Just click the &#039;plot&#039; button and the second column will be plotted against the first column.&lt;br /&gt;
&lt;br /&gt;
[[Image:Observer-plots.png]]&lt;br /&gt;
&lt;br /&gt;
== Manipulating variable properties ==&lt;br /&gt;
&lt;br /&gt;
You can set upper and lower bounds and scaling values for variables via the Properties command. Effort has been made to ensure it can be very easily navigated using the keyboard: F4 opens the variable properties windows, Tab between fields, Enter to confirm, Escape to cancel. If you omit to enter any units, the &#039;preferred&#039; units will be assumed. If you enter a value in incompatible units, the edit box will show red and you will have to correct it or else click &#039;cancel&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Image:variable-properties.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Viewing Relations and residuals ==&lt;br /&gt;
&lt;br /&gt;
The same &#039;F4&#039; shortcut can be used to review the definitions of relation instances:&lt;br /&gt;
&lt;br /&gt;
[[Image:relation-properties.png]]&lt;br /&gt;
&lt;br /&gt;
== &#039;Block Diagnose&#039; feature ==&lt;br /&gt;
&lt;br /&gt;
This is a new idea for examining the non-converging block or blocks in your model. After you have attempted to solve your model, this screen can be used to look at the structure of the block which is causing trouble, and directly examine the equations and variables that are involved. Below is a preview of this feature:&lt;br /&gt;
&lt;br /&gt;
[[Image:block-diagnose-4.png]]&lt;br /&gt;
&lt;br /&gt;
In the above, it is intended that &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* values at or near their bounds should be red&lt;br /&gt;
* large-valued variables should be coloured in bright pink,&lt;br /&gt;
* largish values in orange&lt;br /&gt;
* values near nominal in green&lt;br /&gt;
* smallish values in pale blue&lt;br /&gt;
* very small values in bright blue&lt;br /&gt;
&lt;br /&gt;
Probably we&#039;ll find that different colouring schemes are suitable for different occasions. For example, finding equations with large residuals would use colouring by residual magnitude. Perhaps colouring by magnitude of elements in the jacobian would be useful as well. Would appreciate comments on this.&lt;br /&gt;
&lt;br /&gt;
We plan to add a &#039;&#039;&#039;graph&#039;&#039;&#039; view to this window as well, which would show the actual connection between variables and relations, so that the evaluation &#039;loops&#039; would be more clearly identifiable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Solver status popup ==&lt;br /&gt;
&lt;br /&gt;
You can follow the solver&#039;s progress using the &#039;Solver Status&#039; popup, It reports the number of variables that have been solved, the size of the current block, the current RMS residuals, elapsed time, total iterations and iterations in the current block.&lt;br /&gt;
&lt;br /&gt;
[[Image:solverstatus.png]]&lt;br /&gt;
&lt;br /&gt;
The popup can also be used to interrupt the solver. It can be set to close automatically once the solver has completed (via the Tools menu). We plan to add similar functionality to the &#039;Diagnose&#039; window so that step-by-step solving can be performed from there as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running under Windows ==&lt;br /&gt;
&lt;br /&gt;
The PyGTK GUI for ASCEND runs under Windows as well. This version was compiled using MinGW and run using Python 2.5 for Windows plus the Windows port of GTK+, and a couple of other python-related libraries.&lt;br /&gt;
&lt;br /&gt;
[[Image:windows-ascend.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Editing with TextPad on Windows ==&lt;br /&gt;
&lt;br /&gt;
[http://www.textpad.com/ TextPad] is a popular text editor for Windows. You can use our {{src|tools/textpad/ascend.syn}} file to give you syntax-highlighting of code when using that editor.&lt;br /&gt;
&lt;br /&gt;
[[Image:textpad-ascend.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Integrator (dynamic simulation) ==&lt;br /&gt;
&lt;br /&gt;
Here is the new Integrator window in the PyGTK GUI. It supports the [[LSODE]], [[IDA]] and [[DOPRI5]] integrators, although the latter two are still being developed. Support for setting the solution tolerance needs to be added, as well as possibly alternative methods for specifying the integration timesteps. Timesteps aren&#039;t currently &#039;units aware&#039;, either.&lt;br /&gt;
&lt;br /&gt;
[[Image:integrator-gui.png]]&lt;br /&gt;
&lt;br /&gt;
Here is the progress dialog:&lt;br /&gt;
&lt;br /&gt;
[[Image:integrator-progress.png]]&lt;br /&gt;
&lt;br /&gt;
== Launching ASCEND from Gedit ==&lt;br /&gt;
&lt;br /&gt;
We provide syntax highlighting to for the &#039;&#039;gedit&#039;&#039; edit on GNOME (Ubuntu, Fedora, etc). Note also the [[PyGTK GUI command-line parameters]], which can be of use when integrating with gedit. In current versions of Fedora and Ubuntu, the {{srcdir|tools/gtksourceview-2.0/}} of our gedit syntax highlighting must be used. Otherwise, use the {{srcdir|tools/gedit/}}.&lt;br /&gt;
&lt;br /&gt;
[[Image:ascend-from-gedit.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Plotting from external Python methods ==&lt;br /&gt;
&lt;br /&gt;
The [[ExtPy]] module allows general scripts to be run from inside ASCEND &amp;lt;tt&amp;gt;METHODS&amp;lt;/tt&amp;gt;. Using the [[PythonWrapper]] you can then do anything you like with the ASCEND engine, such as running a model with a range of parameters and plotting the output, as with this simple four-bar linkage example (See [http://ascendserver.cheme.cmu.edu/svn/ascend/code/trunk/models/johnpye/fourbar.a4c fourbar.a4c] and [http://ascendserver.cheme.cmu.edu/svn/ascend/code/trunk/models/johnpye/fourbarplot.py fourbarplot.py]).&lt;br /&gt;
&lt;br /&gt;
[[Image:Fourbar.png|thumb|400px|none|A four-bar linkage. The angle of the left member was swept through a range of values and the position of the mechanism plotted for each.]]&lt;br /&gt;
&lt;br /&gt;
Another example is using a [[ExtPy]] script to perform a plot of the roots of a dynamic system&lt;br /&gt;
&lt;br /&gt;
[[Image:Rootsplot.png|thumb|400px|none|Roots of a system of differential-algebraic equations]]&lt;br /&gt;
&lt;br /&gt;
== IPython console ==&lt;br /&gt;
&lt;br /&gt;
See [[Python console support]] for details.&lt;br /&gt;
&lt;br /&gt;
[[Image:Ipython-embed.png|thumb|400px|none|A short IPython console session within the PyGTK GUI]]&lt;br /&gt;
&lt;br /&gt;
== Units of measurement ==&lt;br /&gt;
&lt;br /&gt;
You can set the preferred [[Units of measurement]] for a variable using a popup window:&lt;br /&gt;
[http://www.gizemhavaifisek.com havai fişek]&lt;br /&gt;
[http://www.gizemhavaifisek.com balon]&lt;br /&gt;
[http://www.gizemhavaifisek.com konfeti]&lt;br /&gt;
[http://www.antalyaprefabrik.gen.tr antalya prefabrik]&lt;br /&gt;
[http://www.prefabrikantalya.org prefabrik antalya]&lt;br /&gt;
[[Image:Preferred-units.png|thumb|400px|none|Setting preferred units for &#039;viscosity&#039;]]&lt;br /&gt;
&lt;br /&gt;
== Incidence graph ==&lt;br /&gt;
&lt;br /&gt;
One you have &#039;built&#039; a system, you can use ASCEND to view an incidence graph that shows the sequence of calculation in a convenient form. This functionality is not currently available on Windows, only Linux at the moment. See [[Incidence Graph]] for more information.&lt;br /&gt;
&lt;br /&gt;
[[Image:Incidence-graph-reynolds.png|thumb|300px|none|An incidence matrix for calculation of mass flow rate at specified Reynolds number]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Fatihaktepe</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Support&amp;diff=2296</id>
		<title>Support</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Support&amp;diff=2296"/>
		<updated>2011-05-16T00:01:56Z</updated>

		<summary type="html">&lt;p&gt;Fatihaktepe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;padding-top:8px;padding-bottom:12px&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;border:solid 2pt gray;background-color:#ccccff;margin-top:5px;margin-bottom:5px;padding:8px&amp;quot;&amp;gt;For support with ASCEND, please send a message to the &#039;&#039;&#039;[https://lists.sourceforge.net/lists/listinfo/ascend-sim-users ASCEND Users mailing list]&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access [http://dir.gmane.org/gmane.comp.mathematics.ascend.user an archive] of past messages via [http://dir.gmane.org/gmane.comp.mathematics.ascend.user GMANE] or via [http://sourceforge.net/mailarchive/forum.php?forum_name=ascend-sim-users on sourceforge].&lt;br /&gt;
&lt;br /&gt;
You may also contact the [http://sourceforge.net/project/memberlist.php?group_id=167528 ASCEND developers] individually or via Sourceforge. &#039;&#039;&#039;Note: please include your email address if using their online form.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See also the [[Category:Documentation|Documentation]] pages in this Wiki.&lt;br /&gt;
&lt;br /&gt;
If you find a bug in ASCEND, please report it in our [http://ascendbugs.cheme.cmu.edu/ bug tracker].&lt;br /&gt;
&lt;br /&gt;
For people interested in participating in the [[Development_Activities|development]] of ASCEND, there is a closed mailing list which we are &#039;&#039;&#039;happy to add people to&#039;&#039;&#039;. The consensus of the group is that this mailing list should not be publicly searchable at present, however.&lt;br /&gt;
&lt;br /&gt;
Please note our [[ASCEND:Privacy policy]].&lt;br /&gt;
&lt;br /&gt;
[http://www.gizemhavaifisek.com havai fişek]&lt;br /&gt;
[http://www.gizemhavaifisek.com balon]&lt;br /&gt;
[http://www.gizemhavaifisek.com konfeti]&lt;br /&gt;
[http://www.antalyaprefabrik.gen.tr antalya prefabrik]&lt;br /&gt;
[http://www.prefabrikantalya.org prefabrik antalya]&lt;/div&gt;</summary>
		<author><name>Fatihaktepe</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Category:Documentation&amp;diff=2295</id>
		<title>Category:Documentation</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Category:Documentation&amp;diff=2295"/>
		<updated>2011-05-16T00:01:20Z</updated>

		<summary type="html">&lt;p&gt;Fatihaktepe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you are new to ASCEND, &#039;&#039;&#039;it is recommended that you start with the [[ASCEND overview]]&#039;&#039;&#039;, then try working through the new &#039;&#039;&#039;[[Intro_to_ASCEND_-_thin_walled_tank|tutorial]]&#039;&#039;&#039;, which introduces the ASCEND modelling language. &lt;br /&gt;
&lt;br /&gt;
More detailed documentation is available from the &#039;&#039;&#039;[[Media:Book.pdf|ASCEND Manual (1.3 MB .pdf)]]&#039;&#039;&#039;, but note that it largely refers to the older Tcl/Tk-based GUI, and the recommended GUI is the newer PyGTK-based GUI.&lt;br /&gt;
&lt;br /&gt;
If you need help getting ASCEND running on your machine, please check the &#039;&#039;&#039;[[Quick Start]] guide&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[Category:Development|Developer documentation]]&#039;&#039;&#039; exists under a separate top-level category heading.&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
* [http://ascend.cheme.cmu.edu/pdfhelp.htm Older versions] of the documentation&lt;br /&gt;
* [http://ascend.cheme.cmu.edu/ascend_bibliography.htm ASCEND bibliography]&lt;br /&gt;
* [[History of ASCEND]]&lt;br /&gt;
[http://www.gizemhavaifisek.com havai fişek]&lt;br /&gt;
[http://www.gizemhavaifisek.com balon]&lt;br /&gt;
[http://www.gizemhavaifisek.com konfeti]&lt;br /&gt;
[http://www.antalyaprefabrik.gen.tr antalya prefabrik]&lt;br /&gt;
[http://www.prefabrikantalya.org prefabrik antalya]&lt;/div&gt;</summary>
		<author><name>Fatihaktepe</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=ASCEND_overview&amp;diff=2294</id>
		<title>ASCEND overview</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=ASCEND_overview&amp;diff=2294"/>
		<updated>2011-05-16T00:00:02Z</updated>

		<summary type="html">&lt;p&gt;Fatihaktepe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
ASCEND is a system for &#039;&#039;&#039;solving systems of equations&#039;&#039;&#039;, aimed at engineers and scientists. It allows you to &#039;&#039;&#039;build up complex models&#039;&#039;&#039; as as systems constructed from simpler &#039;&#039;&#039;sub-models&#039;&#039;&#039;. Using ASCEND it is simple to &#039;&#039;&#039;play around&#039;&#039;&#039; with your model, examine its behaviour, and work out how it can best be solved. You can &#039;&#039;&#039;easily change which variables are fixed&#039;&#039;&#039; and which are to be solved, and you can examine the way in which the model is being solved.&lt;br /&gt;
&lt;br /&gt;
After looking through this brief introduction to what ASCEND is all about, you might want to look at the [[ASCEND history]], a more detailed list of [[ASCEND capabilities]], see some [[worked examples]], find out about [[ASCEND_Users_and_Friends|the developers]] or look at more detailed [[:Category:Documentation|documentation]].&lt;br /&gt;
&lt;br /&gt;
== Example of a simple model in ASCEND ==&lt;br /&gt;
&lt;br /&gt;
In ASCEND, models are written in a special-purpose modelling language that combines declarative &#039;&#039;variables&#039;&#039; and &#039;&#039;equations&#039;&#039; with procedural &#039;&#039;methods&#039;&#039;. The following simple method calculates the mass of water in a tank:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
MODEL tank;&lt;br /&gt;
	V IS_A volume;&lt;br /&gt;
	A IS_A area;&lt;br /&gt;
&lt;br /&gt;
	h IS_A distance;&lt;br /&gt;
	d IS_A distance;&lt;br /&gt;
	area_eqn: A = 1{PI} * d^2 / 4.;&lt;br /&gt;
&lt;br /&gt;
	vol_eqn: V = A * h;&lt;br /&gt;
	rho IS_A mass_density;&lt;br /&gt;
&lt;br /&gt;
	m IS_A mass;&lt;br /&gt;
	mass_eqn: m = rho*V;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
METHOD on_load;&lt;br /&gt;
	FIX d, h, rho;&lt;br /&gt;
&lt;br /&gt;
	d := 50 {cm};&lt;br /&gt;
	h := 90 {cm};&lt;br /&gt;
&lt;br /&gt;
	rho := 1000 {kg/m^3};&lt;br /&gt;
END on_load;&lt;br /&gt;
END tank;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This model declares variables and equations in the &#039;main&#039; part of the model. Then, in a method called &#039;on_load&#039;, the model specifies that the variables &amp;lt;tt&amp;gt;d&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;h&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;rho&amp;lt;/tt&amp;gt; will be &#039;fixed&#039;, and provides their values.&lt;br /&gt;
&lt;br /&gt;
This model can be loaded into ASCEND, usually just by double-clicking the file, then solved by hitting the &#039;solve&#039; button, with the following result:&lt;br /&gt;
&lt;br /&gt;
[[Image:simple-tank-example.png|thumb|400px|none|The simple &amp;lt;tt&amp;gt;tank&amp;lt;/tt&amp;gt; model, loaded and solved in ASCEND.]]&lt;br /&gt;
&lt;br /&gt;
This is a very simple model: there is much more that ASCEND can do. For example, &#039;&#039;&#039;without editing the above model file&#039;&#039;&#039;, one can use the GUI to &#039;fix&#039; the volume and diameter of the tank and solve instead for the height, with just a couple of clicks, then resolve for a new tank volume of 200 L:&lt;br /&gt;
&lt;br /&gt;
[[Image:simple-tank2.png|thumb|400px|none|You can easily &#039;free&#039; and &#039;fix&#039; variables to solve the same model for a different set of unknowns.]]&lt;br /&gt;
&lt;br /&gt;
For models like this, ASCEND can quickly show you how it&#039;s solving the equation, using a simple graph representation:&lt;br /&gt;
&lt;br /&gt;
[[Image:solve-order.png|thumb|400px|none|For small models, ASCEND can generate a graphical representation of the solution process, useful when debugging.]]&lt;br /&gt;
&lt;br /&gt;
Simple models like this can be useful and quite efficient ways to inspect the behaviour of simple systems of equations. They can also be useful as quick &#039;calculators&#039;: they can be loaded, the known variables typed in, and the solved results quickly seen.&lt;br /&gt;
&lt;br /&gt;
ASCEND provides a way to keep tables of &#039;observed&#039; values and plot relationships between variables:&lt;br /&gt;
&lt;br /&gt;
[[Image:observer.png|thumb|700px|none|The &#039;observer&#039; tab allows results for a set of scenarios to be calculated and stored, and then plotted.]]&lt;br /&gt;
&lt;br /&gt;
Note that ASCEND is dealing with [[units of measurement]] clearly and transparently. In ASCEND you never have to worry about &#039;getting the units right&#039; because it understands how to convert between different units like in, ft, cm, m, km for length and L, m³ etc for volume.&lt;br /&gt;
&lt;br /&gt;
To learn more about the ASCEND modelling language and how it can be used to build up models, see the [[Thin Walled Tank]] tutorial.&lt;br /&gt;
&lt;br /&gt;
== More complex models ==&lt;br /&gt;
&lt;br /&gt;
Simple models like this are useful, but serious problems, especially in process engineering and mechanical engineering often involve more complex interactions, often with multiple subsystems, interconnected parts, and so on. In this case, ASCEND provides a number of [[object-oriented modelling]] capabilities, allowing more complicated models to be declared, such as this simple steam power station (Rankine cycle) simulation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;REQUIRE &amp;quot;johnpye/rankine.a4c&amp;quot;;&lt;br /&gt;
MODEL power_station;&lt;br /&gt;
&lt;br /&gt;
	(* sub-models *)&lt;br /&gt;
	BO IS_A boiler_simple;&lt;br /&gt;
	TU IS_A turbine_simple;&lt;br /&gt;
&lt;br /&gt;
	CO IS_A condenser_simple;&lt;br /&gt;
	PU IS_A pump_simple;&lt;br /&gt;
&lt;br /&gt;
	(* variable &#039;alias&#039; for convenience *)&lt;br /&gt;
&lt;br /&gt;
	mdot ALIASES TU.mdot;&lt;br /&gt;
&lt;br /&gt;
	(* connections *)&lt;br /&gt;
	BO.outlet, TU.inlet ARE_THE_SAME;&lt;br /&gt;
&lt;br /&gt;
	TU.outlet, CO.inlet ARE_THE_SAME;&lt;br /&gt;
	CO.outlet, PU.inlet ARE_THE_SAME;&lt;br /&gt;
&lt;br /&gt;
	PU.outlet, BO.inlet ARE_THE_SAME;&lt;br /&gt;
&lt;br /&gt;
	(* overall cycle efficiency *)&lt;br /&gt;
	eta IS_A fraction;&lt;br /&gt;
&lt;br /&gt;
	eta * (BO.Qdot_fuel - PU.Wdot) = TU.Wdot;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
METHOD specify;&lt;br /&gt;
	RUN ClearAll;&lt;br /&gt;
	FIX PU.outlet.p, BO.outlet.T, PU.inlet.p, PU.inlet.h, TU.eta, PU.eta, BO.eta, mdot;&lt;br /&gt;
&lt;br /&gt;
END specify;&lt;br /&gt;
METHOD values;&lt;br /&gt;
	mdot := 900 {t/d};&lt;br /&gt;
&lt;br /&gt;
	PU.outlet.p := 2000 {psi};&lt;br /&gt;
	BO.outlet.T := 1460 {R};   BO.outlet.h := 3400 {kJ/kg};&lt;br /&gt;
&lt;br /&gt;
	PU.inlet.p := 1 {psi};     PU.inlet.h := 69.73 {btu/lbm};&lt;br /&gt;
&lt;br /&gt;
	TU.eta := 1.0;             PU.eta := 1.0;             BO.eta := 1.0;&lt;br /&gt;
&lt;br /&gt;
END values;&lt;br /&gt;
METHOD on_load;&lt;br /&gt;
	RUN specify;&lt;br /&gt;
	RUN values;&lt;br /&gt;
&lt;br /&gt;
END on_load;&lt;br /&gt;
END power_station;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This model makes use of several sub-parts such as &#039;pump_simple&#039; and so on, which are defined in another file called &#039;rankine.a4c&#039; pointed to via the [[REQUIRE]] statement (see {{src|models/johnpye/rankine.a4c}} for the full code). More documentation [[Category:Syntax|about the syntax]] is available.&lt;br /&gt;
&lt;br /&gt;
Using this style of modular model, it is possible to build and test simple component models, then &#039;wire them up&#039; into more complex models. This is something that is very difficult to do with standard spreadsheet models as commonly used by engineers. With a library of standard component models at your disposal, you can get working sooner on the complex problems which you have before you.&lt;br /&gt;
&lt;br /&gt;
See [[Object-oriented modelling]] for a summary of language features that help in writing more complex models. You might also be interested in our thoughts about [[Modelling with Spreadsheets]].&lt;br /&gt;
&lt;br /&gt;
== Solvers and integrators ==&lt;br /&gt;
&lt;br /&gt;
The basic engineering calculation being represented in the above examples is a simple &amp;quot;solve for &#039;x&#039;&amp;quot; type of problem, for which ASCEND uses its [[QRSlv]] solver. For these problems ASCEND orders the equations, then uses [http://en.wikipedia.org/wiki/Newton%27s_method Newton&#039;s method] to iteratively solve any sets of simultaneous equations present in the system. However not all engineering problems are like this. Other types of problems can also be solved using ASCEND:&lt;br /&gt;
&lt;br /&gt;
* [[Optimisation|Optimisation problems]], where an objective value must be minimised by varying a set of input variables (see [[CONOPT]], [[IPOPT]])&lt;br /&gt;
* [[ODE]] and [[DAE]] problems, where the behaviour of a time-varying system is to be studied (see [[LSODE]], [[IDA]])&lt;br /&gt;
* [[Conditional_modelling|Conditional models]], where the applicable equations depend on the value or values of other variables in the model (see [[CMSlv]])&lt;br /&gt;
&lt;br /&gt;
The ASCEND GUI allows you to load a model then select a suitable &#039;solver&#039; or &#039;integrator&#039; according to the type of problem that you have. Several solvers are already included with ASCEND, and the API allows you to write new solvers without having to dig into the innards of ASCEND.&lt;br /&gt;
&lt;br /&gt;
ASCEND can show you the model structure as &#039;viewed&#039; by the solver. For example, using [[QRSlv]], the simple Rankine-cycle model has the following lower-triangular [[incidence matrix]] structure, which indicates that no iterative solving is needed:&lt;br /&gt;
&lt;br /&gt;
[[Image:rankine-incidence.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
See [[Solvers]] and [[Dynamic modelling]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Thermodynamics ==&lt;br /&gt;
&lt;br /&gt;
An area where process engineers often run into difficulty with modelling is in incorporating the thermodynamic properties of fluids in their models. ASCEND provides some simple thermodynamics capabilities, which have proven sufficient for modelling distillation and flash problems in chemical engineering, and also integrates with high-accuracy IAPWS-IF97 steam tables for use in power engineering applications.&lt;br /&gt;
&lt;br /&gt;
See [[Thermodynamics with ASCEND]], [[FPROPS]] and [[Steam properties]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Extending ASCEND ==&lt;br /&gt;
&lt;br /&gt;
ASCEND can be extended in a number of ways, using [[external libraries]]. These are pieces of code that ASCEND loads on request. They can be:&lt;br /&gt;
&lt;br /&gt;
* [[External Methods]], doing procedural stuff to models&lt;br /&gt;
* [[external relations]], adding new equations to the model, such as complex thermodynamic property relationships&lt;br /&gt;
* [[External Solvers]], that solve a model, according to the programmer&#039;s definition of &#039;solve&#039;&amp;amp;nbsp;:-)&lt;br /&gt;
* [[external Integrators]], that integrate a model (ie solve for the dynamic response of a system; solve an inital value problem)&lt;br /&gt;
&lt;br /&gt;
External libraries are normally written in C/C++, but we have implemented support for also writing external methods using Python.&lt;br /&gt;
&lt;br /&gt;
== Scripting and automation ==&lt;br /&gt;
&lt;br /&gt;
ASCEND exposes its user interface at several different levels: C, C++ and Python. Usefully, this means that if you have a more complicated modelling problem than can be solved with the ASCEND GUI, you can write a Python script that loads your model and solves it in various ways: effectively you can &#039;drive&#039; ASCEND however you want, automatically.&lt;br /&gt;
&lt;br /&gt;
See [[Scripting ASCEND using Python]].&lt;br /&gt;
&lt;br /&gt;
== Development of ASCEND ==&lt;br /&gt;
&lt;br /&gt;
ASCEND does enough things to be genuinely useful for engineers, students and scientists, and has an active user group. It was first written around 1978, and has been through several re-writes over that time. Its &#039;compiler&#039; (which converts the input file into a tree structure containing variables, submodels, and equations) as well as its solvers have been the subject of several PhDs and many features in ASCEND have since been incorporated into commercial simulation programs. Development of ASCEND continues in exciting new directions however. We are working on adding new solvers as well as improving ASCEND&#039;s support for solving ODEs and DAEs.&lt;br /&gt;
&lt;br /&gt;
If you are interested in contributing to ASCEND, please see our [[Development Activities]] page and also our list of [[Student Projects]]. We have participated in the 2009 and 2010 Google Summer of Code programmes, and hope to participate in [[GSOC2011]], so you might even be able to get paid!&lt;br /&gt;
[http://www.gizemhavaifisek.com havai fişek]&lt;br /&gt;
[http://www.gizemhavaifisek.com balon]&lt;br /&gt;
[http://www.gizemhavaifisek.com konfeti]&lt;br /&gt;
[http://www.antalyaprefabrik.gen.tr antalya prefabrik]&lt;br /&gt;
[http://www.prefabrikantalya.org prefabrik antalya]&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Fatihaktepe</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Talk:Main_Page&amp;diff=2293</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Talk:Main_Page&amp;diff=2293"/>
		<updated>2011-05-15T23:58:45Z</updated>

		<summary type="html">&lt;p&gt;Fatihaktepe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Although you may add comments here, please also note that the [[Support]] page contains details about other ways of contacting the ASCEND team.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[http://www.gizemhavaifisek.com havai fişek]&lt;br /&gt;
[http://www.gizemhavaifisek.com balon]&lt;br /&gt;
[http://www.gizemhavaifisek.com konfeti]&lt;br /&gt;
[http://www.antalyaprefabrik.gen.tr antalya prefabrik]&lt;br /&gt;
[http://www.prefabrikantalya.org prefabrik antalya]&lt;/div&gt;</summary>
		<author><name>Fatihaktepe</name></author>
	</entry>
</feed>