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.mesolverusing Gamma-derived jumps.- 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]¶
-
- 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
Gammaand build Lindblad collapse operatorsL_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).