source: trunk/examples/app-fermi/matlab/uncompiled/fermi.m @ 1222

Last change on this file since 1222 was 1222, checked in by dkearney, 16 years ago

moving compiled matlab back to its home in the compiled directory. adding
uncompiled matlab back to repository, but keeping it in the uncompiled dir.
currently only uncompiled matlab is installed. when the compiled version is
fixed, we can add it back to being installed. one thing we will need to change
in run_app.patch is to use the correct extension, right now we hard code it to
glnx86 but on 64bit machines it should be glnxa64. we used to have a MEX_ARCH
flag in configure. it should be resurrected and used if matlab cannot tell us
the correct extension.

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.