This page is a CGI interface to my program MAG_sl simulating x-ray
resonant specular reflection from magnetic multilayers with the account for
interface roughness or transition layers. In order to use this program please
read first the paper by S.Stepanov
and S.Sinha "X-ray resonant reflection from magnetic multilayers:
Recursion matrix algorithm", Phys. Rev. B, v.61, No 22,
p.15302-15311, (2000) on which it is based. In short, there is a resonant
increase at the absorption edges of some rare-earth and transition elements in the
electric multipole (e.g. quadrupole) part of x-ray scattering amplitude. In this
case the scattering amplitude becomes a tensor with the orientation dependent on
the orientation of the magnetic moment of respective atom. The x-ray scattering
caused by those additional contributions is called "resonant magnetic
scattering", although it is electric by nature. When all the magnetic
moments are oriented in the same direction, one can probe the magnetization
of the media (e.g. thin magnetic film or magnetic multilayer) with x-rays --
see Fig.1. The effect on x-ray scattering is the strongest when the magnetic
field is applied along the direction of x-ray incidence (X-axis) and the
incident x-rays are circularly polarized. In the other cases the effect may
still exist but be less measurable. Again, please find more details in
the paper and references
therein.
The MAG_sl software makes use of the same recursive matrix algorithm
(RMA) as other programs on this site: GID_sl,
TER_sl, and TRDS_sl.
Besides, all of these programs implement very similar input. Therefore, before
learning MAG_sl it might be helpful to practice with a simpler software like
TER_sl that simulates x-ray specular reflectivity
from multilayers with no account for magnetic resonance effects.
This short guide provides some explanations on the MAG_sl
data input and outlines the restrictions of this Web interface.
The MAG_sl program is executed on my office PC, that runs a Web
server under Windows operating system. Since this PC is shared by all of the
WEB users of my x-ray library, please, avoid overloading the server by
running multiple tasks at the same time.
To obtain the results from MAG_sl you need to fill out the input form
and click on the SUBMIT button. If your input is correct, the results will be
presented as a figure and a link to respective downloadable ZIP file that contains
all the data. Otherwise, a web page with respective error message will be
returned.
In case the calculation succeeds, the downloadable ZIP file will contain
the following ASCII files with the results of calculations:
- MAGxxxxx.INP - input file for the program generated
from the Web interface (substrate data, scan parameters, etc)
- MAGxxxxx.PRF - another input file for the program
generated from the Web interface (surface layer profile).
- MAGxxxxx.TBL - the table of calculated parameters
derived from INP and PRF files (dielectric susceptibilities,
etc.). The TBL file also contains the explanation of data
columns in the DAT file. Always check this
file to ensure that your input was treated as you
expected!
- MAGxxxxx.DAT - the calculated data (the reflectivity
curve, etc) in the x-y ASCII format.
- MAGxxxxx.PLT - the GNUplot program batch file which can be
used to generate plot from the DAT file.
The specification of substrate, x-rays, and scan parameters is pretty
straightforward and perhaps does not require any comments.
The specification of surface layer profile is implemented with a simple
script language. A typical syntax is:
; comments are allowed in any line, but should not contain special symbols like '"*?$!@%
period=15
t=10 code=GaAs w0=0.8 sigma=2
t=10 code=GaAs x=0.3 code2=AlAs x2=0.7 sigma=2
t=10 code=SiGe rho=0.9 sigma=2
t=10 x0=(5e-4,7e-6) tr=5
t=10 w0=.5 tr=4
t=10 w0=0.5
t=10
;
code=Fe t=35
code=Gd t=50 F11=(-0.22,9.35) F1T=(0.37,9.65) mshare=1 mvector=(1 0 0)
code=Gd t=50 F11=(-0.22,9.35) F1T=(0.37,9.65) mdensity=2.5 mvector=(1 0 0)
end period
Here:
- ";" and "!" are the comment symbols. The
lines starting with these symbols are ignored and when those symbols are
present somewhere in the middle of the line, everything to the right of them is
ignored too.
- "period=" and "end period" mark the
beginning and the end of a periodic group of layers. The maximum of two
enclosed periods is allowed.
- "t=10" is the layer thickness in Angstroms.
NOTE: this is the only mandatory parameter of
layer (i.e. it cannot be skipped). The other parameters, when not specified,
are assigned reasonable default values -- either zero (e.g. the rms roughness
height) or the same as in the substrate (e.g. the material code).
- "code=" is a code of material in the X0h database. Use this code for automatic
calculation of layers x0 (chi 0). For the reference of available
codes see the substrate code menu or the box at the right side of the
surface layers input field. Please, be advised that the codes are case
sensitive (while the script keywords are not).
Alternatively you can specify the code as a valid chemical formula and provide
the material density ("rho=").
If no code is specified, the substrate code is used by default.
- "x=", "code2=",
"x2=", "code3=" are the parameters to
specify composite materials and solid solutions. For example, a structure
like Ga0.3Al0.7As can be specified as: "code=GaAs
x=0.3 code2=AlAs", or even shorter: "x=0.3 code2=AlAs"
(provided that the substrate is GaAs). You can also specify
"x2=0.7", but this is redundant, because the program automatically
takes care of the sum of all "xN" being equal to one (e.g. the input
like "x2=0.8" in the above example would cause an error message).
Maximum of 4 codes are allowed per layer and all of them must correspond to
existing records in the X0h database.
- "x0=" is the layer x-ray susceptibility
chi0. This parameter, when specified, replaces the data given by
the X0h database.
NOTE-1: x0 comes from the dynamical diffraction theory. It is related
with the parameters delta and eta often used for reflectivity
as: x0=2*(delta+i*eta).
NOTE-2: When you specify the x0 parameter it is normally converted into:
x0 = (-|x0r|, |x0i|). This is because the x-ray server programs
use the exp(ikr) representation of plane waves for which one normally
expects x0r < 0. However, this does not cover some absorption edges
in the soft x-ray region where apparently x0r may change its sign. To
disable the default transformation, you can use the edge=1 flag in
combination with the "x0=..." input. In this case the x0r
data for this layer is used as entered.
- "w0=" is a Debye-Waller-like factor for x0. It may
be used to correct the x0 value provided by the X0H database:
x0=w0*x0
By default, this factor is equal to one. Unlike usual Debye-Waller factor, w0
can be greater than one, because it is simply one more way to specify x0.
- "sigma=" and "tr=" are the rms roughness
and the transition layer thickness at the upper layer interface, respectively,
expressed in Angstroms. You are not allowed to specify non-zero values for
both of these parameters for the same layer and the values should not exceed
the layer thickness. The calculations with "sigma" are much faster.
However, at sigma > ~5A they become inaccurate (the Nevot and Croce method
becomes inapplicable) and "tr"should be used instead (tr=2*sigma).
- "mshare=" and "mdensity=" are the share
of magnetic atoms (e.g. the number in the [0.:1.] range), and their density
in atoms/cm^3, respectively. Only one of the two can be specified at the same
time.
- "mvector=(x,y,z)" is parameter defining the
orientation of magnetic moments in the layer. The x,y,z coordinates are chosen
as follows: x along beam on the surface; z along the internal
normal to the surface, y perpendicular to the above two.
- "F10=", "F11=", "F1T=", are the
resonant scattering amplitudes renormalized with the (3*lambda)/(8*pi*r0)
modifier (r0 is the classical electron radius):
See Eq.(17)-(21) in the paper
for more details. For some of the magnetic resonances those amplitudes can be
found in the Ph. D. thesis by M.D.Hamrick (see Ref.[41] in the
paper). Unfortunately I am
not aware of any comprehensive tables for those amplitudes. One may consider
determining them experimentally.
Below is a practical example -- a profile for 15-period Gd/Fe multilayer
with 50 Angstroms of resonantly reflecting Gd and 35 Angstroms of non-resonant
Fe in each period. The magnetic momenta of all Gd atoms are assumed to be
aligned along the direction of incident beam (x-axis):
period=15
code=Gd t=50 F11=(-0.22,9.35) F1T=(0.37,9.65) mshare=1 mvector=(1 0 0)
code=Fe t=35
end period
For the rest of parameters you are suggested to follow the common sense. To
ensure that your input was correct, please verify respective listing file --
a file with the ".TBL" extension in the ZIPped archive
referred from the MAG_sl results screen.
To simplify understanding the MAG_sl you can start with several
templates listed below. They correspond to Figures 3 to 5 of the
paper respectively. All the
templates link to the same program and provide the same functionality.
They differ by preloaded data to demonstrate some possible applications of
MAG_sl.
Besides, when submitting the MAG_sl task, it is
possible to check the progress watching option. The progress watching is
obviously more comfortable, but it might not work with some old Web browsers.
Also, it is a bit slower because of putting an additional load on the network
and launching each 5 seconds a monitoring program on my computer. Welcome to
try both of the ways and choose the most convenient for your needs.
GET-Method Templates
This is an older, but better tested method. Generally it works very well except for
known problems with the IE browser & some firewalls when
the structure description exceeds 2K bytes (with some firewalls the restriction may be
even 1K bytes).
Here is a tool to retrieve the results of finished jobs if you know the job ID.
Some possible uses of this tool are:
- You started a job with the progress watch option; the server returned
the job ID and began reporting the progress. However, you found that the
calculations would take too long. Then, you may break the connection and retrieve
the data later on with this tool. If the calculations are not finished, the
tool will resume the watch process.
- The data are accidentally deleted from your client computer and you
want another copy of them. In this case you should be aware that results are
usually stored on the server for about one day after respective job is finished.