<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ascend4.org/index.php?action=history&amp;feed=atom&amp;title=Checking_models</id>
	<title>Checking models - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ascend4.org/index.php?action=history&amp;feed=atom&amp;title=Checking_models"/>
	<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Checking_models&amp;action=history"/>
	<updated>2026-05-03T16:54:51Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://ascend4.org/index.php?title=Checking_models&amp;diff=117&amp;oldid=prev</id>
		<title>UploadBot: Restored page from Google Cache, uploaded by John Pye</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Checking_models&amp;diff=117&amp;oldid=prev"/>
		<updated>2010-05-13T13:53:14Z</updated>

		<summary type="html">&lt;p&gt;Restored page from Google Cache, uploaded by John Pye&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div&amp;gt;&amp;#039;&amp;#039;This article is incomplete or needs expanding. Please help out by adding your comments.&amp;#039;&amp;#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ASCEND includes a number of features for &amp;#039;&amp;#039;&amp;#039;checking&amp;#039;&amp;#039;&amp;#039; that a model is correctly written. Currently the following checks are performed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Instance check ==&lt;br /&gt;
&lt;br /&gt;
Firstly, the model&amp;#039;s instance tree is checked for integrity. Instances are checked for being of the correct type, un-executed statements are searched for, correct parent-child relationships are verified and [[Cliques]] are checked for containing items of identical type. The function &amp;lt;tt&amp;gt;RecursiveCheckInstance&amp;lt;/tt&amp;gt; in {{src|ascend/compiler/check.c}} does the hard work for this one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Degrees of freedom check ==&lt;br /&gt;
&lt;br /&gt;
The degrees of freedom check tests to see if a model is underspecified (too many unknown variables, not enough equations) or overspecified (too many equations, not enough free variables), or structurally singular. The code in the file {{src|ascend/solver/slvDOF.c}}, together with the functions &amp;lt;tt&amp;gt;mtx_output_assign&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;mtx_symbolic_rank&amp;lt;/tt&amp;gt; from {{src|ascend/linear/mtx_perms.c}} do this work.&lt;br /&gt;
&lt;br /&gt;
A structurally singular system is one which has the variables and equations arranged in such a way that it is impossible to develop a strategy for solving them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Category:Incomplete]]&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>UploadBot</name></author>
	</entry>
</feed>