Changeset 30


Ignore:
Timestamp:
Jul 27, 2005 2:37:14 PM (16 years ago)
Author:
dkearney
Message:

adding fermi_fortran as an example of a working app

Location:
trunk/examples
Files:
5 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/examples/app-fermi/fermi

    r10 r30  
    99# ======================================================================
    1010#\
    11 exec tclsh "$0" "*$"
     11exec tclsh "$0" "$*"
    1212# ----------------------------------------------------------------------
    1313# tclsh executes everything from here on...
     
    1616
    1717# open the XML file containing the run parameters
    18 set driver [Rappture::library driver.xml]
     18set driver [Rappture::library [lindex $argv 0]]
    1919
    20 set T 300
    21 set Ef -5.5
     20set T [$driver get input.(temperature).current]
     21set T [Rappture::Units::convert $T -to K -units off]
     22set Ef [$driver get input.(Ef).current]
     23set Ef [Rappture::Units::convert $Ef -to eV -units off]
    2224
    2325set kT [expr {8.61734e-5 * $T}]
     
    3436}
    3537
    36 $driver put output.curve(f12).label "Fermi-Dirac Factor"
     38$driver put output.curve(f12).about.label "Fermi-Dirac Factor"
     39$driver put output.curve(f12).xaxis.label "Energy"
     40$driver put output.curve(f12).xaxis.units "eV"
    3741$driver put output.curve(f12).component.xy $xy
    3842
     
    4145# Be sure to do this back in the original directory
    4246#
    43 set fid [open run.xml w]
     47set rfile "run[clock seconds].xml"
     48set fid [open $rfile w]
    4449puts $fid "<?xml version=\"1.0\"?>"
    4550puts $fid [$driver xml]
    4651close $fid
     52
     53puts "=RAPPTURE-RUN=>$rfile"
  • trunk/examples/app-fermi/tool.xml

    r10 r30  
    11<?xml version="1.0"?>
    22<run>
    3 <tool>
    4   <about>Press Simulate to view results.
    5   </about>
    6   <command>
    7     /home/mmc/nanohub/app-fermi/fermi
    8   </command>
    9 </tool>
    10 <input>
    11   <group id="ambient">
    12     <number id="temperature">
    13       <label>Ambient temperature</label>
    14       <units>K</units>
    15       <min>120K</min>
    16       <max>500K</max>
    17       <default>300K</default>
    18       <current>300K</current>
    19       <preset>
    20         <value>400K</value>
    21         <label>400K (hot)</label>
    22       </preset>
    23       <preset>
    24         <value>300K</value>
    25         <label>300K (room temperature)</label>
    26       </preset>
    27       <preset>
    28         <value>200K</value>
    29         <label>200K (cold)</label>
    30       </preset>
    31     </number>
    32   </group>
    33   <number id="Ef">
    34     <label>Fermi Level</label>
    35     <units>eV</units>
    36     <min>-10eV</min>
    37     <max>10eV</max>
    38     <default>-5.5eV</default>
    39   </number>
    40 </input>
     3    <tool>
     4        <about>Press Simulate to view results.</about>
     5        <command> put run-command here </command>
     6    </tool>
     7    <input>
     8        <!-- this temp should be moved to a more global scope -->
     9        <group id="ambient">
     10            <number id="temperature">
     11                <about>
     12                    <label>Ambient temperature</label>
     13                </about>
     14                <units>K</units>
     15                <min>120K</min>
     16                <max>500K</max>
     17                <default>300</default>
     18                <current>300</current>
     19                <preset>
     20                    <value>400K</value>
     21                    <label>400K (hot)</label>
     22                </preset>
     23                <preset>
     24                    <value>300K</value>
     25                    <label>300K (room temperature)</label>
     26                </preset>
     27                <preset>
     28                    <value>200K</value>
     29                    <label>200K (cold)</label>
     30                </preset>
     31            </number>
     32        </group>
     33        <group id="simulation_params">
     34            <group id="handle">
     35                <!-- more like yes or no flags -->
     36                <string id="comments">
     37                    <label>comments</label>
     38                    <default>off</default>
     39                    <current>off</current>
     40                </string>
     41                <boolean id="iflag3B">
     42                    <label>iflag3B</label>
     43                    <default>0</default>
     44                    <current>0</current>
     45                </boolean>
     46                <boolean id="iflagPOI">
     47                    <label>iflagPOI</label>
     48                    <default>1</default>
     49                    <current>0</current>
     50                </boolean>
     51                <number id="iterPOImax">
     52                    <label>iterPOImax</label>
     53                    <min>0</min>
     54                    <max>200</max>
     55                    <default>10</default>
     56                    <current>0</current>
     57                </number>
     58                <number id="intiterPOImax">
     59                    <label>intiterPOImax</label>
     60                    <min>0</min>
     61                    <max>200</max>
     62                    <default>5</default>
     63                    <current>5</current>
     64                </number>
     65                <number id="ndampPOI">
     66                    <label>ndampPOI</label>
     67                    <min>0</min>
     68                    <max>1000</max>
     69                    <default>500</default>
     70                    <current>500</current>
     71                </number>
     72                <number id="normPOI">
     73                    <label>normPOI</label>
     74                    <min>0</min>
     75                    <max>1</max>
     76                    <default>1.0e-4</default>
     77                    <current>1.0e-4</current>
     78                </number>
     79                <string id="simtype">
     80                    <label>simtype</label>
     81                    <default>Q</default>
     82                    <current>Q</current>
     83                </string>
     84                <boolean id="iflagGL">
     85                    <label>iflagGL</label>
     86                    <default>1</default>
     87                    <current>1</current>
     88                </boolean>
     89                <boolean id="iflagGG">
     90                    <label>iflagGG</label>
     91                    <default>0</default>
     92                    <current>0</current>
     93                </boolean>
     94                <boolean id="iflagBAC">
     95                    <label>iflagBAC</label>
     96                    <default>1</default>
     97                    <current>1</current>
     98                </boolean>
     99            </group>
     100            <group id="outwrite">
     101                <string id="extension">
     102                    <label>Filename Extension</label>
     103                    <default>_DG.txt</default>
     104                    <current>_DG.txt</current>
     105                </string>
     106                <boolean id="iwritePROF">
     107                    <label>iwritePROF</label>
     108                    <default>1</default>
     109                    <current>1</current>
     110                </boolean>
     111                <boolean id="iwritePROFduringPOI">
     112                    <label>iwritePROFduringPOI</label>
     113                    <default>1</default>
     114                    <current>1</current>
     115                </boolean>
     116                <boolean id="iwriteCURvsE">
     117                    <label>iwriteCURvsE</label>
     118                    <default>1</default>
     119                    <current>1</current>
     120                </boolean>
     121                <boolean id="iwriteDOSvsE">
     122                    <label>iwriteDOSvsE</label>
     123                    <default>1</default>
     124                    <current>1</current>
     125                </boolean>
     126                <boolean id="iwriteSIGcvsE">
     127                    <label>iwriteSIGcvsE</label>
     128                    <default>1</default>
     129                    <current>1</current>
     130                </boolean>
     131                <boolean id="iwriteSIGcvsE1D">
     132                    <label>iwriteSIGcvsE1D</label>
     133                    <default>1</default>
     134                    <current>1</current>
     135                </boolean>
     136                <boolean id="iwriteCURvsY">
     137                    <label>iwriteCURvsY</label>
     138                    <default>1</default>
     139                    <current>1</current>
     140                </boolean>
     141                <boolean id="iwriteEres">
     142                    <label>iwriteEres</label>
     143                    <default>1</default>
     144                    <current>1</current>
     145                </boolean>
     146                <boolean id="iwritePSIsq">
     147                    <label>iwritePSIsq</label>
     148                    <default>1</default>
     149                    <current>1</current>
     150                </boolean>
     151                <boolean id="iwriteTRAN">
     152                    <label>iwriteTRAN</label>
     153                    <default>1</default>
     154                    <current>1</current>
     155                </boolean>
     156                <boolean id="iwriteIV">
     157                    <label>iwriteIV</label>
     158                    <default>1</default>
     159                    <current>1</current>
     160                </boolean>
     161                <boolean id="iwriteINGUESS">
     162                    <label>iwriteINGUESS</label>
     163                    <default>1</default>
     164                    <current>1</current>
     165                </boolean>
     166                <boolean id="iwriteDOPI">
     167                    <label>iwriteDOPI</label>
     168                    <default>1</default>
     169                    <current>1</current>
     170                </boolean>
     171                <boolean id="iwriteGRID">
     172                    <label>iwriteGRID</label>
     173                    <default>1</default>
     174                    <current>1</current>
     175                </boolean>
     176                <boolean id="iwriteEGRID">
     177                    <label>iwriteEGRID</label>
     178                    <default>1</default>
     179                    <current>1</current>
     180                </boolean>
     181                <boolean id="iwriteMATERIAL">
     182                    <label>iwriteMATERIAL</label>
     183                    <default>1</default>
     184                    <current>1</current>
     185                </boolean>
     186            </group>
     187        </group>
     188        <!-- this group should be removed, its structure is properly defined below -->
     189        <group id="2dmosfet">
     190            <number id="Lx">
     191                <label>x simulation width</label>
     192                <units>nm</units>
     193                <min>0nm</min>
     194                <max>1000nm</max>
     195                <default>10</default>
     196                <current>24</current>
     197            </number>
     198            <number id="Ly">
     199                <label>y simulation length</label>
     200                <units>nm</units>
     201                <min>0nm</min>
     202                <max>1000nm</max>
     203                <default>10</default>
     204                <current>40</current>
     205            </number>
     206        </group>
     207        <group id="energy">
     208            <number id="ksize">
     209                <label>total egrid size</label>
     210                <units></units>
     211                <default>512</default>
     212                <current>256</current>
     213            </number>
     214            <number id="ksize_un">
     215                <label>uniform background grid</label>
     216                <units></units>
     217                <default>56</default>
     218                <current>56</current>
     219            </number>
     220            <string id="type">
     221                <label>type of energy grid</label>
     222                <default>nonuniform</default>
     223                <current>nonuniform</current>
     224            </string>
     225            <number id="lower_energy_grid">
     226                <label>lower limit of energy grid</label>
     227                <units></units>
     228                <default>-1000</default>
     229                <current>-1000.0</current>
     230            </number>
     231            <number id="higher_energy_grid">
     232                <label>higher limit of energy grid</label>
     233                <units></units>
     234                <default>1000</default>
     235                <current>1000.0</current>
     236            </number>
     237            <number id="high_energy_tail_cutoff">
     238                <label>high energy tail cutoff</label>
     239                <units></units>
     240                <default>10</default>
     241                <current>10.0</current>
     242            </number>
     243            <number id="lower_energy_tail_cutoff">
     244                <label>lower energy tail cutoff</label>
     245                <units></units>
     246                <default>3</default>
     247                <current>3.0</current>
     248            </number>
     249            <boolean id="iflagRES">
     250                    <label>iflagRES</label>
     251                    <default>1</default>
     252                    <current>1</current>
     253            </boolean>
     254        </group>
     255        <structure id="str">
     256            <current id = "cur">
     257              <!-- numeric parameters to be set by user in gui -->
     258              <!-- variables describing the geometry of boxes-->
     259              <parameters id="param">
     260                <number id="Ly">
     261                  <about>
     262                    <label>Domain Length</label>
     263                  </about>
     264                  <units>nm</units>
     265                  <default>40nm</default>
     266                  <current>40nm</current>
     267                </number>
     268                <number id="Lx">
     269                  <about>
     270                    <label>Domain Width</label>
     271                  </about>
     272                  <units>nm</units>
     273                  <default>24nm</default>
     274                  <current>24nm</current>
     275                </number>
     276                <number id="SDlength">
     277                  <about>
     278                    <label>Source / Drain Width</label>
     279                  </about>
     280                  <units>nm</units>
     281                  <default>14nm</default>
     282                  <current>14nm</current>
     283                </number>
     284                <number id="SDwidth">
     285                  <about>
     286                    <label>Source / Drain Width</label>
     287                  </about>
     288                  <units>nm</units>
     289                  <default>14nm</default>
     290                  <current>14nm</current>
     291                </number>
     292                <number id="ChannelLength">
     293                  <about>
     294                    <label>Channel Length</label>
     295                  </about>
     296                  <units>nm</units>
     297                  <default>12nm</default>
     298                  <current>12nm</current>
     299                </number>
     300                <number id="ChannelWidth">
     301                  <about>
     302                    <label>Channel Width</label>
     303                  </about>
     304                  <units>nm</units>
     305                  <default>2nm</default>
     306                  <current>2nm</current>
     307                </number>
     308                <number id="TopOxideThickness">
     309                  <about>
     310                    <label>Top Oxide Thickness</label>
     311                  </about>
     312                  <units>nm</units>
     313                  <default>1.5nm</default>
     314                  <current>1.5nm</current>
     315                </number>
     316                <number id="BotOxideThickness">
     317                  <about>
     318                    <label>Bottom Oxide Thickness</label>
     319                  </about>
     320                  <units>nm</units>
     321                  <default>1.5nm</default>
     322                  <current>1.5nm</current>
     323                </number>
     324                <number id="GateLength">
     325                  <about>
     326                    <label>Gate Length</label>
     327                  </about>
     328                  <units>nm</units>
     329                  <default>10nm</default>
     330                  <current>10nm</current>
     331                </number>
     332                <number id="NxGridTopOxide">
     333                 <label>No. of grid (nx) in Top Oxide</label>
     334                 <units></units>
     335                 <default>5</default>
     336                 <current>5</current>
     337                </number>
     338                <number id="NxGridChannel">
     339                 <label>No. of grid (nx) in Channel</label>
     340                 <units></units>
     341                 <default>15</default>
     342                 <current>15</current>
     343                </number>
     344                <number id="NxGridBottomOxide">
     345                 <label>No. of grid (nx) in Bottom Oxide </label>
     346                 <units></units>
     347                 <default>5</default>
     348                 <current>5</current>
     349                </number>
     350                <number id="GridSizeY">
     351                 <label>Grid Size (DeltaY)</label>
     352                 <units>nm</units>
     353                 <default>0.25nm</default>
     354                 <current>0.4nm</current>
     355                </number>
     356                <group id="ix_contact">
     357                    <number id="first">
     358                      <default>2</default>
     359                      <current>2</current>
     360                    </number>
     361                    <number id="last">
     362                      <default>8</default>
     363                      <current>8</current>
     364                    </number>
     365                </group>
     366                <group id="iy_contact">
     367                    <number id="first">
     368                      <default>1</default>
     369                      <current>1</current>
     370                    </number>
     371                    <number id="last">
     372                      <default>1</default>
     373                      <current>1</current>
     374                    </number>
     375                </group>
     376                <group id="ix_coupling">
     377                    <number id="first">
     378                      <default>2</default>
     379                      <current>2</current>
     380                    </number>
     381                    <number id="last">
     382                      <default>8</default>
     383                      <current>8</current>
     384                    </number>
     385                </group>
     386                <group id="iy_coupling">
     387                    <number id="first">
     388                      <default>1</default>
     389                      <current>1</current>
     390                    </number>
     391                    <number id="last">
     392                      <default>1</default>
     393                      <current>1</current>
     394                    </number>
     395                </group>
     396                <!-- this is the only user modified value -->
     397                <group id="source">
     398                    <number id="voltage">
     399                      <about>
     400                        <label>Source Voltage</label>
     401                      </about>
     402                      <units>mV</units>
     403                      <min>0mV</min>
     404                      <default>0mV</default>
     405                      <current>0mV</current>
     406                    </number>
     407                </group> <!-- end source -->
     408                <group id="drain">
     409                    <number id="voltage">
     410                      <about>
     411                        <label>Drain Voltage</label>
     412                      </about>
     413                      <units>mV</units>
     414                      <min>0mV</min>
     415                      <default>0mV</default>
     416                      <current>600mV</current>
     417                    </number>
     418                </group>
     419                <group id="gate">
     420                    <number id="voltage">
     421                      <about>
     422                        <label>Gate Voltage</label>
     423                      </about>
     424                      <units>mV</units>
     425                      <min>0mV</min>
     426                      <default>0mV</default>
     427                      <current>0mV</current>
     428                    </number>
     429                </group>
     430                <number id="num_contacts">
     431                  <about>
     432                    <label>number of contacts with varying bias</label>
     433                  </about>
     434                  <units></units>
     435                  <default>1</default>
     436                  <current>2</current>
     437                </number>
     438                <!-- it would be better if we could get the
     439                     next 4 variables into 1 var -->
     440                <number id="varying_contact1">
     441                  <about>
     442                    <label>contact with varying bias</label>
     443                    <!--
     444                        1 - source
     445                        2 - drain
     446                        3 - bottom gate
     447                        4 - top gate
     448                    -->
     449                  </about>
     450                  <units></units>
     451                  <default>0</default>
     452                  <current>3</current>
     453                </number>
     454                <number id="varying_contact2">
     455                  <about>
     456                    <label>contact with varying bias</label>
     457                    <!--
     458                        1 - source
     459                        2 - drain
     460                        3 - bottom gate
     461                        4 - top gate
     462                    -->
     463                  </about>
     464                  <units></units>
     465                  <default>0</default>
     466                  <current>4</current>
     467                </number>
     468                <number id="varying_contact3">
     469                  <about>
     470                    <label>contact with varying bias</label>
     471                    <!--
     472                        1 - source
     473                        2 - drain
     474                        3 - bottom gate
     475                        4 - top gate
     476                    -->
     477                  </about>
     478                  <units></units>
     479                  <default>0</default>
     480                  <current>0</current>
     481                </number>
     482                <number id="varying_contact4">
     483                  <about>
     484                    <label>contact with varying bias</label>
     485                    <!--
     486                        1 - source
     487                        2 - drain
     488                        3 - bottom gate
     489                        4 - top gate
     490                    -->
     491                  </about>
     492                  <units></units>
     493                  <default>0</default>
     494                  <current>0</current>
     495                </number>
     496                <number id="bias_min">
     497                  <about>
     498                    <label>Min Applied Voltage</label>
     499                  </about>
     500                  <units>mV</units>
     501                  <min>0mV</min>
     502                  <default>0mV</default>
     503                  <current>0mV</current>
     504                </number>
     505                <number id="bias_max">
     506                  <about>
     507                    <label>Max Applied Voltage</label>
     508                  </about>
     509                  <units>mV</units>
     510                  <min>0mV</min>
     511                  <default>0mV</default>
     512                  <current>0mV</current>
     513                </number>
     514                <number id="bias_step">
     515                  <about>
     516                    <label>Applied Voltage Step</label>
     517                  </about>
     518                  <units>mV</units>
     519                  <min>0mV</min>
     520                  <default>100mV</default>
     521                  <current>100mV</current>
     522                </number>
     523              </parameters>
     524              <!-- the following describes the box dimensions -->
     525              <components>
     526                <box>
     527                  <about>
     528                    <label>Source</label>
     529                    <color>yellow</color>
     530                  </about>
     531                  <corner>-20,-7</corner>
     532                  <corner>-6,7</corner>
     533                  <material>Si</material>
     534                </box>
     535                <box>
     536                  <about>
     537                    <label>Drain</label>
     538                    <color>yellow</color>
     539                  </about>
     540                  <corner>20,-7</corner>
     541                  <corner>6,7</corner>
     542                  <material>Si</material>
     543                </box>
     544                <box>
     545                  <about>
     546                    <label>Channel</label>
     547                    <color>yellow</color>
     548                  </about>
     549                  <corner>-6,-1</corner>
     550                  <corner>6,1</corner>
     551                  <material>Si</material>
     552                </box>
     553                <box>
     554                  <about>
     555                    <label>Top Oxide</label>
     556                    <color>yellow</color>
     557                  </about>
     558                  <corner>,-5,-2.5</corner>
     559                  <corner>5,-1</corner>
     560                  <material>Oxide1</material>
     561                </box>
     562                <box>
     563                  <about>
     564                    <label>Bottom Oxide</label>
     565                    <color>yellow</color>
     566                  </about>
     567                  <corner>-5,1</corner>
     568                  <corner>5,2.5</corner>
     569                  <material>Oxide</material>
     570                </box>
     571              </components>
     572              <!-- the following describes the user defined material specs  -->
     573              <domain_materials>
     574                <material name="Si">
     575                    <properties id="transport">
     576                        <emiso>0.328</emiso>
     577                        <emx>0.98</emx>
     578                        <emy>0.98</emy>
     579                        <emz>0.98</emz>
     580                        <hmiso>0.49</hmiso>
     581                        <eps>11.9</eps>
     582                        <Egap>1.12D03</Egap>
     583                        <affinity>4.05D03</affinity>
     584                    </properties>
     585                </material>
     586                <material name="SiO2">
     587                    <properties id="transport">
     588                        <emiso>0.5</emiso>
     589                        <emx>0.5</emx>
     590                        <emy>0.5</emy>
     591                        <emz>0.5</emz>
     592                        <hmiso>0.5</hmiso>
     593                        <eps>3.9</eps>
     594                        <Egap>8.8D03</Egap>
     595                        <affinity>0.95D03</affinity>
     596                    </properties>
     597                </material>
     598                <material name="Metal">
     599                    <properties id="transport">
     600                        <emiso>0.328</emiso>
     601                        <emx>0.98</emx>
     602                        <emy>0.19</emy>
     603                        <emz>0.19</emz>
     604                        <hmiso>0.49</hmiso>
     605                        <eps>11.9</eps>
     606                        <Egap>1.12D03</Egap>
     607                        <affinity>4.42270D03</affinity>
     608                    </properties>
     609                </material>
     610                <material name="Metal1">
     611                    <properties id="transport">
     612                        <emiso>0.328</emiso>
     613                        <emx>0.98</emx>
     614                        <emy>0.19</emy>
     615                        <emz>0.19</emz>
     616                        <hmiso>0.49</hmiso>
     617                        <eps>11.9</eps>
     618                        <Egap>1.12D03</Egap>
     619                        <affinity>4.42270D03</affinity>
     620                    </properties>
     621                </material>
     622                <material name="Oxide">
     623                    <properties id="transport">
     624                        <emiso>0.5</emiso>
     625                        <emx>0.5</emx>
     626                        <emy>0.5</emy>
     627                        <emz>0.5</emz>
     628                        <hmiso>0.5</hmiso>
     629                        <eps>3.9</eps>
     630                        <Egap>8.8D03</Egap>
     631                        <affinity>0.95D03</affinity>
     632                    </properties>
     633                </material>
     634                <material name="Oxide1">
     635                    <properties id="transport">
     636                        <emiso>0.5</emiso>
     637                        <emx>0.5</emx>
     638                        <emy>0.5</emy>
     639                        <emz>0.5</emz>
     640                        <hmiso>0.5</hmiso>
     641                        <eps>3.9</eps>
     642                        <Egap>8.8D03</Egap>
     643                        <affinity>0.95D03</affinity>
     644                    </properties>
     645                </material>
     646              </domain_materials>
     647            </current>
     648        </structure>
     649    </input>
    41650</run>
Note: See TracChangeset for help on using the changeset viewer.