Appendix I: powder grids

From Spinach Documentation Wiki
Jump to: navigation, search

Orientation averaging in Spinach is implemented using spherical grids parameterised by Euler angles. Context functions (singlerot.m, powder.m, etc.) load these grids, rotate the spin system and supply the corresponding Hamiltonians and other parameters to the pulse sequence.

Unless you have a good reason to use something else, two-angle REPULSION grids are recommended for all practical purposes.

Two-angle icosahedral grids (beta, gamma)

These grids are obtained by sequential subdivision of an icosahedron.

  parameters.grid=
        'icos_2ang_12pts'     -   12-point icosahedral grid
        'icos_2ang_42pts'     -   42-point icosahedral grid
        'icos_2ang_162pts'    -   162-point icosahedral grid
        'icos_2ang_642pts'    -   642-point icosahedral grid
        'icos_2ang_2562pts'   -   2562-point icosahedral grid
        'icos_2ang_10242pts'  -   10242-point icosahedral grid
        'icos_2ang_40962pts'  -   40962-point icosahedral grid
        'icos_2ang_163842pts' -   163842-point icosahedral grid

One-angle Lebedev grids (beta)

These grids are designed to integrate Legendre polynomials of cos(beta) with machine precision accuracy up to the rank specified. The accuracy degrades abruptly and significantly after that rank. These grids should be only be used for systems with axial symmetry, where the symmetry axis of the input orientation is aligned along the Z direction of the laboratory frame.

  parameters.grid=
        'leb_1ang_rank_3'    -    rank 3 Lebedev grid (2 points)
        'leb_1ang_rank_7'    -    rank 7 Lebedev grid (4 points)
        'leb_1ang_rank_15'   -    rank 15 Lebedev grid (8 points)
        'leb_1ang_rank_31'   -    rank 31 Lebedev grid (16 points)
        'leb_1ang_rank_63'   -    rank 63 Lebedev grid (32 points)
        'leb_1ang_rank_127'  -    rank 127 Lebedev grid (64 points)
        'leb_1ang_rank_255'  -    rank 255 Lebedev grid (128 points)
        'leb_1ang_rank_511'  -    rank 511 Lebedev grid (256 points)
        'leb_1ang_rank_1023' -    rank 1023 Lebedev grid (512 points)
        'leb_1ang_rank_2047' -    rank 2047 Lebedev grid (1024 points)
        'leb_1ang_rank_4095' -    rank 4095 Lebedev grid (2048 points)
        'leb_1ang_rank_8191' -    rank 8191 Lebedev grid (4096 points)

Two-angle Lebedev grids (beta, gamma)

These grids are designed to integrate spherical harmonics with machine precision accuracy up to the rank specified. The accuracy degrades abruptly and significantly after that rank.

  parameters.grid=
        'leb_2ang_rank_5'    -    rank 5 Lebedev grid (14 points)
        'leb_2ang_rank_11'   -    rank 11 Lebedev grid (50 points)
        'leb_2ang_rank_17'   -    rank 17 Lebedev grid (110 points)
        'leb_2ang_rank_23'   -    rank 23 Lebedev grid (194 points)
        'leb_2ang_rank_29'   -    rank 29 Lebedev grid (302 points)
        'leb_2ang_rank_35'   -    rank 35 Lebedev grid (434 points)
        'leb_2ang_rank_41'   -    rank 41 Lebedev grid (590 points)
        'leb_2ang_rank_47'   -    rank 47 Lebedev grid (770 points)
        'leb_2ang_rank_53'   -    rank 53 Lebedev grid (974 points)
        'leb_2ang_rank_59'   -    rank 59 Lebedev grid (1202 points)
        'leb_2ang_rank_65'   -    rank 65 Lebedev grid (1454 points)
        'leb_2ang_rank_71'   -    rank 71 Lebedev grid (1730 points)
        'leb_2ang_rank_77'   -    rank 77 Lebedev grid (2030 points)
        'leb_2ang_rank_83'   -    rank 83 Lebedev grid (2354 points)
        'leb_2ang_rank_89'   -    rank 89 Lebedev grid (2702 points)
        'leb_2ang_rank_95'   -    rank 95 Lebedev grid (3074 points)
        'leb_2ang_rank_101'  -    rank 101 Lebedev grid (3470 points)
        'leb_2ang_rank_107'  -    rank 107 Lebedev grid (3890 points)
        'leb_2ang_rank_113'  -    rank 113 Lebedev grid (4334 points)
        'leb_2ang_rank_119'  -    rank 119 Lebedev grid (4802 points)
        'leb_2ang_rank_125'  -    rank 125 Lebedev grid (5294 points)
        'leb_2ang_rank_131'  -    rank 131 Lebedev grid (5810 points)

