# Repulsion.m

From Spinach Documentation Wiki

Generates repulsion grids on a unit hypersphere.

## Syntax

[alphas,betas,gammas,weights]=repulsion(npoints,ndims,niter)

## Description

Strangely enough, for all the apparent simplicity of the generation procedure, these are probably the best grids for most practical solid state magnetic resonance purposes. A large number of pre-computed grids is stored in kernel/grids. See the paper by Bak and Nielsen (http://dx.doi.org/10.1006/jmre.1996.1087) to get further information on the algorithm involved.

## Arguments

npoints - number of points in the resulting spherical grid ndims - hypersphere dimension: 2 returns a single-angle (beta) grid, 3 returns a two-angle grid (alpha, beta), 4 returns a three-angle (alpha,beta,gam- ma) spherical grid niter - number of repulsion interations (simple clipped gradient descent at the moment)

## Returns

alphas - alpha Euler angles of the grid, in radians, zeros for single-angle grids betas - beta Euler angles of the grid, in radians gammas - gamma Euler angles of the grid, in radians, zeros for two-angle grids weights - point weights of the grid

## Examples

See kernel/grids directory for a long list of one-, two- and three angle REPULSION grids.

## Notes

Uniform weights are assigned at the moment, use shrewd.m function to generate optimal weights.

## See also

get_hull.m, grid_kron.m, grid_test.m, shrewd.m

*Version 1.10, authors: Ilya Kuprov*