source: trunk/examples/app-fermi/tcl/fermi.tcl

Last change on this file was 3177, checked in by mmc, 12 years ago

Updated all of the copyright notices to reference the transfer to
the new HUBzero Foundation, LLC.

  • Property svn:executable set to *
File size: 1.7 KB
Line 
1# ----------------------------------------------------------------------
2#  EXAMPLE: Fermi-Dirac function in Tcl.
3#
4#  This simple example shows how to use Rappture within a simulator
5#  written in Tcl.
6# ======================================================================
7#  AUTHOR:  Michael McLennan, Purdue University
8#  Copyright (c) 2004-2012  HUBzero Foundation, LLC
9#
10#  See the file "license.terms" for information on usage and
11#  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
12# ======================================================================
13package require Rappture
14
15# open the XML file containing the run parameters
16set driver [Rappture::library [lindex $argv 0]]
17
18set T [$driver get input.(temperature).current]
19set T [Rappture::Units::convert $T -to K -units off]
20set Ef [$driver get input.(Ef).current]
21set Ef [Rappture::Units::convert $Ef -to eV -units off]
22
23set kT [expr {8.61734e-5 * $T}]
24set Emin [expr {$Ef - 10*$kT}]
25set Emax [expr {$Ef + 10*$kT}]
26
27set E $Emin
28set dE [expr {0.005*($Emax-$Emin)}]
29
30# Label output graph with title, x-axis label,
31# y-axis lable, and y-axis units
32$driver put -append no output.curve(f12).about.label "Fermi-Dirac Factor"
33$driver put -append no output.curve(f12).xaxis.label "Fermi-Dirac Factor"
34$driver put -append no output.curve(f12).yaxis.label "Energy"
35$driver put -append no output.curve(f12).yaxis.units "eV"
36
37while {$E < $Emax} {
38    set f [expr {1.0/(1.0 + exp(($E - $Ef)/$kT))}]
39    set progress [expr {(($E - $Emin)/($Emax - $Emin)*100)}]
40    Rappture::Utils::progress $progress -mesg "Iterating"
41    $driver put -append yes output.curve(f12).component.xy "$f $E\n"
42    set E [expr {$E + $dE}]
43}
44
45# save the updated XML describing the run...
46Rappture::result $driver
47exit 0
Note: See TracBrowser for help on using the repository browser.