Three-angle Lebedev grids (alpha, beta, gamma)

These grids are designed to integrate Wigner D-matrix elements with machine precision accuracy up to the rank specified. The accuracy degrades abruptly and significantly after that rank. Three-angle grids are expensive and rarely necessary: two-angle ones are sufficient for both static and spinning powders - integration over the third angle is handled in both singlerot.m and doublerot.m by performing rotor phase averaging.

  parameters.grid=
        'leb_3ang_rank_5'    -    rank 5 Lebedev grid (84 points)
        'leb_3ang_rank_11'   -    rank 11 Lebedev grid (600 points)
        'leb_3ang_rank_17'   -    rank 17 Lebedev grid (1980 points)
        'leb_3ang_rank_23'   -    rank 23 Lebedev grid (4656 points)
        'leb_3ang_rank_29'   -    rank 29 Lebedev grid (9060 points)
        'leb_3ang_rank_35'   -    rank 35 Lebedev grid (15624 points)
        'leb_3ang_rank_41'   -    rank 41 Lebedev grid (24780 points)
        'leb_3ang_rank_47'   -    rank 47 Lebedev grid (36960 points)
        'leb_3ang_rank_53'   -    rank 53 Lebedev grid (52596 points)
        'leb_3ang_rank_59'   -    rank 59 Lebedev grid (72120 points)
        'leb_3ang_rank_65'   -    rank 65 Lebedev grid (95964 points)
        'leb_3ang_rank_71'   -    rank 71 Lebedev grid (124560 points)
        'leb_3ang_rank_77'   -    rank 77 Lebedev grid (158340 points)
        'leb_3ang_rank_83'   -    rank 83 Lebedev grid (197736 points)
        'leb_3ang_rank_89'   -    rank 89 Lebedev grid (243180 points)
        'leb_3ang_rank_95'   -    rank 95 Lebedev grid (295104 points)
        'leb_3ang_rank_101'  -    rank 101 Lebedev grid (353940 points)
        'leb_3ang_rank_107'  -    rank 107 Lebedev grid (420120 points)
        'leb_3ang_rank_113'  -    rank 113 Lebedev grid (494076 points)
        'leb_3ang_rank_119'  -    rank 119 Lebedev grid (576240 points)
        'leb_3ang_rank_125'  -    rank 125 Lebedev grid (667044 points)
        'leb_3ang_rank_131'  -    rank 131 Lebedev grid (766920 points)

One-angle REPULSION grids (beta)

These are simply equispaced points on a circle with sinusoidal weights. These grids should be only be used for systems with axial symmetry, where the symmetry axis of the input orientation is aligned along the Z direction of the laboratory frame.

  parameters.grid=
        'rep_1ang_100pts'    -    REPULSION grid, 100 points
        'rep_1ang_200pts'    -    REPULSION grid, 200 points
        'rep_1ang_400pts'    -    REPULSION grid, 400 points
        'rep_1ang_800pts'    -    REPULSION grid, 800 points
        'rep_1ang_1600pts'   -    REPULSION grid, 1600 points
        'rep_1ang_3200pts'   -    REPULSION grid, 3200 points
        'rep_1ang_6400pts'   -    REPULSION grid, 6400 points

