2.6.1. prismatique.sample.S_matrix_k_xy_vectors

S_matrix_k_xy_vectors(sample_specification, probe_model_params=None, skip_validation_and_conversion=False)[source]

Determine the \(\mathbf{k}_{xy}\)-momentum vectors of the plane waves used to calculate the \(S\)-matrix \(S_{m_{x},m_{y}}\left(x,y\right)\).

See the documentation for the subpackage prismatique.stem for a discussion on \(S\)-matrices. As discussed therein, each pair \(\left(m_x, m_y\right)\) corresponds to a different \(\mathbf{k}_{xy}\)-momentum vector. In prismatic, each pair \(\left(m_x, m_y\right)\) is essentially mapped to a unique integer \(i\).

Parameters:
sample_specificationprismatique.sample.ModelParams | prismatique.sample.PotentialSliceSubsetIDs | prismatique.sample.SMatrixSubsetIDs | prismatique.sample.PotentialSliceAndSMatrixSubsetIDs

The simulation parameters specifying the sample model.

If sample_specification is of the type prismatique.sample.ModelParams, then sample_specifications specifies sample model parameters that are used to construct the model from scratch, i.e. the potential slices for each frozen phonon configuration subset are calculated from said model parameters. See the documentation for the classes prismatique.discretization.Params and prismatique.thermal.Params for discussions on potential slices and frozen phonon configuration subsets respectively. Note that of parameters stored in sample_specification, only the following are used:

  • sample_specification

    • atomic_coords_filename

    • unit_cell_tiling

    • discretization_params

      • sample_supercell_reduced_xy_dims_in_pixels

      • interpolation_factors

Otherwise, if sample_specification is an instance of the class prismatique.sample.PotentialSliceSubsetIDs, the class prismatique.sample.SMatrixSubsetIDs, or the class prismatique.sample.PotentialSliceAndSMatrixSubsetIDs, then sample_specification specifies a set of files, where each file stores either the pre-calculated potential slices or \(S\)-matrices for a frozen phonon configuration subset. See the documentation for the aforementioned classes for further discussions on specifying pre-calculated objects. See the documentation for the subpackage prismatique.stem for a discussion on \(S\)-matrices. Note that any \(S\)-matrices specified in sample_specification must be pre-calculated using the same convergence semiangle and mean beam energy as that specified by the model parameters of the probe probe_model_params below.

probe_model_paramsembeam.stem.probe.ModelParams | None, optional

The model parameters of the probe. See the documentation for the class embeam.stem.probe.ModelParams for a discussion on said parameters. If probe_model_params is set to None [i.e. the default value], then the parameter will be reassigned to the value embeam.stem.probe.ModelParams().

Note that of parameters stored in probe_model_params, only the following are used:

  • probe_model_params

    • convergence_semiangle

    • gun_model_params

      • mean_beam_energy

skip_validation_and_conversionbool, optional

If skip_validation_and_conversion is set to False, then validations and conversions are performed on the above parameters.

Otherwise, if skip_validation_and_conversion is set to True, no validations and conversions are performed on the above parameters. This option is desired primarily when the user wants to avoid potentially expensive validation and/or conversion operations.

Returns:
k_xy_vectorsarray_like (float, shape=(num_vectors, 2))

If we let num_vectors be the number of \(\mathbf{k}_{xy}\)-momentum vectors, then k_xy_vectors[i][0] and k_xy_vectors[i][1] are the \(x\)- and \(y\)-components of the i th \(\mathbf{k}_{xy}\)-momentum vector in units of 1/Å, where 0<=i<num_vectors.