Generates spherical grids including solid angles.
vecs = sphgrid(Symmetry,nKnots) [vecs,Weights] = sphgrid(Symmetry,nKnots,'c') [phi,theta] = sphgrid(Symmetry,nKnots) [phi,theta,Weights] = sphgrid(Symmetry,nKnots)
sphgrid
generates triangular grids of orientations over parts of
the unit sphere and returns the grid knots and the solid angle of the
Voronoi cells associated with the knots (orientations).
Symmetry
specifies the symmetry for which the grid is to be
generated. The higher the symmetry, the smaller can the needed sphere
surface be, since rotational and reflectional symmetry makes parts of
the surface redundant for EPR calculations.
Since all spectra in EPR are invariant with respect to inversion of
the system, only centrosymmetric point groups are supported. For each
point group, sphgrid
returns a grid only over its unique surface.
The following table lists the possible values for Symmetry
together with the unique surface boundaries.
Note that some unique surfaces have open φ borders. This is
treated correctly by sphgrid
. There are never knots on open
borders.
nKnots
determines the number of knots on the quarter meridian
θ = [0, π/2], φ=0. The number of knots along the equator
depends on the range of φ. Roughly, nKnots
are taken for
each quarter of the equator.
vecs
is a 3xn array containing the orientations as column
vectors. phi
and theta
are the polar angles in
radians. Weights
is a vector giving the solid angle of the
surface patch that can be attributed to each knot, i.e. the
(spherical) area of the Voronoi cell. The sum of all weight is
normalised to 4π.
A three-point grid over an octant gives
[phi,theta,W] = sphgrid('D2h',4,'c'); [phi; theta]*180/pi, W
ans = Columns 1 through 6 0 0 90.0000 0 45.0000 90.0000 0 30.0000 30.0000 60.0000 60.0000 60.0000 Columns 7 through 10 0 30.0000 60.0000 90.0000 90.0000 90.0000 90.0000 90.0000 W = Columns 1 through 6 0.4282 1.6262 1.6262 1.4083 2.8167 1.4083 Columns 7 through 10 0.5421 1.0841 1.0841 0.5421
and hence really the ten knots expected for a triangular grid. The weights of knots on the unique surface boundary are smaller than those of knots within the surface.
To plot a spherical grid over the upper hemisphere, use
nKnots = 10; v = sphgrid('Ci',nKnots); tri = sphtri('Ci',nKnots); trisurf(tri,v(1,:),v(2,:),v(3,:));