Utilities Module
The utilities module contains helper functions and utility classes.
Constants
- class qepsilon.utilities.Constants[source]
Bases:
objectClass whose members are fundamental constants.
Inner Unit:
Length: \(\mu m\)
Time: \(\mu s\)
Energy: \(\hbar \times \text{MHz}\)
- hbar_MHz = 1.0
- hbar_Hz = 1e-06
- eV = 1519267447.9961274
- meV = 1519267.4479961274
- Ry = 20670686669.19867
- mRy = 20670686.66919867
- Hartree = 41341373338.36848
- Joule = 9.482521450074861e+27
- amu_cc = 1.4151886697821243e+18
- kb = 130920.29413420703
- speed_of_light = 299792458
- amu = 15.746097527595264
- epsilon0 = 3.637509257036412e-08
- elementary_charge = 1.0
- cm = 10000
- mm = 1000
- um = 1.0
- nm = 0.001
- Angstrom = 0.0001
- bohr_radius = 5.2917721092e-05
- ms = 1000
- us = 1
- ns = 0.001
- ps = 1e-06
- fs = 1e-09
- class qepsilon.utilities.Constants_Metal[source]
Bases:
objectClass whose members are fundamental constants.
Inner Unit:
Length: \(\text{pm}\)
Time: \(\text{ps}\)
Energy: \(\hbar \times \text{THz}\)
- hbar = 1.0
- hbar_THz = 1.0
- hbar_MHz = 1e-06
- hbar_Hz = 1e-12
- eV = 1519.2674479961272
- meV = 1.5192674479961272
- Ry = 20670.68666919867
- mRy = 20.67068666919867
- Hartree = 41341.37333836847
- Joule = 9.48252145007486e+21
- amu_cc = 1415188669782.1243
- kb = 0.130920294134207
- speed_of_light = 299792458
- amu = 1.5746097527595264e-05
- epsilon0 = None
- elementary_charge = 1.0
- cm = 10000000000.0
- mm = 1000000000.0
- um = 1000000.0
- nm = 1000.0
- Angstrom = 100
- pm = 1
- bohr_radius = 52.917721092
- s = 1000000000000.0
- ms = 1000000000.0
- us = 1000000.0
- ns = 1000.0
- ps = 1
- fs = 0.001
- As = 1e-06
- time_au = 2.4188843265864e-05
- cm_inverse_energy = 0.1883651567308853
Utility Functions
- qepsilon.utilities.compose(op_sequence: list[Tensor])[source]
This function composes a sequence of operators. :param op_sequence: a list of operators.
- qepsilon.utilities.apply_to_pse(pse: Tensor, ops: Tensor)[source]
This function applies an operator to pure state ensemble. :param pse: the pure state ensemble to be acted on. Shape: (nb, ns). :param ops: the operator to be applied. Shape: (nb, ns, ns) or (ns, ns).
- Returns:
the pure state ensemble after applying the operator. Shape: (nb, ns).
- Return type:
pse_new
- qepsilon.utilities.expectation_pse(pse: Tensor, ops: Tensor)[source]
This function computes the expectation value of an operator on a pure state ensemble: <psi|ops|psi>/<psi|psi>. :param pse: the pure state ensemble. Shape: (nb, ns). :param ops: the operator. Shape: (nb, ns, ns) or (ns, ns).
- Returns:
the expectation value. Shape: (nb).
- Return type:
exp
- qepsilon.utilities.trace(rho: Tensor)[source]
This function traces out the density matrix. :param rho: the density matrix to be traced out. Shape: (nb, ns, ns) or (ns, ns).
- Returns:
a (nb) tensor or a scalar, the trace of the density matrix.
- Return type:
trace
- qepsilon.utilities.qubitconf2idx(config: Tensor)[source]
This function converts a binary qubit/spin configuration to an index. :param config: a 0 or 1 tensor that specifies the qubit/spin configuration. Shape: (#qubits). Example for 2-qubit system: [0, 1] means \(| 01 \rangle\). :param By our convention of Pauli-operator composition: :type By our convention of Pauli-operator composition: \(| 11...1 \rangle\) :param the all-qubit-up configuration: :type the all-qubit-up configuration: \(| 11...1 \rangle\)
- Returns:
an integer, the index of the configuration.
- Return type:
idx