User Tools

Site Tools


documentation:script_examples

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
documentation:script_examples [2012/10/04 02:21]
macke
documentation:script_examples [2013/04/03 22:21] (current)
Line 1: Line 1:
 +==== Add Lorentzian to the refractive index ====
  
 +<​code>​
 +
 +-- energy is a predefined variable
 +e = energy
 +
 +-- Ni L2 
 +alpha1 = 85000.2;
 +beta1 = 2.97885;
 +e01 = 870.5;
 +
 +-- Ni L3
 +alpha2 ​         = 26162.2;
 +beta2           = 0.853558;
 +e02             = 852.216;
 +
 +-- calculate classical lorentzians
 +del1 = alpha1 * (e*e - e01*e01) / ((e01*e01 - e*e)*(e01*e01 - e*e) + beta1*beta1 * e*e);
 +bet1 = alpha1 * beta1*e ​        / ((e01*e01 - e*e)*(e01*e01 - e*e) + beta1*beta1 * e*e);
 +                        ​
 +del2 = alpha2 * (e*e - e02*e02) / ((e02*e02 - e*e)*(e02*e02 - e*e) + beta2*beta2 * e*e);
 +bet2 = alpha2 * beta2*e ​        / ((e02*e02 - e*e)*(e02*e02 - e*e) + beta2*beta2 * e*e);
 +
 +-- subtract current lorentzian in the substrate and add a new one with a new amplitude par[0]
 +delta[0] = delta[0] - del1 + del1*par[0];​
 +beta[0] ​ = beta[0] ​ - bet1 + bet1*par[0];​
 +
 +delta[0] = delta[0] - del2 + del2*par[1];​
 +beta[0] ​ = beta[0] ​ - bet2 + bet2*par[1];​
 +
 +</​code>​
 +
 +
 +==== Special conditions for the element specific mode====
 +
 +Sample is PrNiO3 on LSAT
 +
 +<​code>​
 +
 +-- roughness of the interface between substrate and first layer should be the same for each element. ​
 +s = La:​getsigma(0); ​         ​
 +Sr:​setsigma(0,​s);​
 +Al:​setsigma(0,​s);​
 +Ta:​setsigma(0,​s);​
 +Ni:​setsigma(0,​s);​
 +Pr:​setsigma(0,​s);​
 +O:​setsigma(0,​s);​
 +
 +-- thickness should be the same for the first layer. Fit only Ni.
 +s = Ni:​getthickness(1); ​         ​
 +Pr:​setthickness(1,​ s);
 +O:​setthickness(1,​ s);
 +</​code>​
 +
 +==== Calculate reflectivities for an animation ​ ====
 +
 +This code was used to get an animation for a talk. The code must be copied and executed in the "​default"​ tab.
 +Beta of one layer is changed with a sinus function. The output is written to the debug window. This data can be used e.g. in gnuplot.
 +
 +<​code>​
 +betatemp = beta[0]
 +for j=0,50,1 do
 +  beta[0] = betatemp + math.sin(j / 50. * 2. * 3.141)*betatemp*0.5;​
 +  CalculateReflectivity()
 +  for i=0,299,1 do
 +    write(solution_qz[i],​ " ", solution_R[i]);​
 +  end
 +  write(""​);​
 +end
 +beta[0] = betatemp;
 +
 +</​code>​
documentation/script_examples.txt ยท Last modified: 2013/04/03 22:21 (external edit)