QuasiParticleConfigurationInteraction

class QuasiParticleConfigurationInteraction(configuration, eigensolutions, number_of_particles=None, basis_state_indices=None, dielectric_constant=None, excitation_order=None, two_particle_integral_method=None)

A class to set up and solve a many-body body hamiltonian using a Configuration Interaction (CI) method on selected confined quasi-particle levels of a bulk (e.g., electron or hole states in a quantum dot).

Parameters:
  • configuration (BulkConfiguration) – The configuration for which the CI eigensolution should be calculated.

  • eigensolutions (Eigensolutions.) – The single-particle eigensolutions to be used as a basis for the Configuration Interaction method.

  • number_of_particles (int) – The number of particles to be included in the many-body problem. Note that for amounts larger than 2 the complexity explodes and the calculation might become too heavy.
    Default: 2

  • basis_state_indices (list of int) – A list of single particle state indices be used as basis for the CI method. The indices are referred to the lowest unoccupied state: 0 is the LUMO, +1 is the LUMO+1, -1 is the HOMO etc.
    Default: [0, 1]

  • dielectric_constant (float) – The dielectric constant of the material, used to include a screening in the two-particle Coulomb interaction. It should be equal to the high frequency dielectric constant of the material where the quasi-particle basis states are confined.
    Default: 1

  • excitation_order (float) – The maximum allowed excitation order in the CI expansion. 1 corresponds to single excitations (CIS), 2 to double excitations (CISD), and so on. If left unspecified, full-CI is performed.
    Default: Full-CI is performed.

  • two_particle_integral_method (TwoParticleCoulombInteractionFFTMethod | TwoParticleCoulombInteractionPointChargeMethod) – Select the method used to evaluate two particle Coulomb integrals.
    Default: TwoParticleCoulombInteractionFFTMethod.

basisStateIndices()
Returns:

the indices identifying the states used as quasi-particle basis, with the LUMO as reference for the index 0.

Return type:

list of int

dielectricConstant()
Returns:

the dielectric constant used to screen the two-particle Coulomb interaction.

Return type:

float

eigenvalues()
Returns:

the many-body eigenvalues, as absolute energies.

Return type:

PhysicalQuantity of type energy.

excitationOrder()
Returns:

the excitation order used in the CI expansion.

Return type:

int.

manyBodyProbabilityDensity(state_index, eigensolutions, density_mesh_cutoff=None)

Calculate the real space probability density associated to a many body state.

Parameters:
  • state_index (int) – The many-body eigenstate for which the probability density is calculated. The index follow the eigenvalue ordering, from lowest to highest.

  • eigensolutions (Eigensolutions) – The single-particle eigensolutions to be used as a basis for the Configuration Interaction method. Note that these must be consistent with the eigensolutions provided as input parameter in the object constructor.

  • density_mesh_cutoff (PhysicalQuantity of type energy | GridSampling | OptimizedFFTGridSampling) – The mesh cutoff to be used to determine the density grid sampling. The mesh cutoff must be a positive energy or a GridSampling object.
    Default: The density mesh cutoff set on the calculator.

metatext()
Returns:

The metatext of the object or None if no metatext is present.

Return type:

str | None

nlinfo()
Returns:

Structured information about the object.

Return type:

dict

nlprint(stream=None)

Print a string containing an ASCII table useful for plotting the AnalysisSpin object.

Parameters:

stream (python stream) – The stream the table should be written to.
Default: NLPrintLogger()

numberOfParticles()
Returns:

the number of particles in the many-body system.

Return type:

float

setMetatext(metatext)

Set a given metatext string on the object.

Parameters:

metatext (str | None) – The metatext string that should be set. A value of “None” can be given to remove the current metatext.

singleParticleEigenvalues()
Returns:

the single-particle eigenvalues of the selected basis states, as absolute energies.

Return type:

PhysicalQuantity of type energy.

twoParticleIntegrals()

Get the two-particle Coulomb interaction integrals that are required to set up the many-body Hamiltonian.

The return value is a map between four single particle state indices (a, b, c, d) and the two-particle spatial integrals:

\[(a,b|c,d) = \int \phi_a^{*}(\mathbf{r}_1) \phi_b(\mathbf{r}_1) V(\mathbf{r}_1 - \mathbf{r}_2) \phi_c^{*}(\mathbf{r}_2) \phi_d(\mathbf{r}_2) d\mathbf{r}_1 d\mathbf{r}_2\]

The indices go from 0 to N-1, where N is the number of single particle basis states utilized.

Returns:

A map between indices and the corresponding two-particle interaction integral value.

Return type:

dict

uniqueString()

Return a unique string representing the state of the object.