source: trunk/examples/app-fermi/matlab/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.9 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-2007  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 out input file from the command line
17% invoke this script with the following command:
18% matlab -nodisplay -r infile=\'driver1234.xml\',fermi
19% the above command sets variable infile to the name 'driver1234.xml'
20
21% infile = 'driver31619.xml'
22
23% open our xml input file.
24lib = rpLib(infile);
25
26% retrieve user specified data out of the input file
27% convert values to correct units.
28Ef = rpLibGetString(lib,'input.number(Ef).current');
29[Ef,err] = rpUnitsConvertDbl(Ef,'eV');
30T = rpLibGetString(lib,'input.number(temperature).current');
31[T,err] = rpUnitsConvertDbl(T,'K');
32
33% do fermi calculations (science)...
34kT = 8.61734e-5 * T;
35Emin = Ef - 10*kT;
36Emax = Ef + 10*kT;
37
38E = linspace(Emin,Emax,200);
39f = 1.0 ./ (1.0 + exp((E - Ef)/kT));
40
41% prepare out output section
42% label graphs
43rpLibPutString(lib,'output.curve(f12).about.label','Fermi-Dirac Factor',0);
44rpLibPutString(lib,'output.curve(f12).xaxis.label','Fermi-Dirac Factor',0);
45rpLibPutString(lib,'output.curve(f12).yaxis.label','Energy',0);
46rpLibPutString(lib,'output.curve(f12).yaxis.units','eV',0);
47
48for j=1:200
49  rpUtilsProgress((j/200*100),'Iterating');
50  putStr = sprintf('%12g  %12g\n', f(j), E(j));
51  % put the data into the xml file
52  rpLibPutString(lib,'output.curve(f12).component.xy',putStr,1);
53end
54
55% signal the end of processing
56rpLibResult(lib);
57
58quit;
Note: See TracBrowser for help on using the repository browser.