NAME

scattbl - generate scattering table from random rough surfaces


SYNOPSIS

scattbl [OPTIONS]


DESCRIPTION

scattbl generates scattering distributions for random rough surfaces.

The output generated is a FITS binary table containing a double precision column, scat_np. The table consists scattering probability distribution scaled between [0,1] and sampled in 1/1000 step size.

See NOTES for information on memory usage, which can be quite large.

For info on the algorithm implemented by the code see SEE ALSO.


OPTIONS

The following options are supported:

degree int
Degree of the polynomial fitted for the power spectral density.

density double
Spectral density.

energy double
Energy in keV.

grazeangle double
Center graze angle (in arcminutes) for which to calculate scattering distributions. Note that usual values for HRMA shells 1, 3, 4, and 6 are 51.259, 41.268, 36.431, and 27.075.

nfft int
The number of Fourier transforms.

num_grazangle int
Number of graze angles for which to calculate reflectivity amplitude.

offset_grazangle double
Offset from grazeangle at which to start calculating reflectivity amplitudes.

output string
Output file name.

power int
The number of surface roughness data points, in units of 2**power.

section string
The section of the mirror. For the HRMA, values such as M, LA, LB, LC, LD, SA, SB, SC, SD, SE, or SF are likely.

seed int
Seed for the random number generator.

shell string
The shell. For the HRMA, values such as p1, p3, p4, p6, h1, h3, h4, or h6 are likely.

sroughness string
The surface roughness data file.

synchrotron string
The RDB synchroton optical constants data file.

help
Print brief usage information and exit.

usage
Print usage information and exit.

version
Print version and exit.


EXAMPLES

  scattbl                                   \
    --degree 9                              \
    --density 1                             \
    --energy 4.51                           \
    --grazeangle 51.259                     \
    --nfft 16                               \
    --num_grazeangle 101                    \
    --offset_grazeangle 5.0                 \
    --output junk-4.51.fits                 \
    --power 21                              \
    --section M                             \
    --seed 1                                \
    --shell p1                              \
    --sroughness hx_p1_M_2-21_s1.fits       \
    --synchrotron 065o_optconsts_merged.rdb


FILES

Surface roughness files should be FITS binary tables. The keywords SPATFREQ and SURFPOS are required in the header, they are doubles representing the spatial frequency of the data and the surface position increment of the data in the table repsectively. The table must contain two columns, height and tangent, both of which are doubles. These columns contain surface height and tangent respectively.


SEE ALSO

SPIE paper outlining the algorithm implemented by this code:

http://hea-www.harvard.edu/MST/simul/software/docs/pkg/scattbl/spie02.ps


NOTES

The program is very memory intensive, it requires a minimum of 2**nfft * 2**power * ( 8 / 1024 ) MByte of memore. The user is advised to run on a machine which exceeds the aforementioned amount of memory.


DEBUG

There is a debug option which allows the user to specify a ``wisdom'' file for the Fourier transform library to read and or write information to.

  --debug readwisdom=/tmp/g.wis --debug writewisdom=/tmp/g.wis

This is of use when comparing output as it removes any random variations that the underlying Fourier transform library introduces.