<?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=Ujjavalverma10</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=Ujjavalverma10"/>
	<link rel="alternate" type="text/html" href="https://ascend4.org/Special:Contributions/Ujjavalverma10"/>
	<updated>2026-04-29T00:07:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2195</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2195"/>
		<updated>2011-04-19T18:48:28Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: /* Bug Fix for issue 505 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bug Fixes and Reports =&lt;br /&gt;
== Bug Fix for issue 505 ==&lt;br /&gt;
I have submitted a patch that adds support for the following 12 functions :&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Cosec, Sec, Cot &amp;lt;/b&amp;gt;  &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Cosech, Sech, Coth &amp;lt;/b&amp;gt;  &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; ArcCosec, ArcSec, ArcCot &amp;lt;/b&amp;gt;  &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; ArcCosech, ArcSech, ArcCoth &amp;lt;/b&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The patch can be found at the following link : [http://ascendbugs.cheme.cmu.edu/view.php?id=505 Issue 505]&lt;br /&gt;
In addition to this, I have also reported and resolved [http://ascendbugs.cheme.cmu.edu/view.php?id=509 Issue 509] and [http://ascendbugs.cheme.cmu.edu/view.php?id=508 Issue 508]&lt;br /&gt;
&lt;br /&gt;
==Bug Fix for issue 460==&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=460 Issue 460] reports that the &#039;Time to build system&#039; value is sometimes inconsistent. I have verified the reproducibility of this bug and also identified its cause. It is due to &amp;lt;i&amp;gt;incorrect printing format&amp;lt;/i&amp;gt;. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replacing Line 91 in /ascend/system/system.c file by the following line of code solves the problem.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
FPRINTF(stderr,&amp;quot;Time to build system = %.4lf s (outputs zero for very small build time)\n&amp;quot;, ((tm_cpu_time() - comptime)&amp;gt;=0.00001)?(tm_cpu_time()-comptime):0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. Python invokes &amp;lt;i&amp;gt;__setslice__&amp;lt;/i&amp;gt; method when something like &amp;quot; a[1:4] = .. &amp;quot; is used. Thus this task can be accomplished by overriding the &amp;lt;b&amp;gt;__setslice__&amp;lt;/b&amp;gt; method of a list object as follows :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
class myList(list):&lt;br /&gt;
	def __setslice__(self, i, j, sequence):&lt;br /&gt;
		if(isinstance(sequence,list)):&lt;br /&gt;
			list.__setslice__(self, i, j, sequence)&lt;br /&gt;
		else:&lt;br /&gt;
			try:&lt;br /&gt;
				for x in range(i,j):&lt;br /&gt;
					self.__setitem__(x,sequence)&lt;br /&gt;
			except:&lt;br /&gt;
				print &amp;quot;Unexpected error:&amp;quot;, sys.exc_info()[0]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The use of this class is demonstrated as follows :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = myList(&#039;123456789&#039;);&lt;br /&gt;
print a;&lt;br /&gt;
a[1:4] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
output : &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;] &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, 5, 5, 5, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;]&lt;br /&gt;
&lt;br /&gt;
= New Models =&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2194</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2194"/>
		<updated>2011-04-19T18:47:42Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bug Fixes and Reports =&lt;br /&gt;
== Bug Fix for issue 505 ==&lt;br /&gt;
I have submitted a patch that adds support for the following 12 functions :&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt; Cosec, Sec, Cot &amp;lt;/b&amp;gt;  &lt;br /&gt;
&amp;lt;b&amp;gt; Cosech, Sech, Coth &amp;lt;/b&amp;gt;  &lt;br /&gt;
&amp;lt;b&amp;gt; ArcCosec, ArcSec, ArcCot &amp;lt;/b&amp;gt;  &lt;br /&gt;
&amp;lt;b&amp;gt; ArcCosech, ArcSech, ArcCoth &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The patch can be found at the following link : [http://ascendbugs.cheme.cmu.edu/view.php?id=505 Issue 505]&lt;br /&gt;
In addition to this, I have also reported and resolved [http://ascendbugs.cheme.cmu.edu/view.php?id=509 Issue 509] and [http://ascendbugs.cheme.cmu.edu/view.php?id=508 Issue 508]&lt;br /&gt;
&lt;br /&gt;
==Bug Fix for issue 460==&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=460 Issue 460] reports that the &#039;Time to build system&#039; value is sometimes inconsistent. I have verified the reproducibility of this bug and also identified its cause. It is due to &amp;lt;i&amp;gt;incorrect printing format&amp;lt;/i&amp;gt;. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replacing Line 91 in /ascend/system/system.c file by the following line of code solves the problem.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
FPRINTF(stderr,&amp;quot;Time to build system = %.4lf s (outputs zero for very small build time)\n&amp;quot;, ((tm_cpu_time() - comptime)&amp;gt;=0.00001)?(tm_cpu_time()-comptime):0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. Python invokes &amp;lt;i&amp;gt;__setslice__&amp;lt;/i&amp;gt; method when something like &amp;quot; a[1:4] = .. &amp;quot; is used. Thus this task can be accomplished by overriding the &amp;lt;b&amp;gt;__setslice__&amp;lt;/b&amp;gt; method of a list object as follows :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
class myList(list):&lt;br /&gt;
	def __setslice__(self, i, j, sequence):&lt;br /&gt;
		if(isinstance(sequence,list)):&lt;br /&gt;
			list.__setslice__(self, i, j, sequence)&lt;br /&gt;
		else:&lt;br /&gt;
			try:&lt;br /&gt;
				for x in range(i,j):&lt;br /&gt;
					self.__setitem__(x,sequence)&lt;br /&gt;
			except:&lt;br /&gt;
				print &amp;quot;Unexpected error:&amp;quot;, sys.exc_info()[0]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The use of this class is demonstrated as follows :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = myList(&#039;123456789&#039;);&lt;br /&gt;
print a;&lt;br /&gt;
a[1:4] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
output : &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;] &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, 5, 5, 5, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;]&lt;br /&gt;
&lt;br /&gt;
= New Models =&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2193</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2193"/>
		<updated>2011-04-19T18:47:01Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: /* Bug Fix for issue 505 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bug Fixes and Reports =&lt;br /&gt;
== Bug Fix for issue 505 ==&lt;br /&gt;
I have submitted a patch that adds support for the following 12 functions :&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt; Cosec, Sec, Cot &amp;lt;/h3&amp;gt;  &lt;br /&gt;
&amp;lt;h3&amp;gt; Cosech, Sech, Coth &amp;lt;/h3&amp;gt;  &lt;br /&gt;
&amp;lt;h3&amp;gt; ArcCosec, ArcSec, ArcCot &amp;lt;/h3&amp;gt;  &lt;br /&gt;
&amp;lt;h3&amp;gt; ArcCosech, ArcSech, ArcCoth &amp;lt;/h3&amp;gt; &lt;br /&gt;
&lt;br /&gt;
The patch can be found at the following link : [http://ascendbugs.cheme.cmu.edu/view.php?id=505 Issue 505]&lt;br /&gt;
In addition to this, I have also reported and resolved [http://ascendbugs.cheme.cmu.edu/view.php?id=509 Issue 509] and [http://ascendbugs.cheme.cmu.edu/view.php?id=508 Issue 508]&lt;br /&gt;
&lt;br /&gt;
==Bug Fix for issue 460==&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=460 Issue 460] reports that the &#039;Time to build system&#039; value is sometimes inconsistent. I have verified the reproducibility of this bug and also identified its cause. It is due to &amp;lt;i&amp;gt;incorrect printing format&amp;lt;/i&amp;gt;. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replacing Line 91 in /ascend/system/system.c file by the following line of code solves the problem.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
FPRINTF(stderr,&amp;quot;Time to build system = %.4lf s (outputs zero for very small build time)\n&amp;quot;, ((tm_cpu_time() - comptime)&amp;gt;=0.00001)?(tm_cpu_time()-comptime):0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. Python invokes &amp;lt;i&amp;gt;__setslice__&amp;lt;/i&amp;gt; method when something like &amp;quot; a[1:4] = .. &amp;quot; is used. Thus this task can be accomplished by overriding the &amp;lt;b&amp;gt;__setslice__&amp;lt;/b&amp;gt; method of a list object as follows :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
class myList(list):&lt;br /&gt;
	def __setslice__(self, i, j, sequence):&lt;br /&gt;
		if(isinstance(sequence,list)):&lt;br /&gt;
			list.__setslice__(self, i, j, sequence)&lt;br /&gt;
		else:&lt;br /&gt;
			try:&lt;br /&gt;
				for x in range(i,j):&lt;br /&gt;
					self.__setitem__(x,sequence)&lt;br /&gt;
			except:&lt;br /&gt;
				print &amp;quot;Unexpected error:&amp;quot;, sys.exc_info()[0]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The use of this class is demonstrated as follows :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = myList(&#039;123456789&#039;);&lt;br /&gt;
print a;&lt;br /&gt;
a[1:4] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
output : &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;] &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, 5, 5, 5, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;]&lt;br /&gt;
&lt;br /&gt;
= New Models =&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2192</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2192"/>
		<updated>2011-04-19T18:45:37Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bug Fixes and Reports =&lt;br /&gt;
== Bug Fix for issue 505 ==&lt;br /&gt;
I have submitted a patch that adds support for the following 12 functions :&lt;br /&gt;
&amp;lt; /br&amp;gt;&lt;br /&gt;
=== Cosec, Sec, Cot ===&lt;br /&gt;
=== Cosech, Sech, Coth ===&lt;br /&gt;
=== ArcCosec, ArcSec, ArcCot ===&lt;br /&gt;
=== ArcCosech, ArcSech, ArcCoth ===&lt;br /&gt;
&lt;br /&gt;
The patch can be found at the following link : [http://ascendbugs.cheme.cmu.edu/view.php?id=505 Issue 505]&lt;br /&gt;
In addition to this, I have also reported and resolved [http://ascendbugs.cheme.cmu.edu/view.php?id=509 Issue 509] and [http://ascendbugs.cheme.cmu.edu/view.php?id=508 Issue 508]&lt;br /&gt;
 &lt;br /&gt;
==Bug Fix for issue 460==&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=460 Issue 460] reports that the &#039;Time to build system&#039; value is sometimes inconsistent. I have verified the reproducibility of this bug and also identified its cause. It is due to &amp;lt;i&amp;gt;incorrect printing format&amp;lt;/i&amp;gt;. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replacing Line 91 in /ascend/system/system.c file by the following line of code solves the problem.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
FPRINTF(stderr,&amp;quot;Time to build system = %.4lf s (outputs zero for very small build time)\n&amp;quot;, ((tm_cpu_time() - comptime)&amp;gt;=0.00001)?(tm_cpu_time()-comptime):0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. Python invokes &amp;lt;i&amp;gt;__setslice__&amp;lt;/i&amp;gt; method when something like &amp;quot; a[1:4] = .. &amp;quot; is used. Thus this task can be accomplished by overriding the &amp;lt;b&amp;gt;__setslice__&amp;lt;/b&amp;gt; method of a list object as follows :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
class myList(list):&lt;br /&gt;
	def __setslice__(self, i, j, sequence):&lt;br /&gt;
		if(isinstance(sequence,list)):&lt;br /&gt;
			list.__setslice__(self, i, j, sequence)&lt;br /&gt;
		else:&lt;br /&gt;
			try:&lt;br /&gt;
				for x in range(i,j):&lt;br /&gt;
					self.__setitem__(x,sequence)&lt;br /&gt;
			except:&lt;br /&gt;
				print &amp;quot;Unexpected error:&amp;quot;, sys.exc_info()[0]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The use of this class is demonstrated as follows :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = myList(&#039;123456789&#039;);&lt;br /&gt;
print a;&lt;br /&gt;
a[1:4] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
output : &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;] &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, 5, 5, 5, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;]&lt;br /&gt;
&lt;br /&gt;
= New Models =&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2153</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2153"/>
		<updated>2011-04-11T19:43:01Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bug Fix for issue 460==&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=460 Issue 460] reports that the &#039;Time to build system&#039; value is sometimes inconsistent. I have verified the reproducibility of this bug and also identified its cause. It is due to &amp;lt;i&amp;gt;incorrect printing format&amp;lt;/i&amp;gt;. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replacing Line 91 in /ascend/system/system.c file by the following line of code solves the problem.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
FPRINTF(stderr,&amp;quot;Time to build system = %.4lf s (outputs zero for very small build time)\n&amp;quot;, ((tm_cpu_time() - comptime)&amp;gt;=0.00001)?(tm_cpu_time()-comptime):0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. Python invokes &amp;lt;i&amp;gt;__setslice__&amp;lt;/i&amp;gt; method when something like &amp;quot; a[1:4] = .. &amp;quot; is used. Thus this task can be accomplished by overriding the &amp;lt;b&amp;gt;__setslice__&amp;lt;/b&amp;gt; method of a list object as follows :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
class myList(list):&lt;br /&gt;
	def __setslice__(self, i, j, sequence):&lt;br /&gt;
		if(isinstance(sequence,list)):&lt;br /&gt;
			list.__setslice__(self, i, j, sequence)&lt;br /&gt;
		else:&lt;br /&gt;
			try:&lt;br /&gt;
				for x in range(i,j):&lt;br /&gt;
					self.__setitem__(x,sequence)&lt;br /&gt;
			except:&lt;br /&gt;
				print &amp;quot;Unexpected error:&amp;quot;, sys.exc_info()[0]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The use of this class is demonstrated as follows :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = myList(&#039;123456789&#039;);&lt;br /&gt;
print a;&lt;br /&gt;
a[1:4] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
output : &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;] &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, 5, 5, 5, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;]&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2141</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2141"/>
		<updated>2011-04-08T15:39:45Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bug Fix for issue 460==&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=460 Issue 460] reports that the &#039;Time to build system&#039; value is sometimes inconsistent. I have verified the reproducibility of this bug and also identified its cause. It is due to &amp;lt;i&amp;gt;incorrect printing format&amp;lt;/i&amp;gt;. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replacing Line 91 in /ascend/system/system.c file by the following line of code solves the problem.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
FPRINTF(stderr,&amp;quot;Time to build system = %.4lf s (outputs zero for very small build time)\n&amp;quot;, ((tm_cpu_time() - comptime)&amp;gt;=0.00001)?(tm_cpu_time()-comptime):0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. Python invokes &amp;lt;i&amp;gt;__setslice__&amp;lt;/i&amp;gt; method when something like &amp;quot; a[1:4] = .. &amp;quot; is used. Thus this task can be accomplished by overriding the &amp;lt;b&amp;gt;__setslice__&amp;lt;/b&amp;gt; method of a list object as follows :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
class myList(list):&lt;br /&gt;
	def __setslice__(self, i, j, sequence):&lt;br /&gt;
		for x in range(i,j):&lt;br /&gt;
			self.__setitem__(x,sequence)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The use of this class is demonstrated as follows :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = myList(&#039;123456789&#039;);&lt;br /&gt;
print a;&lt;br /&gt;
a[1:4] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
output : &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;] &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, 5, 5, 5, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;]&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2140</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2140"/>
		<updated>2011-04-08T13:44:54Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. Python invokes &amp;lt;i&amp;gt;__setslice__&amp;lt;/i&amp;gt; method when something like &amp;quot; a[1:4] = .. &amp;quot; is used. Thus this task can be accomplished by overriding the &amp;lt;b&amp;gt;__setslice__&amp;lt;/b&amp;gt; method of a list object as follows :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
class myList(list):&lt;br /&gt;
	def __setslice__(self, i, j, sequence):&lt;br /&gt;
		for x in range(i,j):&lt;br /&gt;
			self.__setitem__(x,sequence)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The use of this class is demonstrated as follows :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = myList(&#039;123456789&#039;);&lt;br /&gt;
print a;&lt;br /&gt;
a[1:4] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
output : &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;] &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, 5, 5, 5, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;]&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2139</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2139"/>
		<updated>2011-04-08T13:43:45Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. Python invokes &amp;lt;i&amp;gt;__setslice__&amp;lt;/i&amp;gt; method when something like &amp;quot; a[1:4] = .. &amp;quot; is used. Thus this task can be accomplished by overriding the &amp;lt;b&amp;gt;__setslice__&amp;lt;/b&amp;gt; method of a list object as follows :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
class myList(list):&lt;br /&gt;
	def __setslice__(self, i, j, sequence):&lt;br /&gt;
		for x in range(i,j):&lt;br /&gt;
			self.__setitem__(x,sequence)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The use of this class is demonstrated as follows :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = myList(&#039;123456789&#039;);&lt;br /&gt;
print a;&lt;br /&gt;
a[1:4] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
output : &amp;lt; br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, &#039;2&#039;, &#039;3&#039;, &#039;4&#039;, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;] &amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;1&#039;, 5, 5, 5, &#039;5&#039;, &#039;6&#039;, &#039;7&#039;, &#039;8&#039;, &#039;9&#039;]&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2119</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2119"/>
		<updated>2011-04-08T02:35:36Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. It is in fact true that Python can&#039;t address range of array elements. This is not covered by the syntax of the language and supporting this feature would require a patch for Python language itself (not ASCEND).&lt;br /&gt;
I propose an alternate way to assign values to a range of array elements.&lt;br /&gt;
&lt;br /&gt;
===1. Assigning a value to all elements of an array===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = [5]*length;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
here &amp;lt;i&amp;gt;length&amp;lt;/i&amp;gt; can be the length of array &#039;a&#039; ie: len(a) if &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt; is already initialized or it can be a numerical value if &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt; is being initialized right now. &lt;br /&gt;
&amp;lt;br /&amp;gt;example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = [2]*6;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a&lt;br /&gt;
[2,2,2,2,2,2]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===2. Assigning a value to a partial range of elements of an array===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
for i in range(0,5):&lt;br /&gt;
	a[i] = 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This will produce the desired effect.&lt;br /&gt;
&amp;lt;br /&amp;gt;example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = [4]*10&lt;br /&gt;
for i in range(0,4):&lt;br /&gt;
	a[i] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
output : [5, 5, 5, 5, 4, 4, 4, 4, 4, 4]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2118</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2118"/>
		<updated>2011-04-08T02:25:02Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. It is in fact true that Python can&#039;t address range of array elements. This is not covered by the syntax of the language and supporting this feature would require a patch for Python language itself (not ASCEND).&lt;br /&gt;
I propose an alternate way to assign values to a range of array elements.&lt;br /&gt;
&lt;br /&gt;
=1. Assigning a value to all elements of an array=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = [5]*length;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
here &amp;lt;i&amp;gt;length&amp;lt;/i&amp;gt; can be the length of array &#039;a&#039; ie: len(a) if &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt; is already initialized or it can be a numerical value if &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt; is being initialized right now. &lt;br /&gt;
&amp;lt;br /&amp;gt;example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = [2]*6;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a&lt;br /&gt;
[2,2,2,2,2,2]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=2. Assigning a value to a partial range of elements of an array=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
for i in range(0,5):&lt;br /&gt;
	a[i] = 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This will produce the desired effect.&lt;br /&gt;
&amp;lt;br /&amp;gt;example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = [4]*10&lt;br /&gt;
for i in range(0,4):&lt;br /&gt;
	a[i] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
output : [5, 5, 5, 5, 4, 4, 4, 4, 4, 4]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2117</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2117"/>
		<updated>2011-04-08T02:23:52Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. It is in fact true that Python can&#039;t address range of array elements. This is not covered by the syntax of the language and supporting this feature would require a patch for Python language itself (not ASCEND).&lt;br /&gt;
I propose an alternate way to assign values to a range of array elements.&lt;br /&gt;
&lt;br /&gt;
=1. Assigning a value to all elements of an array=&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
a = [5]*length;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
here &amp;lt;i&amp;gt;length&amp;lt;/i&amp;gt; can be the length of array &#039;a&#039; ie: len(a) if &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt; is already initialized or it can be a numerical value if &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt; is being initialized right now. &lt;br /&gt;
example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = [2]*6;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a&lt;br /&gt;
[2,2,2,2,2,2]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=2. Assigning a value to a partial range of elements of an array=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
for i in range(0,5):&lt;br /&gt;
	a[i] = 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This will produce the desired effect.&lt;br /&gt;
example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;py&amp;quot;&amp;gt;&lt;br /&gt;
a = [4]*10&lt;br /&gt;
for i in range(0,4):&lt;br /&gt;
	a[i] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
output : [5, 5, 5, 5, 4, 4, 4, 4, 4, 4]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2116</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2116"/>
		<updated>2011-04-08T02:22:37Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values to a range of array elements. It is in fact true that Python can&#039;t address range of array elements. This is not covered by the syntax of the language and supporting this feature would require a patch for Python language itself (not ASCEND).&lt;br /&gt;
I propose an alternate way to assign values to a range of array elements.&lt;br /&gt;
&lt;br /&gt;
=1. Assigning a value to all elements of an array=&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
a = [5]*length;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
here &amp;lt;i&amp;gt;length&amp;lt;/i&amp;gt; can be the length of array &#039;a&#039; ie: len(a) if &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt; is already initialized or it can be a numerical value if &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt; is being initialized right now. &lt;br /&gt;
example:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = [2]*6;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a&lt;br /&gt;
[2,2,2,2,2,2]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=2. Assigning a value to a partial range of elements of an array=&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
for i in range(0,5):&lt;br /&gt;
	a[i] = 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This will produce the desired effect.&lt;br /&gt;
example:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
a = [4]*10&lt;br /&gt;
for i in range(0,4):&lt;br /&gt;
	a[i] = 5;&lt;br /&gt;
print a;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
output : [5, 5, 5, 5, 4, 4, 4, 4, 4, 4]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2114</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2114"/>
		<updated>2011-04-08T01:54:09Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
[http://ascendbugs.cheme.cmu.edu/view.php?id=459 Issue 459] demands a way to assign values a range of array elements.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2113</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2113"/>
		<updated>2011-04-08T01:53:18Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== A Proposed solution for issue 459 ==&lt;br /&gt;
&lt;br /&gt;
Issue [http://ascendbugs.cheme.cmu.edu/view.php?id=459 link 459] demands a way to assign values a range of array elements.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2070</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2070"/>
		<updated>2011-04-04T04:44:41Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 {cm};&lt;br /&gt;
      r		     := 10.0 {cm};&lt;br /&gt;
      h              := 50.0 {cm};&lt;br /&gt;
      metal_density  := 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
   &lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2061</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2061"/>
		<updated>2011-04-03T16:01:01Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
[[Image:Incidence.png|thumb|480px|none|Incidence Graph generated by ASCEND for the model of a &amp;lt;tt&amp;gt;frustum of cone.&amp;lt;/tt&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:Incidence.png&amp;diff=2060</id>
		<title>File:Incidence.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:Incidence.png&amp;diff=2060"/>
		<updated>2011-04-03T15:59:07Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: Incidence Graph generated by ASCEND for the model of a frustum of cone.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Incidence Graph generated by ASCEND for the model of a frustum of cone.&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2059</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2059"/>
		<updated>2011-04-03T15:57:12Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&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;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2057</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2057"/>
		<updated>2011-04-02T12:01:16Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: /* A simple model for FRUSTUM OF A CONE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I have prior experience with GUI development and would be applying for projects involving GUI development. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2056</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2056"/>
		<updated>2011-04-02T07:46:32Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: /* A simple model for FRUSTUM OF A CONE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;br /&gt;
&lt;br /&gt;
==Partitioned Model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
Following is a modified version of the Frustum [[MODEL]] which breaks down a frustum into two cones : A top cone cut out from a bottom cone. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
REQUIRE &amp;quot;atoms.a4l&amp;quot;;&lt;br /&gt;
MODEL cone;&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,	     &lt;br /&gt;
    h,	     	     &lt;br /&gt;
    l	     IS_A distance;&lt;br /&gt;
    curved_area	IS_A area;&lt;br /&gt;
    vol      IS_A volume;&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + R^2);&lt;br /&gt;
    vol = 3.1416*h*R^2/3;&lt;br /&gt;
    curved_area = 3.1416*l*R;&lt;br /&gt;
METHODS&lt;br /&gt;
    METHOD specify;&lt;br /&gt;
        FIX R;&lt;br /&gt;
        FIX h;&lt;br /&gt;
   END specify;    &lt;br /&gt;
END cone;&lt;br /&gt;
&lt;br /&gt;
MODEL partitioned_frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
   (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    r,&lt;br /&gt;
    h		    IS_A distance;&lt;br /&gt;
    l		    IS_A distance;&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area      IS_A area;&lt;br /&gt;
&lt;br /&gt;
    vol             IS_A volume;&lt;br /&gt;
    metal_density   IS_A mass_density;&lt;br /&gt;
    metal_mass      IS_A mass;&lt;br /&gt;
&lt;br /&gt;
    (* parts *)&lt;br /&gt;
    top		    IS_A cone;&lt;br /&gt;
    bottom          IS_A cone;&lt;br /&gt;
    &lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0 {cm};&lt;br /&gt;
    r		   = 10.0 {cm};&lt;br /&gt;
    h              = 50.0 {cm};&lt;br /&gt;
    metal_density  = 9.60 {g/cm^3};&lt;br /&gt;
&lt;br /&gt;
    (* equations *)&lt;br /&gt;
    top.R = r;&lt;br /&gt;
    top.h = r*h/(R-r);&lt;br /&gt;
    bottom.R = R;&lt;br /&gt;
    bottom.h = h + top.h;&lt;br /&gt;
&lt;br /&gt;
    l = bottom.l - top.l;&lt;br /&gt;
    vol = bottom.vol - top.vol;&lt;br /&gt;
    curved_area  = bottom.curved_area - top.curved_area;&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
&lt;br /&gt;
END partitioned_frustrum_of_cone;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2055</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2055"/>
		<updated>2011-04-02T07:43:06Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: /* A simple model of &amp;#039;Frustum of A cone&amp;#039; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==A simple model for FRUSTUM OF A CONE==&lt;br /&gt;
&lt;br /&gt;
I am new to the ASCEND language and intend to contribute something to the community through GSOC2011. I wrote a sample model for Frustum Of A Cone      &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2054</id>
		<title>User:Ujjavalverma10</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Ujjavalverma10&amp;diff=2054"/>
		<updated>2011-04-02T07:40:11Z</updated>

		<summary type="html">&lt;p&gt;Ujjavalverma10: Created page with &amp;#039;==A simple model of &amp;#039;Frustum of A cone&amp;#039;==  We construct the following ASCEND model for this problem.         &amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;  REQUIRE &amp;quot;system.a4l&amp;quot;; MODEL frustrum_of_cone;   …&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==A simple model of &#039;Frustum of A cone&#039;==&lt;br /&gt;
&lt;br /&gt;
We construct the following ASCEND model for this problem.       &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
REQUIRE &amp;quot;system.a4l&amp;quot;;&lt;br /&gt;
MODEL frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
    (* variables *)&lt;br /&gt;
    R,&lt;br /&gt;
    h,&lt;br /&gt;
    r,&lt;br /&gt;
    l,&lt;br /&gt;
    metal_density,&lt;br /&gt;
    curved_area,&lt;br /&gt;
    total_area,&lt;br /&gt;
    vol,&lt;br /&gt;
    metal_mass      IS_A solver_var;&lt;br /&gt;
    (* specifications *)&lt;br /&gt;
    R              = 30.0;&lt;br /&gt;
    r		   = 10.0;&lt;br /&gt;
    h              = 50.0;&lt;br /&gt;
    metal_density  = 9.60;&lt;br /&gt;
    &lt;br /&gt;
    (* equations *)&lt;br /&gt;
    l = sqrt(h^2 + (R-r)^2);&lt;br /&gt;
    vol = 3.1416*h*(R^2 + r^2 + r*R)/3;&lt;br /&gt;
    curved_area = 3.1416*l*(R+r);&lt;br /&gt;
    total_area = 3.1416*(R^2 + r^2) + curved_area;&lt;br /&gt;
    metal_mass = metal_density*vol;&lt;br /&gt;
    &lt;br /&gt;
METHODS&lt;br /&gt;
&lt;br /&gt;
   METHOD specify;&lt;br /&gt;
      FIX R;&lt;br /&gt;
      FIX r;&lt;br /&gt;
      FIX h;&lt;br /&gt;
      FIX metal_density;&lt;br /&gt;
   END specify;&lt;br /&gt;
&lt;br /&gt;
   METHOD values;&lt;br /&gt;
      R              := 30.0 ;&lt;br /&gt;
      r		     := 10.0;&lt;br /&gt;
      h              := 50.0;&lt;br /&gt;
      metal_density  := 9.60 ;&lt;br /&gt;
&lt;br /&gt;
   END values;&lt;br /&gt;
&lt;br /&gt;
   METHOD setup;&lt;br /&gt;
      RUN specify;&lt;br /&gt;
      RUN values;&lt;br /&gt;
   END setup;&lt;br /&gt;
    &lt;br /&gt;
END frustrum_of_cone;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This [[MODEL]] is quite straight forward to write.  ASCEND uses strong typing; it requires one to declare explicitly the type of each variable using [[IS_A]] statements.  Any [[variable]] whose value it is expected to compute must be of at least type &amp;quot;solver_var,&amp;quot; the type we have used here.  (Note that we insert a first statement to &amp;quot;require&amp;quot; that a file called &amp;quot;system.a4l&amp;quot; loads first as it contains the definition for the type &amp;quot;solver_var.&amp;quot;)&lt;/div&gt;</summary>
		<author><name>Ujjavalverma10</name></author>
	</entry>
</feed>