quri_parts.chem.mol.models module#

class quri_parts.chem.mol.models.OrbitalType(value)#

Bases: Enum

Type of orbital.

CORE = 1#

core orbital.

ACTIVE = 2#

active orbital.

VIRTUAL = 3#

virtual orbital.

class quri_parts.chem.mol.models.ActiveSpace(n_active_ele: int, n_active_orb: int, active_orbs_indices: Sequence[int] | None = None)#

Bases: object

An immutable (frozen) dataclass representing a active space.

n_active_ele: int#

number of active electrons.

n_active_orb: int#

number of active orbitals.

active_orbs_indices: Sequence[int] | None = None#

sequence of spatial orbital indices of the active orbitals.

quri_parts.chem.mol.models.cas(n_active_ele: int, n_active_orb: int, active_orbs_indices: Sequence[int] | None = None) ActiveSpace#

Convenient function for constructing the active space.

class quri_parts.chem.mol.models.MolecularOrbitals(*args, **kwargs)#

Bases: Protocol

Interface protocol for a data of the molecule.

abstract property n_electron: int#

Returns the number of electrons.

abstract property spin: int#

Returns the total spin of the electrons.

Note

We follow the quantum chemistry convention where:

\[N_{\alpha} - N_{\beta} = 2S\]

and spin = 2S.

abstract property n_spatial_orb: int#

Returns the number of spatial orbitals.

abstract property mo_coeff: ndarray[Any, dtype[complex128]]#

Returns molecular orbital coefficients.

class quri_parts.chem.mol.models.ActiveSpaceMolecularOrbitals(mo: MolecularOrbitals, active_space: ActiveSpace)#

Bases: MolecularOrbitals

Represents a data of the active space for the molecule.

Parameters:
property n_electron: int#

Returns a number of electrons.

property spin: int#

Returns the total spin of the electrons.

property n_active_ele: int#

Returns the number of active electrons.

property n_core_ele: int#

Returns the number of core electrons.

property n_ele_alpha: int#

Return the number of spin up electrons.

property n_ele_beta: int#

Return the number of spin down electrons.

property n_spatial_orb: int#

Returns the number of spatial orbitals.

property n_active_orb: int#

Returns the number of active orbitals.

property n_core_orb: int#

Returns the number of core orbitals.

property n_vir_orb: int#

Returns the number of virtual orbitals.

property mo_coeff: ndarray[Any, dtype[complex128]]#

Returns molecular orbital coefficients.

get_core_and_active_orb() tuple[Sequence[int], Sequence[int]]#

Returns a set of core and active orbitals.

The output orbitals are represented as the spatial orbital.

orb_type(mo_index: int) OrbitalType#

Returns a type of the given orbital index.

Parameters:

mo_index – Orbital index.

class quri_parts.chem.mol.models.AO1eInt(*args, **kwargs)#

Bases: Protocol

Interface protocol for an atomic orbital one-electron integral.

abstract property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

abstract to_mo1int(mo_coeff: ndarray[Any, dtype[complex128]]) SpinMO1eInt#

This method converts an atomic orbital one-electron integral into the molecular orbital one-electron integral.

Parameters:

mo_coeff – molecular orbital coefficients.

class quri_parts.chem.mol.models.AO2eInt(*args, **kwargs)#

Bases: Protocol

Interface protocol for an atomic orbital two-electron integral.

abstract property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

abstract to_mo2int(mo_coeff: ndarray[Any, dtype[complex128]]) SpinMO2eInt#

This method converts an atomic orbital two-electron integral into the molecular orbital two-electron integral.

Parameters:

mo_coeff – molecular orbital coefficients.

class quri_parts.chem.mol.models.AOeIntSet(*args, **kwargs)#

Bases: Protocol

AOeIntSet holds a constant and the atomic orbital electron integrals.

constant: float#

constant.

ao_1e_int: AO1eInt#

atomic orbital one-electron integral AO1eInt.

ao_2e_int: AO2eInt#

atomic orbital two-electron integral AO2eInt.

to_full_space_mo_int(mo: MolecularOrbitals) SpinMOeIntSet#

Compute the full space spin mo integral.

to_active_space_mo_int(active_space_mo: ActiveSpaceMolecularOrbitals) SpinMOeIntSet#

Compute the active space spin mo integral.

class quri_parts.chem.mol.models.SpatialMO1eInt(*args, **kwargs)#

Bases: Protocol

Interface protocol for a molecular orbital one-electron integral.

abstract property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

class quri_parts.chem.mol.models.SpatialMO2eInt(*args, **kwargs)#

Bases: Protocol

Interface protocol for a molecular orbital two-electron integral.

abstract property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

class quri_parts.chem.mol.models.SpatialMO1eIntArray(array: ndarray[Any, dtype[complex128]])#

Bases: SpatialMO1eInt

A class of a molecular orbital one-electron integral.

This interface has an integral as numpy ndarray.

property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

class quri_parts.chem.mol.models.SpatialMO2eIntArray(array: ndarray[Any, dtype[complex128]])#

Bases: SpatialMO2eInt

A class of a molecular orbital two-electron integral.

This interface has an integral as numpy ndarray.

property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

class quri_parts.chem.mol.models.SpatialMOeIntSet(const: float, mo_1e_int: SpatialMO1eInt, mo_2e_int: SpatialMO2eInt)#

Bases: NamedTuple

SpatialMOeIntSet holds a constant and a set of molecular orbital electron integral.

const: float#

constant.

mo_1e_int: SpatialMO1eInt#

molecular orbital one-electron integral.

mo_2e_int: SpatialMO2eInt#

molecular orbital two-electron integral.

class quri_parts.chem.mol.models.SpinMO1eInt(*args, **kwargs)#

Bases: Protocol

Interface protocol for a molecular spin orbital one-electron integral.

abstract property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

class quri_parts.chem.mol.models.SpinMO2eInt(*args, **kwargs)#

Bases: Protocol

Interface protocol for a molecular spin orbital two-electron integral.

abstract property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

class quri_parts.chem.mol.models.SpinMO1eIntArray(array: ndarray[Any, dtype[complex128]])#

Bases: SpinMO1eInt

Stores the array of the 1-electron integrals.

property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

class quri_parts.chem.mol.models.SpinMO2eIntArray(array: ndarray[Any, dtype[complex128]])#

Bases: SpinMO2eInt

Stores the array of the 2-electron integrals.

property array: ndarray[Any, dtype[complex128]]#

Returns integral as numpy ndarray.

class quri_parts.chem.mol.models.SpinMOeIntSet(const: float, mo_1e_int: SpinMO1eInt, mo_2e_int: SpinMO2eInt)#

Bases: NamedTuple

SpinMOeIntSet holds a constant and a set of molecular orbital electron integral.

const: float#

constant.

mo_1e_int: SpinMO1eInt#

spin molecular orbital one-electron integral.

mo_2e_int: SpinMO2eInt#

spin molecular orbital two-electron integral.