# ProjectionGenerator¶

class ProjectionGenerator(spin=None, atoms=None, l_quantum_numbers=None, m_quantum_numbers=None)

Initialize the class by defining which components to iterate over when generating the list of projections.

Parameters: spin (None | UpDownProjection | XYZProjection | False) – Determine whether to iterate over spin components when generating the list of projections. This can be done either on the up/down components or on the x/y/z Pauli spin matrices. If False, the spin projection will be Spin.Sum. Default: False atoms (None | SitesProjection | TagsProjection | ElementsProjection | False) – Determine whether to iterate over atoms when generating the list of projections. This can be done either by individual sites, tags present in the configuration, or element types. Default: False l_quantum_numbers (None | bool) – Determine whether to iterate over shells when generating the list of projections. Default: False m_quantum_numbers (None | bool) – Determine whether to iterate over orbitals when generating the list of projections. Default: False
generate(configuration)

Generate and return the list of projections for a given configuration.

Parameters: configuration (BulkConfiguration | MoleculeConfiguration) – The bulk configuration with an attached calculator defining the basis for which to generate the list of projections. The list of projections. list of Projection