generate_n_vectors

gala.dynamics.generate_n_vectors(N_max, dx=1, dy=1, dz=1, half_lattice=True)[source]

Generate integer vectors, \(\boldsymbol{n}\), with \(|\boldsymbol{n}| < N_{\rm max}\).

If half_lattice=True, only return half of the three-dimensional lattice. If the set N = {(i,j,k)} defines the lattice, we restrict to the cases such that (k > 0), (k = 0, j > 0), and (k = 0, j = 0, i > 0).

Todo

Return shape should be (3,N) to be consistent.

Parameters:

N_max : int

Maximum norm of the integer vector.

dx : int

Step size in x direction. Set to 1 for odd and even terms, set to 2 for just even terms.

dy : int

Step size in y direction. Set to 1 for odd and even terms, set to 2 for just even terms.

dz : int

Step size in z direction. Set to 1 for odd and even terms, set to 2 for just even terms.

half_lattice : bool (optional)

Only return half of the 3D lattice.

Returns:

vecs : numpy.ndarray

A 2D array of integers with \(|\boldsymbol{n}| < N_{\rm max}\) with shape (N,3).