List of q-vector generators
CircularLatticeQVectors
Generates Q vectors on a plane perpendicular to the ‘axis’ vector.
Vectors are grouped into shells limited to the range of (q - width/2, q + width/2) around the shell centre q.
Only vectors commensurate with the reciprocal space lattice will be generated. If more lattice vectors than requested are available in the requested range for a shell, a subset of the vectors will be selected with the probability given as a Gaussian function with FWHM of width/2 and centred on the \(|q|\) which is the nominal centre of the shell.
\(|Q|\) values for which no valid vectors can be found are omitted in the output.
Inputs:
seed: IntegerConfigurator default=0
shells: RangeConfigurator default=(0.0, 5.0, 1.0)
n_samples: IntegerConfigurator default=50000
n_vectors: IntegerConfigurator default=100
width: FloatConfigurator default=1.0
force_equal_weights: BooleanConfigurator default=False
axis: VectorConfigurator default=[0, 0, 1]
CircularQVectors
Generates Q vectors as concentric circles on a plane.
Vectors will be generated as shells of vectors of similar lengths and random orientations on a plane perpendicular to the ‘axis’ vector.
The vector lengths in a single shell assume a normal distribution with the FWHM of ‘width’/2 and limited to the range of (q - width/2, q + width/2) around the shell centre defined by the ‘shells’ input.
Inputs:
seed: IntegerConfigurator default=0
shells: RangeConfigurator default=(0.0, 5.0, 1.0)
n_vectors: IntegerConfigurator default=50
width: FloatConfigurator default=1.0
axis: VectorConfigurator default=[0, 0, 1]
DispersionLatticeQVectors
Generates Q vectors along a line in the HKL units of the simulation box.
The input ‘start’ and ‘step’ vectors are expressed as HKL values of the crystal lattice defined by the simulation box. Every vector will be generated as \(\mathbf{k}_{start} + n\mathbf{k}_{step}\) for integer n from 0 to n_steps.
Inputs:
start: VectorConfigurator default=[0, 0, 0]
step: VectorConfigurator default=[1, 0, 0]
n_steps: IntegerConfigurator default=10
DispersionQVectors
Generates Q vectors along a path between two points.
As opposed to DispersionLatticeQVectors, the vectors will not necessarily correspond to integer HKL values.
Inputs:
q_start: VectorConfigurator default=[0, 0, 0]
q_end: VectorConfigurator default=[1, 0, 0]
q_step: FloatConfigurator default=0.1
GridQVectors
Generates vectors on a grid.
Vectors are generated from HKL values based on the definition of the unit cell.
As opposed to MillerIndicesQVectors, this generator will use ALL the vectors in the specified range, assigning each one of them to one of the shells.
The qstep parameter defines the size of the bin used for grouping vectors into shells based on their length.
Inputs:
hrange: RangeConfigurator default=(0, 8, 1)
krange: RangeConfigurator default=(0, 8, 1)
lrange: RangeConfigurator default=(0, 8, 1)
q_step: FloatConfigurator default=0.2
LinearLatticeQVectors
Generates vectors randomly on a straight line.
Only vectors commensurate with the reciprocal space lattice will be generated. If more lattice vectors than requested are available in the requested range for a shell, a subset of the vectors will be selected with the probability given as a Gaussian function with FWHM of width/2 and centred on the \(|q|\) which is the nominal centre of the shell.
\(|Q|\) values for which no valid vectors can be found are omitted in the output. Most calculations will produce one data point per \(|Q|\) by averaging the results over all vectors in the group, which is still called a shell.
Inputs:
seed: IntegerConfigurator default=0
shells: RangeConfigurator default=(0.0, 5.0, 1.0)
n_samples: IntegerConfigurator default=50000
n_vectors: IntegerConfigurator default=100
width: FloatConfigurator default=1.0
force_equal_weights: BooleanConfigurator default=False
axis: VectorConfigurator default=[1, 0, 0]
LinearQVectors
Generates vectors randomly on a straight line.
Most calculations will produce one data point for \(|Q|\) by averaging the results over all vectors in the group, which is still called a shell.
The vector lengths in a single shell assume a normal distribution with the FWHM of ‘width’/2 and limited to the range of (q - width/2, q + width/2) around the shell centre defined by the ‘shells’ input.
Inputs:
seed: IntegerConfigurator default=0
shells: RangeConfigurator default=(0.0, 5.0, 1.0)
n_vectors: IntegerConfigurator default=50
width: FloatConfigurator default=1.0
axis: VectorConfigurator default=[1, 0, 0]
MillerIndicesQVectors
Generates vectors on a grid.
Vectors are generated from HKL values based on the definition of the unit cell. They are then grouped into shells based on their length.
Inputs:
shells: RangeConfigurator default=(0.0, 5.0, 1.0)
width: FloatConfigurator default=1.0
h: RangeConfigurator default=(0, 8, 1)
k: RangeConfigurator default=(0, 8, 1)
l: RangeConfigurator default=(0, 8, 1)
SphericalLatticeQVectors
Generates randomly-selected lattice vectors grouped into spheres.
Only vectors commensurate with the reciprocal space lattice will be generated. If more lattice vectors than requested are available in the requested range for a shell, a subset of the vectors will be selected with the probability given as a Gaussian function with FWHM of width/2 and centred on the \(|q|\) which is the nominal centre of the shell.
\(|Q|\) values for which no valid vectors can be found are omitted in the output. Most calculations will produce one data point per \(|Q|\) by averaging the results over all vectors in the shell.
Inputs:
seed: IntegerConfigurator default=0
shells: RangeConfigurator default=(0.0, 5.0, 1.0)
n_samples: IntegerConfigurator default=50000
n_vectors: IntegerConfigurator default=100
force_equal_weights: BooleanConfigurator default=False
width: FloatConfigurator default=1.0
SphericalQVectors
Generates vectors randomly on a sphere.
Most calculations will produce one data point for \(|Q|\) by averaging the results over all vectors in the shell.
The vector lengths in a single shell assume a normal distribution with the FWHM of ‘width’/2 and limited to the range of (q - width/2, q + width/2) around the shell centre defined by the ‘shells’ input.
Inputs:
seed: IntegerConfigurator default=0
shells: RangeConfigurator default=(0.0, 5.0, 1.0)
n_vectors: IntegerConfigurator default=50
width: FloatConfigurator default=1.0