====== Spectra ====== ### The Spectra object stores complex spectra as created by the functions CreateSpectra or CreateResonantSpectra. The spectra are stored as complex functions on a discrete mesh. The object furthermore contains several additional information such as the integral. ### ===== Shared code for examples ===== ### In order to run the examples for the different functions, properties and methods of the object spectra we define a set of functions specific to spectra. These functions must be loaded before any of the examples provided later on will work. The code creates three spectra stored in the variable //G// - a spectrum with 9 peaks at energy 1 to 9 in steps of 1 and intensity 0.12 to 0.92. - a spectrum with 4 peaks at energy 2 to 8 in steps of 2 and intensity 0.22 to 0.82. - a spectrum with 5 peaks at energy 1 to 9 in steps of 2 and intensity 0.12 to 0.92. The actual code in Quanty is: ### NF = 9 NB = 0 T1 = NewOperator("Create", NF, {0,1,2,3,4,5,6,7,8},{0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9}) T2 = NewOperator("Create", NF, {0,1,2,3,4,5,6,7,8},{0.0,0.2,0.0,0.4,0.0,0.6,0.0,0.8,0.0}) T3 = NewOperator("Create", NF, {0,1,2,3,4,5,6,7,8},{0.1,0.0,0.3,0.0,0.5,0.0,0.7,0.0,0.9}) H = NewOperator("Number", NF, {0,1,2,3,4,5,6,7,8}, {0,1,2,3,4,5,6,7,8}, {1,2,3,4,5,6,7,8,9}) psi = NewWavefunction(NF,NB,{{"000000000",1}}) G = CreateSpectra(H, {T1,T2,T3}, psi, {{"Emin",-1}, {"Emax",11}, {"Gamma",0.1}}) gnuplotHead = [[ set autoscale set xtic auto set ytic auto set style line 1 lt 1 lw 1 lc rgb "#000000" set style line 2 lt 1 lw 1 lc rgb "#FF0000" set style line 3 lt 1 lw 1 lc rgb "#00FF00" set style line 4 lt 1 lw 1 lc rgb "#0000FF" set style line 5 lt 1 lw 3 lc rgb "#808080" set style line 6 lt 1 lw 3 lc rgb "#00FFFF" set style line 7 lt 1 lw 3 lc rgb "#FF00FF" set style line 8 lt 1 lw 3 lc rgb "#FFFF00" set xlabel "Energy (arb. units)" font "Times-Roman,12" set ylabel "Intensity (arb. units)" font "Times-Roman,12" set size 1.0, 0.3 set terminal postscript portrait enhanced color "Times-Roman" 8 ]] ### The code above does not create output. We can save the spectra //G// to file and use gnuplot to plot the spectra with the example below. ### dofile("definitions.Quanty") G.Print({{"file","Spectra.dat"}}) gnuplotScript = gnuplotHead .. [[ set output "Spectra.ps" plot "Spectra.dat" using 1:(-$3 ) title 'T1' with lines ls 1,\ "Spectra.dat" using 1:(-$5+4) title 'T2' with lines ls 2,\ "Spectra.dat" using 1:(-$7+8) title 'T3' with lines ls 3 ]] file = io.open("Spectra.gnuplot", "w") file:write(gnuplotScript) file:close() -- call gnuplot to execute the script os.execute("gnuplot Spectra.gnuplot") os.execute("convert -density 1024 Spectra.ps -resize 1024 Spectra.png") ### The resulting picture is: ### {{:documentation:language_reference:objects:spectra:spectra.png?nolink |}} ===== Table of contents ===== {{indexmenu>.#2}}