Two-angle REPULSION grids (beta, gamma)

These are simply uniformly spaced points on a sphere with equal weights, obtained by populating the surface of the sphere randomly with points and minimizing their overall "Coulomb repulsion" energy. Hemisphere and octant grids are recommended for systems that have the corresponding symmetries.

  parameters.grid=
        'rep_2ang_100pts_sph'    -    REPULSION grid, 100 points, full sphere
        'rep_2ang_200pts_sph'    -    REPULSION grid, 200 points, full sphere
        'rep_2ang_400pts_sph'    -    REPULSION grid, 400 points, full sphere
        'rep_2ang_800pts_sph'    -    REPULSION grid, 800 points, full sphere
        'rep_2ang_1600pts_sph'   -    REPULSION grid, 1600 points, full sphere
        'rep_2ang_3200pts_sph'   -    REPULSION grid, 3200 points, full sphere
        'rep_2ang_6400pts_sph'   -    REPULSION grid, 6400 points, full sphere
        'rep_2ang_100pts_hem'    -    REPULSION grid, 100 points, upper hemisphere (50 points)
        'rep_2ang_200pts_hem'    -    REPULSION grid, 200 points, upper hemisphere (100 points)
        'rep_2ang_400pts_hem'    -    REPULSION grid, 400 points, upper hemisphere (200 points)
        'rep_2ang_800pts_hem'    -    REPULSION grid, 800 points, upper hemisphere (400 points)
        'rep_2ang_1600pts_hem'   -    REPULSION grid, 1600 points, upper hemisphere (800 points)
        'rep_2ang_3200pts_hem'   -    REPULSION grid, 3200 points, upper hemisphere (1600 points)
        'rep_2ang_6400pts_hem'   -    REPULSION grid, 6400 points, upper hemisphere (3200 points)
        'rep_2ang_100pts_oct'    -    REPULSION grid, 100 points, first octant (12 points)
        'rep_2ang_200pts_oct'    -    REPULSION grid, 200 points, first octant (25 points)
        'rep_2ang_400pts_oct'    -    REPULSION grid, 400 points, first octant (50 points)
        'rep_2ang_800pts_oct'    -    REPULSION grid, 800 points, first octant (100 points)
        'rep_2ang_1600pts_oct'   -    REPULSION grid, 1600 points, first octant (200 points)
        'rep_2ang_3200pts_oct'   -    REPULSION grid, 3200 points, first octant (400 points)
        'rep_2ang_6400pts_oct'   -    REPULSION grid, 6400 points, first octant (800 points)

Three-angle REPULSION grids (alpha, beta, gamma)

These are simply uniformly spaced points on a four-dimensional hypersphere with equal weights, obtained by populating the surface of the hypersphere randomly with points and minimizing their overall "Coulomb repulsion" energy. Three-angle grids are expensive and rarely necessary: two-angle ones are sufficient for both static and spinning powders - integration over the third angle is handled in both singlerot.m and doublerot.m by performing rotor phase averaging.

  parameters.grid=
        'rep_3ang_100pts'    -    REPULSION grid, 100 points
        'rep_3ang_200pts'    -    REPULSION grid, 200 points
        'rep_3ang_400pts'    -    REPULSION grid, 400 points
        'rep_3ang_800pts'    -    REPULSION grid, 800 points
        'rep_3ang_1600pts'   -    REPULSION grid, 1600 points
        'rep_3ang_3200pts'   -    REPULSION grid, 3200 points
        'rep_3ang_6400pts'   -    REPULSION grid, 6400 points

Single crystal

This is a single orientation "grid" that simply leaves the spin system at its input orientation.

  parameters.grid='single_crystal'

See also

gaussleg.m, get_hull.m, grid_kron.m, grid_test.m, repulsion.m, shrewd.m


Version 2.2, authors: Ilya Kuprov, Malcolm Levitt, Hamid Khan