quantum_dynamics

class mqed.Lindblad.quantum_dynamics.CouplingLimitConfig(enable: 'bool' = False, V_hop_radius: 'Optional[int]' = None, keep_V_on_site: 'bool' = False, Gamma_rule: 'str' = 'leave', Gamma_hop_radius: 'Optional[int]' = None, keep_Gamma_on_site: 'bool' = True)[source]
__delattr__(name)

Implement delattr(self, name).

__eq__(other)

Return self==value.

__init__(enable: bool = False, V_hop_radius: int | None = None, keep_V_on_site: bool = False, Gamma_rule: str = 'leave', Gamma_hop_radius: int | None = None, keep_Gamma_on_site: bool = True) None
__repr__()

Return repr(self).

__setattr__(name, value)

Implement setattr(self, name, value).

class mqed.Lindblad.quantum_dynamics.LindbladDynamics(config, GreensFunction, seed: int | None = None)[source]

Lindblad dynamics via qutip.mesolver using Gamma-derived jumps.

__init__(config, GreensFunction, seed: int | None = None)[source]
evolve(rho_or_psi: Qobj, e_ops: Dict[str, Qobj] | None = None, options: Dict[str, Any] | None = None) SimulationResult[source]

Run time evolution and return the physical quantities. :param rho_or_psi: Qobject, the initial density matrix or wavefunction. :param e_ops: expectation values of the operators. :param options: optional restrict for differential equation solver.

class mqed.Lindblad.quantum_dynamics.NonHermitianSchDynamics(config, GreensFunction, seed: int | None = None)[source]
__init__(config, GreensFunction, seed: int | None = None)[source]
eff_Hamiltonian() Qobj[source]

Construct the effective non-Hermitian Hamiltonian.

\[\begin{split}\hat{H}_\mathrm{eff} = \begin{pmatrix} 0 & 0^\top \\ 0 & H - \tfrac{i}{2}\,\Gamma' \end{pmatrix}, \quad \Gamma' = \tfrac{1}{2}(\Gamma + \Gamma^{\dagger}).\end{split}\]
evolve(rho_or_psi, e_ops=None, options=None) SimulationResult[source]

Run time evolution and return the physical quantities. :param rho_or_psi: Qobject, the initial density matrix or wavefunction. :param e_ops: expectation values of the operators. :param options: optional restrict for differential equation solver. See …

class mqed.Lindblad.quantum_dynamics.QuantumDynamics(config: SimulationConfig)[source]

Abstract base for quantum dynamics solvers (Hamiltonian, collapse ops, evolution).

__init__(config: SimulationConfig)[source]
_pack_result(tlist: np.ndarray, states: List[Qobj], eops: Dict[str, Qobj] | None) SimulationResult[source]

Pack the simulation result.

build_collapse_ops() list[Qobj][source]

Diagonalize Gamma and build Lindblad collapse operators L_k.

Lindblad master equation:

\[\dot{\rho} = -\tfrac{i}{\hbar}[H,\rho] + \sum_{i} \gamma_i \Big( L_i \rho L_i^{\dagger} - \tfrac{1}{2} \{ L_i^{\dagger} L_i, \rho \} \Big),\]

where the jump operators come from the eigendecomposition of the Hermitian rate matrix Gamma' = 0.5*(Gamma + Gamma^\dagger).

build_hamiltonian(Green, seed: int | None = None) Qobj[source]

Build Hamiltonian from the Green’s tensor, dipoles, and coupling limits.

abstractmethod evolve(rho_or_psi: Qobj, e_ops: Dict[str, Qobj] | None = None, options: Dict[str, Any] | None = None) SimulationResult[source]

Run time evolution and return the physical quantities. :param rho_or_psi: Qobject, the initial density matrix or wavefunction. :param e_ops: expectation values of the operators. :param options: optional restrict for differential equation solver. See …

class mqed.Lindblad.quantum_dynamics.SimulationConfig(tlist: 'np.ndarray', emitter_frequency: 'float', Nmol: 'int', Rx_nm: 'np.ndarray', d_nm: 'float', mu_D_debye: 'float', mu_A_debye: 'Union[None, float]', theta_deg: 'float', phi_deg: 'Union[str, float]', disorder_sigma_phi_deg: 'Union[None, float]', mode: 'str', coupling_limit: 'CouplingLimitConfig' = <factory>)[source]
__delattr__(name)

Implement delattr(self, name).

__eq__(other)

Return self==value.

__init__(tlist: numpy.ndarray, emitter_frequency: float, Nmol: int, Rx_nm: numpy.ndarray, d_nm: float, mu_D_debye: float, mu_A_debye: None | float, theta_deg: float, phi_deg: str | float, disorder_sigma_phi_deg: None | float, mode: str, coupling_limit: CouplingLimitConfig = <factory>) None
__repr__()

Return repr(self).

__setattr__(name, value)

Implement setattr(self, name, value).

class mqed.Lindblad.quantum_dynamics.SimulationResult(tlist: 'np.ndarray', expectations: 'Dict[str, np.ndarray]'=<factory>)[source]
__eq__(other)

Return self==value.

__init__(tlist: numpy.ndarray, expectations: Dict[str, numpy.ndarray]=<factory>) None
__repr__()

Return repr(self).