source: trunk/examples/app-fermi/octave/fermi.m @ 665

Last change on this file since 665 was 665, checked in by dkearney, 14 years ago

Updates to Rappture::Utils::progress for all languages
removed the dependancy on Rappture.Units from within number.py, it should only depend on Rappture which will include Rappture.Units
added Rappture.Units as a module to load when people import Rappture in python.
added -V pbs variable to queue.py to include qsub environment variables in the submitted job.
updated setup.py.in to install Rappture.Utils
added progress bar to all app-fermi examples showing how to use the Rappture::Utils::progress function in all languages.
added destructor definitions to Node classes in src2/core

File size: 1.8 KB
Line 
1% ----------------------------------------------------------------------
2%  EXAMPLE: Fermi-Dirac function in Octave.
3%
4%  This script represents a newly written application with rappture
5%  bindings and interface.
6%
7% ======================================================================
8%  AUTHOR:  Michael McLennan, Purdue University
9%  AUTHOR:  Derrick Kearney, Purdue University
10%  Copyright (c) 2004-2005  Purdue Research Foundation
11%
12%  See the file "license.terms" for information on usage and
13%  redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
14% ======================================================================
15
16% get input file from the command line
17% open our xml input file.
18infile = sprintf("%s",argv(1,:));
19lib = rpLib(infile);
20
21% retrieve user specified data out of the input file
22% convert values to correct units.
23Ef = rpLibGetString(lib,"input.number(Ef).current");
24[Ef,err] = rpUnitsConvertDbl(Ef,"eV");
25T = rpLibGetString(lib,"input.number(temperature).current");
26[T,err] = rpUnitsConvertDbl(T,"K");
27
28% do fermi calculations (science)...
29kT = 8.61734e-5 * T;
30Emin = Ef - 10*kT;
31Emax = Ef + 10*kT;
32
33E = linspace(Emin,Emax,200);
34f = 1.0 ./ (1.0 + exp((E - Ef)/kT));
35
36% prepare out output section
37% label graphs
38rpLibPutString(lib,"output.curve(f12).about.label","Fermi-Dirac Factor",0);
39rpLibPutString(lib,"output.curve(f12).xaxis.label","Fermi-Dirac Factor",0);
40rpLibPutString(lib,"output.curve(f12).yaxis.label","Energy",0);
41rpLibPutString(lib,"output.curve(f12).yaxis.units","eV",0);
42
43for j=1:200
44  rpUtilsProgress((j/200*100),'Iterating');
45  putStr = sprintf('%12g  %12g\n', f(j), E(j));
46  % put the data into the xml file
47  rpLibPutString(lib,"output.curve(f12).component.xy",putStr,1);
48end
49
50% signal the end of processing
51rpLibResult(lib);
Note: See TracBrowser for help on using the repository browser.