Þ¥bonds€¬cell_resultsÞYÙ$a41f348d-7d13-4fd1-b7c7-abef440cf9b1Цqueued¤logs�§running¦output†¤bodyÚ H

Suppose we have a system with a Lindblad operator $\hat{A}$. The question is what is the Lindblad operator in a composite system. Presumably, $\hat{A} ⊗ �$, but one could also think that with $� = ∑|k⟩⟨k|$, the composite system could have one Lindblad operator $\hat{A} ⊗ |k⟩⟨k|$ for each basis vector of the second system. That is, the composite system would have multiple Lindblad operators?

Are those two things potentially equivalent? They are not! The difference is in the term $\hat{A} \hat{\rho} \hat{A}^\dagger$ in the Liouville equation. With a single Lindblad operator $\hat{A} ⊗ �$, we find

$$(\hat{A} ⊗ �) \hat\rho (\hat{A} ⊗ �)^\dagger = \sum_{ijnm} \rho_{(ij),(nm)} \hat{A} |i⟩⟨n| \hat{A}^{\dagger} \otimes |j⟩⟨m| \tag{1}$$

where $|ij⟩⟨jm|$ is the double-indexed basis in which $\hat{\rho}$ is represented, and $\rho_{(ij),(nm)}$ is the matrix element for those indices.

On the other hand, with multiple Lindblad operators, we have

$$\sum_k (\hat{A} ⊗ |k⟩⟨k|) \hat\rho (\hat{A} ⊗ |k⟩⟨k|)^\dagger = \sum_{ink}\rho_{(ik),(nk)} \hat{A} |i⟩⟨n| \hat{A}^{\dagger} \otimes |k⟩⟨k| \tag{2}$$

That is, we are missing the cross-terms $|j⟩⟨m|$ in Eq. (1) for $j \ne m$.

These matrices are coherences in the second system that are lost in the dynamics. That hints at the choice of multiple Lindblad operators being unphysical: Simply tensoring a non-dissipative system to a dissipative system should not affect the non-dissipative system at all, the dissipative system should not be inducing dissipation into the non-dissipative system.

We can illustrate this for the example of a single qubit with spontaneous decay. We will simulate the dynamics of the qubit, and then the dynamics of the system tensored with a second, non-dissipative qubit, for the two possible choices of composite Lindblad operators.

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÌv°persist_js_state·has_pluto_hook_features§cell_idÙ$a41f348d-7d13-4fd1-b7c7-abef440cf9b1¹depends_on_disabled_cells§runtimeÎ s~µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$777eefbd-a782-4388-af28-987fa43ef205Цqueued¤logs�§running¦output†¤bodyÙw

Then, the population dynamics of the sub-systems, with the other system traced out:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔ!¼°persist_js_state·has_pluto_hook_features§cell_idÙ$777eefbd-a782-4388-af28-987fa43ef205¹depends_on_disabled_cells§runtimeÎ5aµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$a3fd0098-e0a1-4e9e-859f-37f1064cce29Цqueued¤logs�§running¦output†¤bodyÉx  ¤mime­image/svg+xml¬rootassigneeÀ²last_run_timestampËAÚ1ñïÞQ°persist_js_state·has_pluto_hook_features§cell_idÙ$a3fd0098-e0a1-4e9e-859f-37f1064cce29¹depends_on_disabled_cells§runtimeÎ gáµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$8cd9f807-6b19-4aae-b222-1560f04c3afbЦqueued¤logs�§running¦output†¤bodyÚ :
partial_trace

Calculate the partial trace of the given density matrix �

�_red = partial_trace(�, (N_i, N, N_j))

calculates the reduced density with the middle degree of freedom integrated out.

It is assumed that the density matrix � has the structure

$$� = \sum �_{(inj)(i^′n^′j^′)} |inj⟩⟨i^′n^′j^′|$$

with the triple-index $(inj)$ where $i$ is in the range $(1, N_i)$, $n$ is in the range $(1, N)$, and $j$ is in the range $(1, N_j)$

The reduced density matrix is defined as

$$�^{(red)} = \sum \underbrace{\sum_{n} �_{(inj)(i^′nj^′)}}_{= \rho^{(red)}_{(ij),(i^′j^′)}} |ij⟩⟨i^′j^′|$$

Note that assuming a structure of 3 tensored Hilbert spaces and always tracing out the middle Hilbert space allows handling an arbitrary number of actual Hilbert spaces, and tracing out arbitrary degrees of freedom: All Hilbert spaces to the left of the degree of freedom to be integrated out can be combined into a single Hilbert space of dimension $N_i$, and all the Hilbert spaces on the right can be combined into a space of dimension $N_j$. This includes the situation where we have two actual Hilbert spaces with dimensions N and M, respectively. If we wanted to trace out the first Hilbert space, we could use

�_red = partial_trace(�, (1, N, M))

If we wanted to trace out the second Hilbert space, we would instead use

�_red = partial_trace(�, (N, M, 1))

The given � can be a matrix or vectorized matrix. The reduced density matrix will be returned correspondingly.

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1ñ³ú¤°persist_js_state·has_pluto_hook_features§cell_idÙ$8cd9f807-6b19-4aae-b222-1560f04c3afb¹depends_on_disabled_cells§runtimeÎÞÅDµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$91ab02a1-65b0-43c4-99f3-08dbc274e0edЦqueued¤logs�§running¦output†¤bodyƒ¨elements“’’…¦prefix¥Int64¨elements’’’¡2ªtext/plain’’¡5ªtext/plain¤type¥Array¬prefix_short ¨objectid°3dc94151e8be127bÙ!application/vnd.pluto.tree+object’’…¦prefix¥Int64¨elements’’’¢12ªtext/plain’’¢15ªtext/plain¤type¥Array¬prefix_short ¨objectid°dcf1f4a7a70f8068Ù!application/vnd.pluto.tree+object’’…¦prefixªComplexF64¨elements’’’©0.0+0.1imªtext/plain’’©0.0+0.1imªtext/plain¤type¥Array¬prefix_short ¨objectid°691d85d0bf66a4b0Ù!application/vnd.pluto.tree+object¤type¥Tuple¨objectid°34f9b353db3ca593¤mimeÙ!application/vnd.pluto.tree+object¬rootassigneeÀ²last_run_timestampËAÚ1ñ†w °persist_js_state·has_pluto_hook_features§cell_idÙ$91ab02a1-65b0-43c4-99f3-08dbc274e0ed¹depends_on_disabled_cells§runtimeÍE;µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$233b2763-5612-4786-9df0-17a6bdd10912Цqueued¤logs�§running¦output†¤bodyÙu

And, the reduced density matrix of the second TLS (first TLS traced out):

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÒRH°persist_js_state·has_pluto_hook_features§cell_idÙ$233b2763-5612-4786-9df0-17a6bdd10912¹depends_on_disabled_cells§runtimeÎýµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33deЦqueued¤logs�§running¦output†¤bodyÈÿÅ ¤mime­image/svg+xml¬rootassigneeÀ²last_run_timestampËAÚ1ò°persist_js_state·has_pluto_hook_features§cell_idÙ$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33de¹depends_on_disabled_cells§runtimeÎô—µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$4c62e504-4ab5-4eec-a2bc-0967f7a7ae64Цqueued¤logs�§running¦output†¤bodyÙ2

We can now use

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÎ?Ù°persist_js_state·has_pluto_hook_features§cell_idÙ$4c62e504-4ab5-4eec-a2bc-0967f7a7ae64¹depends_on_disabled_cells§runtimeÎðîµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$107f5cb1-6f79-483a-bbd2-e292a1592986Цqueued¤logs�§running¦output†¤bodyÙO

We'll consider a completely static TLS:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÍð̰persist_js_state·has_pluto_hook_features§cell_idÙ$107f5cb1-6f79-483a-bbd2-e292a1592986¹depends_on_disabled_cells§runtimeΊµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$e300efca-2800-4c0c-b915-ec8e4f81b292Цqueued¤logs�§running¦output†¤bodyÙs

Now we tensor the system with a second TLS. This second TLS is non-dissipative.

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÎôܰpersist_js_state·has_pluto_hook_features§cell_idÙ$e300efca-2800-4c0c-b915-ec8e4f81b292¹depends_on_disabled_cells§runtimeÎLµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$dd8f6890-5234-4b1c-8ed7-b6d370c86876Цqueued¤logs�§running¦output†¤bodyÙ$⊗ (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ñ[9Ÿ°persist_js_state·has_pluto_hook_features§cell_idÙ$dd8f6890-5234-4b1c-8ed7-b6d370c86876¹depends_on_disabled_cells§runtimeÎ�Œµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$89d0de66-b78a-4f0f-9134-84ca622f2ca3Цqueued¤logs�§running¦output†¤bodyÙ2

and the purity

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çΦð°persist_js_state·has_pluto_hook_features§cell_idÙ$89d0de66-b78a-4f0f-9134-84ca622f2ca3¹depends_on_disabled_cells§runtimeÎ\òµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$531a7b9d-60bc-416e-9260-5757a4cc093cЦqueued¤logs�§running¦output†¤bodyÚH

Lindblad operators for composite systems

Note: the code for this notebook is available at https://github.com/goerz-research/2025-09-11_Composite_Dissipation

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÉ‹°persist_js_state·has_pluto_hook_features§cell_idÙ$531a7b9d-60bc-416e-9260-5757a4cc093c¹depends_on_disabled_cells§runtimeÎ7wõpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$0a3cef9f-4dd7-4469-b4ae-18c4e3093cedЦqueued¤logs�§running¦output†¤body£0.1¤mimeªtext/plain¬rootassignee¢Î³²last_run_timestampËAÚ1íÖõ°persist_js_state·has_pluto_hook_features§cell_idÙ$0a3cef9f-4dd7-4469-b4ae-18c4e3093ced¹depends_on_disabled_cells§runtimeÍ1ȵpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$72010ae9-8300-41bb-a10b-37927cd8e000Цqueued¤logs�§running¦output†¤bodyÚ�

Note that the purity starting from a mixed state should be $1 - \frac{1}{2} \left(e^{-\gamma t} + e^{-2\gamma t}\right)$: The purity first drops due to the dissipation and then rises again because in the infinite time limit, all the population ends up in the (pure) ground state.

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÎÁr°persist_js_state·has_pluto_hook_features§cell_idÙ$72010ae9-8300-41bb-a10b-37927cd8e000¹depends_on_disabled_cells§runtimeÎI$µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$e210cf9e-a5d6-4d48-83e1-200008a1d9d3Цqueued¤logs�§running¦output†¤bodyÉ�Ü ¤mime­image/svg+xml¬rootassigneeÀ²last_run_timestampËAÚ1ñþÁ°persist_js_state·has_pluto_hook_features§cell_idÙ$e210cf9e-a5d6-4d48-83e1-200008a1d9d3¹depends_on_disabled_cells§runtimeΫ‹‚µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$c0342b62-302d-470c-9e96-128905bbe848Цqueued¤logs�§running¦output†¤bodyÙn

Uses two Lindblad operators, one for each of the levels in the second TLS.

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÏD °persist_js_state·has_pluto_hook_features§cell_idÙ$c0342b62-302d-470c-9e96-128905bbe848¹depends_on_disabled_cells§runtimeÎî�µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$113410b5-64b3-4fcb-9263-9ba89a013107Цqueued¤logs�§running¦output†¤bodyÚ.

When analyzing the dynamics, what we'll be looking for is that the second system remains unaffected by the dissipation in the first system. To this end, we'll have to calculate the reduced density matrices for the first and second TLS, using a partial trace:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÒ§°persist_js_state·has_pluto_hook_features§cell_idÙ$113410b5-64b3-4fcb-9263-9ba89a013107¹depends_on_disabled_cells§runtimeÎIµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$a36ca5a6-f584-4bba-8e21-968bda4d5190Цqueued¤logs�§running¦output†¤bodyÙw

The difference comes in via the purity (the coherences) in the sub-systems:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔÝ{°persist_js_state·has_pluto_hook_features§cell_idÙ$a36ca5a6-f584-4bba-8e21-968bda4d5190¹depends_on_disabled_cells§runtimeÎÿµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$f5d72c44-185e-40f9-be10-50ca467ae8bfЦqueued¤logs�§running¦output†¤bodyÙi

The population dynamics even for the sub-systems still looks correct:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔÃü°persist_js_state·has_pluto_hook_features§cell_idÙ$f5d72c44-185e-40f9-be10-50ca467ae8bf¹depends_on_disabled_cells§runtimeÎò’µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$28a8661d-e5f5-4ecd-82d2-bb4f64c36039Цqueued¤logs�§running¦output†¤body¶1.5273449659913243e-16¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ñéŰpersist_js_state·has_pluto_hook_features§cell_idÙ$28a8661d-e5f5-4ecd-82d2-bb4f64c36039¹depends_on_disabled_cells§runtimeÍTºµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$6b05ff89-52e0-4af1-8460-052222ebe93eЦqueued¤logs�§running¦output†¤body²0.8837279210325912¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ñI:Ÿ°persist_js_state·has_pluto_hook_features§cell_idÙ$6b05ff89-52e0-4af1-8460-052222ebe93e¹depends_on_disabled_cells§runtimeÎF;Fµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$452f72e9-6817-45db-a514-23ddd0a4ebb2Цqueued¤logs�§running¦output†¤bodyÚõ6×6 Matrix{ComplexF64}: 0.714402+0.0im -0.24748-0.0147125im … -0.0219476-0.0129593im -0.24748+0.0147125im 0.0860338+0.0im 0.00786988+0.00403731im -0.307368-0.211605im 0.102119+0.0796332im 0.00560433+0.0120765im 0.0205404-0.0442616im -0.00802703+0.0149099im -0.00143394+0.000987185im -0.00620398+0.0157559im 0.00247363-0.00533032im 0.000476409-0.000371507im -0.0219476+0.0129593im 0.00786988-0.00403731im … 0.00090935+0.0im¤mimeªtext/plain¬rootassignee¢_C²last_run_timestampËAÚ1ñÈ –°persist_js_state·has_pluto_hook_features§cell_idÙ$452f72e9-6817-45db-a514-23ddd0a4ebb2¹depends_on_disabled_cells§runtimeÍ=]µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9eЦqueued¤logs�§running¦output†¤body…¦prefix§Float64¨elements’’’£0.5ªtext/plain’’£0.5ªtext/plain¤type¥Array¬prefix_short ¨objectid°1c16476edc364fed¤mimeÙ!application/vnd.pluto.tree+object¬rootassigneeÀ²last_run_timestampËAÚ1ð â—°persist_js_state·has_pluto_hook_features§cell_idÙ$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9e¹depends_on_disabled_cells§runtimeÍIbµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$f3d99a0a-2188-4cb1-81d9-9670ece84610Цqueued¤logs�§running¦output†¤bodyÙà3×3 Matrix{ComplexF64}: 0.717735+0.0im -0.248634-0.0147811im -0.308802+0.212592im -0.248634+0.0147811im 0.0864352+0.0im 0.102596-0.0800047im -0.308802-0.212592im 0.102596+0.0800047im 0.19583+0.0im¤mimeªtext/plain¬rootassignee¢_B²last_run_timestampËAÚ1ñÇp°persist_js_state·has_pluto_hook_features§cell_idÙ$f3d99a0a-2188-4cb1-81d9-9670ece84610¹depends_on_disabled_cells§runtimeÍpfµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$629a5a46-0bea-4762-9c89-78c07cb43c72Цqueued¤logs�§running¦output†¤bodyÙ'purity (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ñÓ‘°persist_js_state·has_pluto_hook_features§cell_idÙ$629a5a46-0bea-4762-9c89-78c07cb43c72¹depends_on_disabled_cells§runtimeÎ7&Vµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998Цqueued¤logs�§running¦output†¤body…¦prefixªComplexF64¨elementsÜ’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain¤type¥Array¬prefix_short ¨objectid°98c65c1778bad3b2¤mimeÙ!application/vnd.pluto.tree+object¬rootassignee¯Ï�â‚€_composite²last_run_timestampËAÚ1ñŸ-Q°persist_js_state·has_pluto_hook_features§cell_idÙ$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998¹depends_on_disabled_cells§runtimeÍ`èµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$11ea567a-74dd-4a87-9695-7dfeccf49c0eЦqueued¤logs�§running¦output†¤body…¦prefixªComplexF64¨elements”’’©0.5+0.0imªtext/plain’’©0.5+0.0imªtext/plain’’©0.5+0.0imªtext/plain’’©0.5+0.0imªtext/plain¤type¥Array¬prefix_short ¨objectid°a01d423a61dea796¤mimeÙ!application/vnd.pluto.tree+object¬rootassigneeÀ²last_run_timestampËAÚ1ñ¼EÔ°persist_js_state·has_pluto_hook_features§cell_idÙ$11ea567a-74dd-4a87-9695-7dfeccf49c0e¹depends_on_disabled_cells§runtimeÍ<³µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$a734c0b3-eef1-43a7-801c-81b5fdda1219Цqueued¤logs�§running¦output†¤bodyÙp2×2 Matrix{ComplexF64}: 0.995356+0.0im 0.0286184+0.0616684im 0.0286184-0.0616684im 0.00464357+0.0im¤mimeªtext/plain¬rootassignee¢_A²last_run_timestampËAÚ1ñÅÑ$°persist_js_state·has_pluto_hook_features§cell_idÙ$a734c0b3-eef1-43a7-801c-81b5fdda1219¹depends_on_disabled_cells§runtimeÍe„µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$f8d76484-05e6-4a72-98c8-3f33b06f4306Цqueued¤logs�§running¦output†¤bodyÙ

tensors the original Lindblad operator with the identity for the second TLS.

Second,

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÏ*|°persist_js_state·has_pluto_hook_features§cell_idÙ$f8d76484-05e6-4a72-98c8-3f33b06f4306¹depends_on_disabled_cells§runtimeÎú³µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$20eb5f97-ca69-434d-80ec-5c99b8f153c1Цqueued¤logs�§running¦output†¤body…¦prefix¦String¨elementsÜ’’®"|00⟩⟨00|"ªtext/plain’’®"|01⟩⟨00|"ªtext/plain’’®"|10⟩⟨00|"ªtext/plain’’®"|11⟩⟨00|"ªtext/plain’’®"|00⟩⟨01|"ªtext/plain’’®"|01⟩⟨01|"ªtext/plain’’®"|10⟩⟨01|"ªtext/plain’’®"|11⟩⟨01|"ªtext/plain’ ’®"|00⟩⟨10|"ªtext/plain’ ’®"|01⟩⟨10|"ªtext/plain’ ’®"|10⟩⟨10|"ªtext/plain’ ’®"|11⟩⟨10|"ªtext/plain’ ’®"|00⟩⟨11|"ªtext/plain’’®"|01⟩⟨11|"ªtext/plain’’®"|10⟩⟨11|"ªtext/plain’’®"|11⟩⟨11|"ªtext/plain¤type¥Array¬prefix_short ¨objectid°c813cf94dbba48dc¤mimeÙ!application/vnd.pluto.tree+object¬rootassignee®superop_labels²last_run_timestampËAÚ1ñ—­C°persist_js_state·has_pluto_hook_features§cell_idÙ$20eb5f97-ca69-434d-80ec-5c99b8f153c1¹depends_on_disabled_cells§runtimeÍ„ûµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2Цqueued¤logs�§running¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ñë­u°persist_js_state·has_pluto_hook_features§cell_idÙ$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2¹depends_on_disabled_cells§runtimeί밵published_object_keys�¸depends_on_skipped_cells§erroredÂÙ$378380e4-7043-434d-8933-72b36e3a8981Цqueued¤logs�§running¦output†¤bodyÚ4×4 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 4 stored entries: â‹… â‹… â‹… 0.0+0.1im â‹… 0.0-0.05im â‹… â‹… â‹… â‹… 0.0-0.05im â‹… â‹… â‹… â‹… 0.0-0.1im¤mimeªtext/plain¬rootassignee¡L²last_run_timestampËAÚ1î&ï°persist_js_state·has_pluto_hook_features§cell_idÙ$378380e4-7043-434d-8933-72b36e3a8981¹depends_on_disabled_cells§runtimeÎ !ÀXµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0Цqueued¤logs�§running¦output†¤bodyÙ%pops (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ð°persist_js_state·has_pluto_hook_features§cell_idÙ$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0¹depends_on_disabled_cells§runtimeÎ~µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$337e927c-6c23-4afe-9a62-bf30f3a12c0aЦqueued¤logs�§running¦output†¤bodyÙe

First, we look at the population dynamics of the combined system:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔ%°persist_js_state·has_pluto_hook_features§cell_idÙ$337e927c-6c23-4afe-9a62-bf30f3a12c0a¹depends_on_disabled_cells§runtimeΧ±µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$a86b96af-f20d-48ac-b493-12204567a21cЦqueued¤logs�§running¦output†¤bodyÙn

We have two candidates for the Lindbladian of the composite system. First,

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÏ0°persist_js_state·has_pluto_hook_features§cell_idÙ$a86b96af-f20d-48ac-b493-12204567a21c¹depends_on_disabled_cells§runtimeÎöUµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$b2ac08e1-8e2a-43ad-bb49-7441408d0571Цqueued¤logs�§running¦output†¤bodyÙÆ

Just to test our implementation of the partial trace a bit more for the general case, we can check that we can recover the components of a random separable state:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÒl+°persist_js_state·has_pluto_hook_features§cell_idÙ$b2ac08e1-8e2a-43ad-bb49-7441408d0571¹depends_on_disabled_cells§runtimeÎC'µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$9fa924d6-f287-4f6c-b5b6-1adb4909318cЦqueued¤logs�§running¦output†¤bodyÙU

We can look at which matrix elements are missing.

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÑ °persist_js_state·has_pluto_hook_features§cell_idÙ$9fa924d6-f287-4f6c-b5b6-1adb4909318c¹depends_on_disabled_cells§runtimeÎ\޵published_object_keys�¸depends_on_skipped_cells§erroredÂÙ$90ff733c-01ac-48d0-a6b6-faa5021a8a9bЦqueued¤logs�§running¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ì£gI°persist_js_state·has_pluto_hook_features§cell_idÙ$90ff733c-01ac-48d0-a6b6-faa5021a8a9b¹depends_on_disabled_cells§runtimeν~µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$208b3fda-4263-4f7d-b73d-25eedd1771aaЦqueued¤logs�§running¦output†¤bodyÙt

Multiple Lindblad Operators Dynamics

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔt%°persist_js_state·has_pluto_hook_features§cell_idÙ$208b3fda-4263-4f7d-b73d-25eedd1771aa¹depends_on_disabled_cells§runtimeÎéVµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05Цqueued¤logs�§running¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1í)"Õ°persist_js_state·has_pluto_hook_features§cell_idÙ$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05¹depends_on_disabled_cells§runtimeÍÃ�µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$1799c3d7-97c9-4602-9a02-7a0691ddf80eЦqueued¤logs�§running¦output†¤bodyÙ�

L1 and L2 do not have the same number of non-zero entries!

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çѤ”°persist_js_state·has_pluto_hook_features§cell_idÙ$1799c3d7-97c9-4602-9a02-7a0691ddf80e¹depends_on_disabled_cells§runtimeÎ:$µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6Цqueued¤logs�§running¦output†¤bodyÙÊ16×16 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 14 stored entries: ⎡⠀⢄⠀⠀⠀â �⠀⠀⎤ ⎢⠀⠀⠀⢄⠀⠀⠀â �⎥ ⎢⠀⠀⠀⠀⠑⢄⠀⠀⎥ ⎣⠀⠀⠀⠀⠀⠀⠑⢄⎦¤mimeªtext/plain¬rootassignee¢L2²last_run_timestampËAÚ1ñhA°persist_js_state·has_pluto_hook_features§cell_idÙ$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6¹depends_on_disabled_cells§runtimeÎw µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$f3bd26e5-f6d4-4833-88aa-01ba389451b1Цqueued¤logs�§running¦output†¤bodyÙa

We'll add to that spontaneous decay, with a decay rate of

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÎ å°persist_js_state·has_pluto_hook_features§cell_idÙ$f3bd26e5-f6d4-4833-88aa-01ba389451b1¹depends_on_disabled_cells§runtimeΤµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$8e9523fc-2810-4370-b1cc-e159b588ea83Цqueued¤logs�§running¦output†¤bodyÚ|

This is clearly unphysical: without interactions between system 1 and system 2, the dissipation in system 1 should not be causing dissipation in system 2! System 2 should remain pure at all times.

Thus, we can conclude that a single Lindblad operator $\hat{A} \otimes �$ is the correct approach.

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔún°persist_js_state·has_pluto_hook_features§cell_idÙ$8e9523fc-2810-4370-b1cc-e159b588ea83¹depends_on_disabled_cells§runtimeÎ:ĵpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$9029c42e-462d-4bc6-9d9f-edc53fb28dedЦqueued¤logs�§running¦output†¤bodyÙL

Composite System

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÎÚý°persist_js_state·has_pluto_hook_features§cell_idÙ$9029c42e-462d-4bc6-9d9f-edc53fb28ded¹depends_on_disabled_cells§runtimeÎáûµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$6aa6f586-9977-476f-a306-73345c0bbc30Цqueued¤logs�§running¦output†¤body…¦prefixªComplexF64¨elements’’’©0.0+0.0imªtext/plain’’©1.0+0.0imªtext/plain¤type¥Array¬prefix_short ¨objectid°c4c7e38a8797345a¤mimeÙ!application/vnd.pluto.tree+object¬rootassignee¤ket1²last_run_timestampËAÚ1íbE°persist_js_state·has_pluto_hook_features§cell_idÙ$6aa6f586-9977-476f-a306-73345c0bbc30¹depends_on_disabled_cells§runtimeÍ\�µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$e06b72c2-913d-4de9-8ef1-af12a1a2b8c8Цqueued¤logs�§running¦output†¤bodyÙ_

The Liouvillian can be constructed as a super-operator, via

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÎ&°persist_js_state·has_pluto_hook_features§cell_idÙ$e06b72c2-913d-4de9-8ef1-af12a1a2b8c8¹depends_on_disabled_cells§runtimeÎ @µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$0d819a8e-95d8-43e4-846d-1b1a44cb9214Цqueued¤logs�§running¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ìÏá±°persist_js_state·has_pluto_hook_features§cell_idÙ$0d819a8e-95d8-43e4-846d-1b1a44cb9214¹depends_on_disabled_cells§runtimeÍU¡µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$50703d4a-b742-4ccb-9f1a-2171d94e5e0aЦqueued¤logs�§running¦output†¤bodyÙD

Single Qubit

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÍÐ̰persist_js_state·has_pluto_hook_features§cell_idÙ$50703d4a-b742-4ccb-9f1a-2171d94e5e0a¹depends_on_disabled_cells§runtime΢^µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$3fca1322-b88c-4016-81d1-44a3a8013e32Цqueued¤logs�§running¦output†¤bodyÉ�Ü ¤mime­image/svg+xml¬rootassigneeÀ²last_run_timestampËAÚ1ò;‚°persist_js_state·has_pluto_hook_features§cell_idÙ$3fca1322-b88c-4016-81d1-44a3a8013e32¹depends_on_disabled_cells§runtimeÎv/µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$29b3077f-fe4a-4ed9-910b-532af7b5684bЦqueued¤logs�§running¦output†¤body±4.586543737968368¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ò WO°persist_js_state·has_pluto_hook_features§cell_idÙ$29b3077f-fe4a-4ed9-910b-532af7b5684b¹depends_on_disabled_cells§runtimeÎ5µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$96b3bbd3-966c-4912-82cc-ff01f089f066Цqueued¤logs�§running¦output†¤body…¦prefixªComplexF64¨elements”’’©0.5+0.0imªtext/plain’’©0.5+0.0imªtext/plain’’©0.5+0.0imªtext/plain’’©0.5+0.0imªtext/plain¤type¥Array¬prefix_short ¨objectid°e3feff1b6d5ded1b¤mimeÙ!application/vnd.pluto.tree+object¬rootassignee¥Ï�â‚€²last_run_timestampËAÚ1îN„­°persist_js_state·has_pluto_hook_features§cell_idÙ$96b3bbd3-966c-4912-82cc-ff01f089f066¹depends_on_disabled_cells§runtimeÍNµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$d565abf9-4b59-429e-834c-d390017a5b53Цqueued¤logs�§running¦output†¤bodyÙ^

We can check that the intial state decomposes as expected:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÒë°persist_js_state·has_pluto_hook_features§cell_idÙ$d565abf9-4b59-429e-834c-d390017a5b53¹depends_on_disabled_cells§runtimeÎþçµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$b307c37f-2395-4806-a35f-a9118bb9adf9Цqueued¤logs�§running¦output†¤bodyÉx  ¤mime­image/svg+xml¬rootassigneeÀ²last_run_timestampËAÚ1ò ¶°persist_js_state·has_pluto_hook_features§cell_idÙ$b307c37f-2395-4806-a35f-a9118bb9adf9¹depends_on_disabled_cells§runtimeÎ =%µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$6fdf587d-4555-445e-b392-5ddc99c34bb6Цqueued¤logs�§running¦output†¤bodyÙT

which we can analyze in terms of the populations

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÎ�7°persist_js_state·has_pluto_hook_features§cell_idÙ$6fdf587d-4555-445e-b392-5ddc99c34bb6¹depends_on_disabled_cells§runtimeÎï?µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5Цqueued¤logs�§running¦output†¤body³0.14142135623730953¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ñnÿ¨°persist_js_state·has_pluto_hook_features§cell_idÙ$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5¹depends_on_disabled_cells§runtimeÍINµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$e944732c-ab82-4b09-b9e6-7fc8df1dbcbaЦqueued¤logs�§running¦output†¤bodyÙn

Single Lindblad Operator Dynamics

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÓç°persist_js_state·has_pluto_hook_features§cell_idÙ$e944732c-ab82-4b09-b9e6-7fc8df1dbcba¹depends_on_disabled_cells§runtimeÎH„µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$9d5ee94b-250a-4062-8d97-b7f789edce25Цqueued¤logs�§running¦output†¤bodyÙC

The result of the propgation is

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÎsɰpersist_js_state·has_pluto_hook_features§cell_idÙ$9d5ee94b-250a-4062-8d97-b7f789edce25¹depends_on_disabled_cells§runtimeÎ\ƒµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$5adbc0dd-f040-4d8f-b960-593edf3c1b3cЦqueued¤logs�§running¦output†¤body²0.9999999999999996¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ñG8Ú°persist_js_state·has_pluto_hook_features§cell_idÙ$5adbc0dd-f040-4d8f-b960-593edf3c1b3c¹depends_on_disabled_cells§runtimeÍ@Wµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$fe72a230-9546-4962-82a8-c5980fb297b1Цqueued¤logs�§running¦output†¤bodyÙp

The reduced density matrix of the first TLS (second TLS traced out):

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÒ8ɰpersist_js_state·has_pluto_hook_features§cell_idÙ$fe72a230-9546-4962-82a8-c5980fb297b1¹depends_on_disabled_cells§runtimeÎõµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$8a7d114b-eca7-47db-8191-8052ffc226b8Цqueued¤logs�§running¦output†¤bodyÈð@ ¤mime­image/svg+xml¬rootassigneeÀ²last_run_timestampËAÚ1ò0°persist_js_state·has_pluto_hook_features§cell_idÙ$8a7d114b-eca7-47db-8191-8052ffc226b8¹depends_on_disabled_cells§runtimeÎüûµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$dd2084d0-e587-4afa-bd17-d79f1260091eЦqueued¤logs�§running¦output†¤bodyÙÉ16×16 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 2 stored entries: ⎡⠀⠀⠀⠀⠀â �⠀⠀⎤ ⎢⠀⠀⠀⠀⠀⠀⠀â �⎥ ⎢⠀⠀⠀⠀⠀⠀⠀⠀⎥ ⎣⠀⠀⠀⠀⠀⠀⠀⠀⎦¤mimeªtext/plain¬rootassignee¤diff²last_run_timestampËAÚ1ñoÍ«°persist_js_state·has_pluto_hook_features§cell_idÙ$dd2084d0-e587-4afa-bd17-d79f1260091e¹depends_on_disabled_cells§runtimeÍCµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$573dbc48-530a-4f52-8864-18aad432c147Цqueued¤logs�§running¦output†¤bodyµ9.813077866773595e-18¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ñêQ7°persist_js_state·has_pluto_hook_features§cell_idÙ$573dbc48-530a-4f52-8864-18aad432c147¹depends_on_disabled_cells§runtimeÍI§µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$a286612a-2119-4860-9911-00eaa4ddebb9Цqueued¤logs�§running¦output†¤bodyȪw ¤mime­image/svg+xml¬rootassigneeÀ²last_run_timestampËAÚ1ñEi˜°persist_js_state·has_pluto_hook_features§cell_idÙ$a286612a-2119-4860-9911-00eaa4ddebb9¹depends_on_disabled_cells§runtimeÎ «ãµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$0d20207a-ac00-483e-a1db-e0755845a7e6Цqueued¤logs�§running¦output†¤bodyÙ‘

to simulate the dynamics of a coherent superposition of |0⟩ and |1⟩ as an initial state, over a time grid

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÎY–°persist_js_state·has_pluto_hook_features§cell_idÙ$0d20207a-ac00-483e-a1db-e0755845a7e6¹depends_on_disabled_cells§runtimeÎ×µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$cb5f6496-3170-4f07-808a-c641c98469d7Цqueued¤logs�§running¦output†¤body…¦prefixªComplexF64¨elements’’’©1.0+0.0imªtext/plain’’©0.0+0.0imªtext/plain¤type¥Array¬prefix_short ¨objectid°7bf3bf5e72ffac27¤mimeÙ!application/vnd.pluto.tree+object¬rootassignee¤ket0²last_run_timestampËAÚ1í $¼°persist_js_state·has_pluto_hook_features§cell_idÙ$cb5f6496-3170-4f07-808a-c641c98469d7¹depends_on_disabled_cells§runtimeÎdýµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$46b81556-c322-4d06-8a8d-5e69caefff63Цqueued¤logs�§running¦output†¤body…¦prefix¦String¨elements”’’¤"00"ªtext/plain’’¤"01"ªtext/plain’’¤"10"ªtext/plain’’¤"11"ªtext/plain¤type¥Array¬prefix_short ¨objectid¯f91b535f7e86ab5¤mimeÙ!application/vnd.pluto.tree+object¬rootassignee°composite_labels²last_run_timestampËAÚ1ñ’†°persist_js_state·has_pluto_hook_features§cell_idÙ$46b81556-c322-4d06-8a8d-5e69caefff63¹depends_on_disabled_cells§runtimeÍ<åµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$d45416d2-ba22-43d3-bc6a-6e7edf050be8Цqueued¤logs�§running¦output†¤bodyÙÎ

We repeat this analysis for the second candidate of a Liouvillian, with two Liouville operators.

The population dynamics in the combined system looks unsuspicious:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔ�~°persist_js_state·has_pluto_hook_features§cell_idÙ$d45416d2-ba22-43d3-bc6a-6e7edf050be8¹depends_on_disabled_cells§runtimeκ­µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$296fa066-fc76-4a1b-9d70-57c0fe080966Цqueued¤logs�§running¦output†¤bodyÙÊ16×16 SparseArrays.SparseMatrixCSC{ComplexF64, Int64} with 16 stored entries: ⎡⠀⢄⠀⠀⠀⠑⠀⠀⎤ ⎢⠀⠀⠀⢄⠀⠀⠀⠑⎥ ⎢⠀⠀⠀⠀⠑⢄⠀⠀⎥ ⎣⠀⠀⠀⠀⠀⠀⠑⢄⎦¤mimeªtext/plain¬rootassignee¢L1²last_run_timestampËAÚ1ñbâ°persist_js_state·has_pluto_hook_features§cell_idÙ$296fa066-fc76-4a1b-9d70-57c0fe080966¹depends_on_disabled_cells§runtimeÎ^ãµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$9e8682c2-0e3d-4515-bb1f-28a8d339402aЦqueued¤logs�§running¦output†¤bodyÙ¼

As we expect, the population deviates from the initial superposition only for the first system.

Lastly, we look at the purity in the sub-systems:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔ>–°persist_js_state·has_pluto_hook_features§cell_idÙ$9e8682c2-0e3d-4515-bb1f-28a8d339402a¹depends_on_disabled_cells§runtimeÎÀµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5Цqueued¤logs�§running¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ìgF�°persist_js_state·has_pluto_hook_features§cell_idÙ$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5¹depends_on_disabled_cells§runtimeÎŽnOµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$3a19ed7c-0c11-4415-a397-e8c195d966c8Цqueued¤logs�§running¦output†¤bodyÙg

Again, we see the purity deviating from 1 only in the first system.

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔYï°persist_js_state·has_pluto_hook_features§cell_idÙ$3a19ed7c-0c11-4415-a397-e8c195d966c8¹depends_on_disabled_cells§runtimeεpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$07ac2aab-759e-4aea-afa4-dbdb46568fc7Цqueued¤logs�§running¦output†¤bodyÚQ

It might be interesting to further look into the interpretation of exactly how these matrix elements affect the dynamics. But in lieue of that, we'll simply simulate the dynamics.

As the initial state, we'll use a coherent superposition both in the first and in the second TLS:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÑâó°persist_js_state·has_pluto_hook_features§cell_idÙ$07ac2aab-759e-4aea-afa4-dbdb46568fc7¹depends_on_disabled_cells§runtimeΡ$µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$ebad3a75-a9e9-4573-8d97-525ce8421fa1Цqueued¤logs�§running¦output†¤body…¦prefixªComplexF64¨elements’’’®0.707107+0.0imªtext/plain’’®0.707107+0.0imªtext/plain¤type¥Array¬prefix_short ¨objectid°1bf4dcb8355cd5c4¤mimeÙ!application/vnd.pluto.tree+object¬rootassignee¥Î¨â‚€²last_run_timestampËAÚ1îAx°persist_js_state·has_pluto_hook_features§cell_idÙ$ebad3a75-a9e9-4573-8d97-525ce8421fa1¹depends_on_disabled_cells§runtimeÍS µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$4df2b6b2-8e4e-11f0-3732-a75c62505eb7Цqueued¤logs�§running¦output†¤bodyÚP¾ ¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1ì@ͧ°persist_js_state·has_pluto_hook_features§cell_idÙ$4df2b6b2-8e4e-11f0-3732-a75c62505eb7¹depends_on_disabled_cells§runtimeÎKÑ%µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$906eb8c1-c1bc-4c61-8e22-8ab6eb91182fЦqueued¤logs�§running¦output†¤bodyÙ�

Now, we can compare the dynamics under our two candidate Liouvillian L1 and L2:

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÒ†¡°persist_js_state·has_pluto_hook_features§cell_idÙ$906eb8c1-c1bc-4c61-8e22-8ab6eb91182f¹depends_on_disabled_cells§runtimeÎ<&µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$ba6711cb-c036-4db8-953d-d9d71eaba585Цqueued¤logs�§running¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ìš!ɰpersist_js_state·has_pluto_hook_features§cell_idÙ$ba6711cb-c036-4db8-953d-d9d71eaba585¹depends_on_disabled_cells§runtimeÎFA‡µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$b958e41a-493c-4566-aebb-161868f15bcaЦqueued¤logs�§running¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1òŠ×°persist_js_state·has_pluto_hook_features§cell_idÙ$b958e41a-493c-4566-aebb-161868f15bca¹depends_on_disabled_cells§runtimeΪ'µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$95c10e78-c60b-4bd0-9558-1858f80e157dЦqueued¤logs�§running¦output†¤bodyÙU

But the dynamics are certainly not identical!

¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ1çÔª&°persist_js_state·has_pluto_hook_features§cell_idÙ$95c10e78-c60b-4bd0-9558-1858f80e157d¹depends_on_disabled_cells§runtimeÎ0�µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$148ac275-d22b-444e-bd2e-507decd5188eЦqueued¤logs�§running¦output†¤body…¦prefixªComplexF64¨elementsÜ’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’ ’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain’’ª0.25+0.0imªtext/plain¤type¥Array¬prefix_short ¨objectid°98c65c1778bad3b2¤mimeÙ!application/vnd.pluto.tree+object¬rootassigneeÀ²last_run_timestampËAÚ1ñ¶Ñ°persist_js_state·has_pluto_hook_features§cell_idÙ$148ac275-d22b-444e-bd2e-507decd5188e¹depends_on_disabled_cells§runtimeÍ&2µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$2f65cb30-99b2-4e68-bb77-1feae4c8be00Цqueued¤logs�§running¦output†¤body…¦prefixªComplexF64¨elements”’’©0.5+0.0imªtext/plain’’©0.5+0.0imªtext/plain’’©0.5+0.0imªtext/plain’’©0.5+0.0imªtext/plain¤type¥Array¬prefix_short ¨objectid°2c89ee7d7adcbe16¤mimeÙ!application/vnd.pluto.tree+object¬rootassigneeÀ²last_run_timestampËAÚ1ñ¼ÑR°persist_js_state·has_pluto_hook_features§cell_idÙ$2f65cb30-99b2-4e68-bb77-1feae4c8be00¹depends_on_disabled_cells§runtimeÍ;¸µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$69fdfe8d-0de8-4c61-ace2-b20f70af52deЦqueued¤logs�§running¦output†¤body…¦prefix§Float64¨elementsÜ’’£0.0ªtext/plain’’¤0.01ªtext/plain’’¤0.02ªtext/plain’’¤0.03ªtext/plain’’¤0.04ªtext/plain’’¤0.05ªtext/plain’’¤0.06ªtext/plain’’¤0.07ªtext/plain’ ’¤0.08ªtext/plain’ ’¤0.09ªtext/plain’ ’£0.1ªtext/plain’ ’¤0.11ªtext/plain’ ’¤0.12ªtext/plain’’¤0.13ªtext/plain’’¤0.14ªtext/plain’’¤0.15ªtext/plain’’¤0.16ªtext/plain’’¤0.17ªtext/plain’’¤0.18ªtext/plain’’¤0.19ªtext/plain¤more’Íà’¤9.91ªtext/plain’Íá’¤9.92ªtext/plain’Íâ’¤9.93ªtext/plain’Íã’¤9.94ªtext/plain’Íä’¤9.95ªtext/plain’Íå’¤9.96ªtext/plain’Íæ’¤9.97ªtext/plain’Íç’¤9.98ªtext/plain’Íè’¤9.99ªtext/plain’Íé’¤10.0ªtext/plain¤type¥Array¬prefix_short ¨objectid°ee59073bce67642c¤mimeÙ!application/vnd.pluto.tree+object¬rootassignee¥tlist²last_run_timestampËAÚ1î9yB°persist_js_state·has_pluto_hook_features§cell_idÙ$69fdfe8d-0de8-4c61-ace2-b20f70af52de¹depends_on_disabled_cells§runtime͵published_object_keys�¸depends_on_skipped_cells§erroredÂÙ$855b56e1-c95b-41e5-a933-57d6686a3c1eЦqueued¤logs�§running¦output†¤body…¦prefix¦String¨elements’’’¿"|01⟩⟨00| ↔ |11⟩⟨10|"ªtext/plain’’¿"|00⟩⟨01| ↔ |10⟩⟨11|"ªtext/plain¤type¥Array¬prefix_short ¨objectid°52337ba5ed03e9fc¤mimeÙ!application/vnd.pluto.tree+object¬rootassigneeÀ²last_run_timestampËAÚ1ñ›e°persist_js_state·has_pluto_hook_features§cell_idÙ$855b56e1-c95b-41e5-a933-57d6686a3c1e¹depends_on_disabled_cells§runtimeÍf.µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$6d064572-5af2-463b-8091-fb3defd36ef4Цqueued¤logs�§running¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ìg—–°persist_js_state·has_pluto_hook_features§cell_idÙ$6d064572-5af2-463b-8091-fb3defd36ef4¹depends_on_disabled_cells§runtimeÎwAµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$109055a1-edc4-4c83-8262-99cdcae5b1a5Цqueued¤logs�§running¦output†¤bodyÚp4×1001 Matrix{ComplexF64}: 0.5+0.0im 0.5005-2.38069e-26im 0.500999-8.06994e-26im … 0.81606+7.9742e-22im 0.5+0.0im 0.49975-3.10011e-29im 0.4995+3.71318e-28im 0.303265-3.35173e-18im 0.5+0.0im 0.49975-3.10011e-29im 0.4995+3.71318e-28im 0.303265-3.35173e-18im 0.5+0.0im 0.4995+1.80587e-26im 0.499001+4.51017e-26im 0.18394-5.27352e-23im¤mimeªtext/plain¬rootassignee¦states²last_run_timestampËAÚ1ð ù'°persist_js_state·has_pluto_hook_features§cell_idÙ$109055a1-edc4-4c83-8262-99cdcae5b1a5¹depends_on_disabled_cells§runtimeÎ捻™µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$28f7b3c0-be79-4d30-99b1-dd90f9f30b3fЦqueued¤logs�§running¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ1ìgs*°persist_js_state·has_pluto_hook_features§cell_idÙ$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f¹depends_on_disabled_cells§runtimeÎ2­µpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$2e405a3e-4b5e-489e-a651-5792ae26e089Цqueued¤logs�§running¦output†¤bodyÙ)2×2 Matrix{Float64}: 1.0 0.0 0.0 1.0¤mimeªtext/plain¬rootassignee¤ð�Ÿ™²last_run_timestampËAÚ1ñTÖØ°persist_js_state·has_pluto_hook_features§cell_idÙ$2e405a3e-4b5e-489e-a651-5792ae26e089¹depends_on_disabled_cells§runtimeÍ?Rµpublished_object_keys�¸depends_on_skipped_cells§erroredÂÙ$0a7a7970-d66d-41ca-8cb8-7180d288c9e6Цqueued¤logs�§running¦output†¤bodyÉl ¤mime­image/svg+xml¬rootassigneeÀ²last_run_timestampËAÚ1ð¿&-°persist_js_state·has_pluto_hook_features§cell_idÙ$0a7a7970-d66d-41ca-8cb8-7180d288c9e6¹depends_on_disabled_cells§runtimeÎW‘ ĵpublished_object_keys�¸depends_on_skipped_cells§errored±cell_dependenciesÞYÙ$a41f348d-7d13-4fd1-b7c7-abef440cf9b1„´precedence_heuristic §cell_idÙ$a41f348d-7d13-4fd1-b7c7-abef440cf9b1´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$777eefbd-a782-4388-af28-987fa43ef205„´precedence_heuristic §cell_idÙ$777eefbd-a782-4388-af28-987fa43ef205´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$a3fd0098-e0a1-4e9e-859f-37f1064cce29„´precedence_heuristic §cell_idÙ$a3fd0098-e0a1-4e9e-859f-37f1064cce29´downstream_cells_map€²upstream_cells_map‰¦length�¤pops‘Ù$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0¡:�¤hcat�¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52de¤plot�±states_composite1‘Ù$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2§adjoint�¤conj�Ù$8cd9f807-6b19-4aae-b222-1560f04c3afb„´precedence_heuristic §cell_idÙ$8cd9f807-6b19-4aae-b222-1560f04c3afb´downstream_cells_map�­partial_trace˜Ù$11ea567a-74dd-4a87-9695-7dfeccf49c0eÙ$2f65cb30-99b2-4e68-bb77-1feae4c8be00Ù$28a8661d-e5f5-4ecd-82d2-bb4f64c36039Ù$573dbc48-530a-4f52-8864-18aad432c147Ù$e210cf9e-a5d6-4d48-83e1-200008a1d9d3Ù$8a7d114b-eca7-47db-8191-8052ffc226b8Ù$3fca1322-b88c-4016-81d1-44a3a8013e32Ù$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33de²upstream_cells_mapÞ§@assert�¥Tuple�¡>�¦isless�¦length�¡<�£â‰¥�¿Base.require_one_based_indexing�¡^�¦eltype�¢==�³Base.AssertionError�¤@doc�¡:�ªBase.throw�¥error�¨@raw_str�¥zeros�º#___this_pluto_module_name�£Any�¤Base�¡-�§reshape�¢>=�¡+�¥Union�¡*�¥ndims�Ù$91ab02a1-65b0-43c4-99f3-08dbc274e0ed„´precedence_heuristic §cell_idÙ$91ab02a1-65b0-43c4-99f3-08dbc274e0ed´downstream_cells_mapƒ£JNZ‘Ù$855b56e1-c95b-41e5-a933-57d6686a3c1e£INZ‘Ù$855b56e1-c95b-41e5-a933-57d6686a3c1e£VNZ�²upstream_cells_map‚¦findnz‘Ù$6d064572-5af2-463b-8091-fb3defd36ef4¤diff‘Ù$dd2084d0-e587-4afa-bd17-d79f1260091eÙ$233b2763-5612-4786-9df0-17a6bdd10912„´precedence_heuristic §cell_idÙ$233b2763-5612-4786-9df0-17a6bdd10912´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33de„´precedence_heuristic §cell_idÙ$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33de´downstream_cells_map€²upstream_cells_mapˆ¦length�¡:�¤plot�¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52de¥plot!�¦purity‘Ù$629a5a46-0bea-4762-9c89-78c07cb43c72­partial_trace‘Ù$8cd9f807-6b19-4aae-b222-1560f04c3afb±states_composite2‘Ù$b958e41a-493c-4566-aebb-161868f15bcaÙ$4c62e504-4ab5-4eec-a2bc-0967f7a7ae64„´precedence_heuristic §cell_idÙ$4c62e504-4ab5-4eec-a2bc-0967f7a7ae64´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$107f5cb1-6f79-483a-bbd2-e292a1592986„´precedence_heuristic §cell_idÙ$107f5cb1-6f79-483a-bbd2-e292a1592986´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$e300efca-2800-4c0c-b915-ec8e4f81b292„´precedence_heuristic §cell_idÙ$e300efca-2800-4c0c-b915-ec8e4f81b292´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$dd8f6890-5234-4b1c-8ed7-b6d370c86876„´precedence_heuristic §cell_idÙ$dd8f6890-5234-4b1c-8ed7-b6d370c86876´downstream_cells_map�£âŠ—”Ù$296fa066-fc76-4a1b-9d70-57c0fe080966Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998Ù$452f72e9-6817-45db-a514-23ddd0a4ebb2²upstream_cells_map�¤kron‘Ù$4df2b6b2-8e4e-11f0-3732-a75c62505eb7Ù$89d0de66-b78a-4f0f-9134-84ca622f2ca3„´precedence_heuristic §cell_idÙ$89d0de66-b78a-4f0f-9134-84ca622f2ca3´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$531a7b9d-60bc-416e-9260-5757a4cc093c„´precedence_heuristic §cell_idÙ$531a7b9d-60bc-416e-9260-5757a4cc093c´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$0a3cef9f-4dd7-4469-b4ae-18c4e3093ced„´precedence_heuristic §cell_idÙ$0a3cef9f-4dd7-4469-b4ae-18c4e3093ced´downstream_cells_map�¢Î³‘Ù$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05²upstream_cells_map€Ù$72010ae9-8300-41bb-a10b-37927cd8e000„´precedence_heuristic §cell_idÙ$72010ae9-8300-41bb-a10b-37927cd8e000´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$e210cf9e-a5d6-4d48-83e1-200008a1d9d3„´precedence_heuristic §cell_idÙ$e210cf9e-a5d6-4d48-83e1-200008a1d9d3´downstream_cells_map€²upstream_cells_map‹¡:�¤hcat�§adjoint�¦length�¤pops‘Ù$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0¤plot�¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52de¥plot!�±states_composite1‘Ù$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2­partial_trace‘Ù$8cd9f807-6b19-4aae-b222-1560f04c3afb¤conj�Ù$c0342b62-302d-470c-9e96-128905bbe848„´precedence_heuristic §cell_idÙ$c0342b62-302d-470c-9e96-128905bbe848´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$113410b5-64b3-4fcb-9263-9ba89a013107„´precedence_heuristic §cell_idÙ$113410b5-64b3-4fcb-9263-9ba89a013107´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$a36ca5a6-f584-4bba-8e21-968bda4d5190„´precedence_heuristic §cell_idÙ$a36ca5a6-f584-4bba-8e21-968bda4d5190´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$f5d72c44-185e-40f9-be10-50ca467ae8bf„´precedence_heuristic §cell_idÙ$f5d72c44-185e-40f9-be10-50ca467ae8bf´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$28a8661d-e5f5-4ecd-82d2-bb4f64c36039„´precedence_heuristic §cell_idÙ$28a8661d-e5f5-4ecd-82d2-bb4f64c36039´downstream_cells_map€²upstream_cells_map…¢_C‘Ù$452f72e9-6817-45db-a514-23ddd0a4ebb2¡-�¤norm‘Ù$4df2b6b2-8e4e-11f0-3732-a75c62505eb7­partial_trace‘Ù$8cd9f807-6b19-4aae-b222-1560f04c3afb¢_B‘Ù$f3d99a0a-2188-4cb1-81d9-9670ece84610Ù$6b05ff89-52e0-4af1-8460-052222ebe93e„´precedence_heuristic §cell_idÙ$6b05ff89-52e0-4af1-8460-052222ebe93e´downstream_cells_map€²upstream_cells_map„¡:�¦purity‘Ù$629a5a46-0bea-4762-9c89-78c07cb43c72¦states‘Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5£end�Ù$452f72e9-6817-45db-a514-23ddd0a4ebb2„´precedence_heuristic §cell_idÙ$452f72e9-6817-45db-a514-23ddd0a4ebb2´downstream_cells_map�¢_C’Ù$28a8661d-e5f5-4ecd-82d2-bb4f64c36039Ù$573dbc48-530a-4f52-8864-18aad432c147²upstream_cells_mapƒ¢_A‘Ù$a734c0b3-eef1-43a7-801c-81b5fdda1219¢_B‘Ù$f3d99a0a-2188-4cb1-81d9-9670ece84610£âŠ—‘Ù$dd8f6890-5234-4b1c-8ed7-b6d370c86876Ù$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9e„´precedence_heuristic §cell_idÙ$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9e´downstream_cells_map€²upstream_cells_mapƒ¤pops‘Ù$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0¡:�¦states‘Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5Ù$f3d99a0a-2188-4cb1-81d9-9670ece84610„´precedence_heuristic §cell_idÙ$f3d99a0a-2188-4cb1-81d9-9670ece84610´downstream_cells_map‚¤Î¨_B�¢_B’Ù$452f72e9-6817-45db-a514-23ddd0a4ebb2Ù$28a8661d-e5f5-4ecd-82d2-bb4f64c36039²upstream_cells_map„¡*�§adjoint�¤conj�³random_state_vector‘Ù$ba6711cb-c036-4db8-953d-d9d71eaba585Ù$629a5a46-0bea-4762-9c89-78c07cb43c72„´precedence_heuristic §cell_idÙ$629a5a46-0bea-4762-9c89-78c07cb43c72´downstream_cells_map�¦purity•Ù$a286612a-2119-4860-9911-00eaa4ddebb9Ù$5adbc0dd-f040-4d8f-b960-593edf3c1b3cÙ$6b05ff89-52e0-4af1-8460-052222ebe93eÙ$8a7d114b-eca7-47db-8191-8052ffc226b8Ù$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33de²upstream_cells_map‹¥trace‘Ù$4df2b6b2-8e4e-11f0-3732-a75c62505eb7§@assert�¤size�¦length�¥isqrt�§reshape�¡^�®AssertionError�¥throw�¢==�£abs�Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998„´precedence_heuristic §cell_idÙ$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998´downstream_cells_map�¯Ï�â‚€_composite•Ù$148ac275-d22b-444e-bd2e-507decd5188eÙ$11ea567a-74dd-4a87-9695-7dfeccf49c0eÙ$2f65cb30-99b2-4e68-bb77-1feae4c8be00Ù$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2Ù$b958e41a-493c-4566-aebb-161868f15bca²upstream_cells_map‡¥Î¨â‚€‘Ù$ebad3a75-a9e9-4573-8d97-525ce8421fa1¡:�§reshape�¡*�§adjoint�¤conj�£âŠ—‘Ù$dd8f6890-5234-4b1c-8ed7-b6d370c86876Ù$11ea567a-74dd-4a87-9695-7dfeccf49c0e„´precedence_heuristic §cell_idÙ$11ea567a-74dd-4a87-9695-7dfeccf49c0e´downstream_cells_map€²upstream_cells_map‚¯Ï�â‚€_composite‘Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998­partial_trace‘Ù$8cd9f807-6b19-4aae-b222-1560f04c3afbÙ$a734c0b3-eef1-43a7-801c-81b5fdda1219„´precedence_heuristic §cell_idÙ$a734c0b3-eef1-43a7-801c-81b5fdda1219´downstream_cells_map‚¤Î¨_A�¢_A’Ù$452f72e9-6817-45db-a514-23ddd0a4ebb2Ù$573dbc48-530a-4f52-8864-18aad432c147²upstream_cells_map„¡*�§adjoint�¤conj�³random_state_vector‘Ù$ba6711cb-c036-4db8-953d-d9d71eaba585Ù$f8d76484-05e6-4a72-98c8-3f33b06f4306„´precedence_heuristic §cell_idÙ$f8d76484-05e6-4a72-98c8-3f33b06f4306´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$20eb5f97-ca69-434d-80ec-5c99b8f153c1„´precedence_heuristic §cell_idÙ$20eb5f97-ca69-434d-80ec-5c99b8f153c1´downstream_cells_map�®superop_labels‘Ù$855b56e1-c95b-41e5-a933-57d6686a3c1e²upstream_cells_mapƒ¡:�§reshape�°composite_labels‘Ù$46b81556-c322-4d06-8a8d-5e69caefff63Ù$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2„´precedence_heuristic §cell_idÙ$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2´downstream_cells_map�±states_composite1”Ù$a3fd0098-e0a1-4e9e-859f-37f1064cce29Ù$e210cf9e-a5d6-4d48-83e1-200008a1d9d3Ù$8a7d114b-eca7-47db-8191-8052ffc226b8Ù$29b3077f-fe4a-4ed9-910b-532af7b5684b²upstream_cells_map…¢L1‘Ù$296fa066-fc76-4a1b-9d70-57c0fe080966¦Newton‘Ù$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f¯Ï�â‚€_composite‘Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998©propagate‘Ù$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52deÙ$378380e4-7043-434d-8933-72b36e3a8981„´precedence_heuristic §cell_idÙ$378380e4-7043-434d-8933-72b36e3a8981´downstream_cells_map�¡L‘Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5²upstream_cells_mapƒ¡A‘Ù$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05«liouvillian‘Ù$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5¡H‘Ù$0d819a8e-95d8-43e4-846d-1b1a44cb9214Ù$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0„´precedence_heuristic §cell_idÙ$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0´downstream_cells_map�¤pops–Ù$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9eÙ$0a7a7970-d66d-41ca-8cb8-7180d288c9e6Ù$a3fd0098-e0a1-4e9e-859f-37f1064cce29Ù$e210cf9e-a5d6-4d48-83e1-200008a1d9d3Ù$b307c37f-2395-4806-a35f-a9118bb9adf9Ù$3fca1322-b88c-4016-81d1-44a3a8013e32²upstream_cells_map…¥error�§Float64�¤size�¢==�£abs�Ù$337e927c-6c23-4afe-9a62-bf30f3a12c0a„´precedence_heuristic §cell_idÙ$337e927c-6c23-4afe-9a62-bf30f3a12c0a´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$a86b96af-f20d-48ac-b493-12204567a21c„´precedence_heuristic §cell_idÙ$a86b96af-f20d-48ac-b493-12204567a21c´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$b2ac08e1-8e2a-43ad-bb49-7441408d0571„´precedence_heuristic §cell_idÙ$b2ac08e1-8e2a-43ad-bb49-7441408d0571´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$9fa924d6-f287-4f6c-b5b6-1adb4909318c„´precedence_heuristic §cell_idÙ$9fa924d6-f287-4f6c-b5b6-1adb4909318c´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$90ff733c-01ac-48d0-a6b6-faa5021a8a9b„´precedence_heuristic§cell_idÙ$90ff733c-01ac-48d0-a6b6-faa5021a8a9b´downstream_cells_map�­LinearAlgebra�²upstream_cells_map€Ù$208b3fda-4263-4f7d-b73d-25eedd1771aa„´precedence_heuristic §cell_idÙ$208b3fda-4263-4f7d-b73d-25eedd1771aa´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05„´precedence_heuristic §cell_idÙ$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05´downstream_cells_map�¡A“Ù$378380e4-7043-434d-8933-72b36e3a8981Ù$296fa066-fc76-4a1b-9d70-57c0fe080966Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6²upstream_cells_mapˆ¢Î³‘Ù$0a3cef9f-4dd7-4469-b4ae-18c4e3093ced¤sqrt�£âˆš�¡*�¤ket1‘Ù$6aa6f586-9977-476f-a306-73345c0bbc30§adjoint�¤conj�¤ket0‘Ù$cb5f6496-3170-4f07-808a-c641c98469d7Ù$1799c3d7-97c9-4602-9a02-7a0691ddf80e„´precedence_heuristic §cell_idÙ$1799c3d7-97c9-4602-9a02-7a0691ddf80e´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6„´precedence_heuristic §cell_idÙ$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6´downstream_cells_map�¢L2“Ù$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5Ù$dd2084d0-e587-4afa-bd17-d79f1260091eÙ$b958e41a-493c-4566-aebb-161868f15bca²upstream_cells_map‹¡A‘Ù$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05¤ð�Ÿ™‘Ù$2e405a3e-4b5e-489e-a651-5792ae26e089§adjoint�«liouvillian‘Ù$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5£âŠ—‘Ù$dd8f6890-5234-4b1c-8ed7-b6d370c86876¤ket1‘Ù$6aa6f586-9977-476f-a306-73345c0bbc30¡+�¡*�¤conj�¡H‘Ù$0d819a8e-95d8-43e4-846d-1b1a44cb9214¤ket0‘Ù$cb5f6496-3170-4f07-808a-c641c98469d7Ù$f3bd26e5-f6d4-4833-88aa-01ba389451b1„´precedence_heuristic §cell_idÙ$f3bd26e5-f6d4-4833-88aa-01ba389451b1´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$8e9523fc-2810-4370-b1cc-e159b588ea83„´precedence_heuristic §cell_idÙ$8e9523fc-2810-4370-b1cc-e159b588ea83´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$9029c42e-462d-4bc6-9d9f-edc53fb28ded„´precedence_heuristic §cell_idÙ$9029c42e-462d-4bc6-9d9f-edc53fb28ded´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$6aa6f586-9977-476f-a306-73345c0bbc30„´precedence_heuristic §cell_idÙ$6aa6f586-9977-476f-a306-73345c0bbc30´downstream_cells_map�¤ket1“Ù$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05Ù$ebad3a75-a9e9-4573-8d97-525ce8421fa1Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6²upstream_cells_map�ªComplexF64�Ù$e06b72c2-913d-4de9-8ef1-af12a1a2b8c8„´precedence_heuristic §cell_idÙ$e06b72c2-913d-4de9-8ef1-af12a1a2b8c8´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$0d819a8e-95d8-43e4-846d-1b1a44cb9214„´precedence_heuristic §cell_idÙ$0d819a8e-95d8-43e4-846d-1b1a44cb9214´downstream_cells_map�¡H“Ù$378380e4-7043-434d-8933-72b36e3a8981Ù$296fa066-fc76-4a1b-9d70-57c0fe080966Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6²upstream_cells_map€Ù$50703d4a-b742-4ccb-9f1a-2171d94e5e0a„´precedence_heuristic §cell_idÙ$50703d4a-b742-4ccb-9f1a-2171d94e5e0a´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$3fca1322-b88c-4016-81d1-44a3a8013e32„´precedence_heuristic §cell_idÙ$3fca1322-b88c-4016-81d1-44a3a8013e32´downstream_cells_map€²upstream_cells_map‹¡:�¤hcat�±states_composite2‘Ù$b958e41a-493c-4566-aebb-161868f15bca§adjoint�¦length�¤pops‘Ù$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0¤plot�¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52de¥plot!�­partial_trace‘Ù$8cd9f807-6b19-4aae-b222-1560f04c3afb¤conj�Ù$29b3077f-fe4a-4ed9-910b-532af7b5684b„´precedence_heuristic §cell_idÙ$29b3077f-fe4a-4ed9-910b-532af7b5684b´downstream_cells_map€²upstream_cells_map„¡-�±states_composite1‘Ù$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2¤norm‘Ù$4df2b6b2-8e4e-11f0-3732-a75c62505eb7±states_composite2‘Ù$b958e41a-493c-4566-aebb-161868f15bcaÙ$96b3bbd3-966c-4912-82cc-ff01f089f066„´precedence_heuristic §cell_idÙ$96b3bbd3-966c-4912-82cc-ff01f089f066´downstream_cells_map�¥Ï�â‚€‘Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5²upstream_cells_map†¡:�§reshape�¡*�§adjoint�¤conj�¥Î¨â‚€‘Ù$ebad3a75-a9e9-4573-8d97-525ce8421fa1Ù$d565abf9-4b59-429e-834c-d390017a5b53„´precedence_heuristic §cell_idÙ$d565abf9-4b59-429e-834c-d390017a5b53´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$b307c37f-2395-4806-a35f-a9118bb9adf9„´precedence_heuristic §cell_idÙ$b307c37f-2395-4806-a35f-a9118bb9adf9´downstream_cells_map€²upstream_cells_map‰¦length�¤pops‘Ù$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0¡:�¤hcat�¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52de¤plot�±states_composite2‘Ù$b958e41a-493c-4566-aebb-161868f15bca§adjoint�¤conj�Ù$6fdf587d-4555-445e-b392-5ddc99c34bb6„´precedence_heuristic §cell_idÙ$6fdf587d-4555-445e-b392-5ddc99c34bb6´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5„´precedence_heuristic §cell_idÙ$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5´downstream_cells_map€²upstream_cells_map„¢L2‘Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6¢L1‘Ù$296fa066-fc76-4a1b-9d70-57c0fe080966¡-�¤norm‘Ù$4df2b6b2-8e4e-11f0-3732-a75c62505eb7Ù$e944732c-ab82-4b09-b9e6-7fc8df1dbcba„´precedence_heuristic §cell_idÙ$e944732c-ab82-4b09-b9e6-7fc8df1dbcba´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$9d5ee94b-250a-4062-8d97-b7f789edce25„´precedence_heuristic §cell_idÙ$9d5ee94b-250a-4062-8d97-b7f789edce25´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$5adbc0dd-f040-4d8f-b960-593edf3c1b3c„´precedence_heuristic §cell_idÙ$5adbc0dd-f040-4d8f-b960-593edf3c1b3c´downstream_cells_map€²upstream_cells_mapƒ¡:�¦purity‘Ù$629a5a46-0bea-4762-9c89-78c07cb43c72¦states‘Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5Ù$fe72a230-9546-4962-82a8-c5980fb297b1„´precedence_heuristic §cell_idÙ$fe72a230-9546-4962-82a8-c5980fb297b1´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$8a7d114b-eca7-47db-8191-8052ffc226b8„´precedence_heuristic §cell_idÙ$8a7d114b-eca7-47db-8191-8052ffc226b8´downstream_cells_map€²upstream_cells_mapˆ¦length�¡:�¤plot�¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52de¥plot!�±states_composite1‘Ù$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2¦purity‘Ù$629a5a46-0bea-4762-9c89-78c07cb43c72­partial_trace‘Ù$8cd9f807-6b19-4aae-b222-1560f04c3afbÙ$dd2084d0-e587-4afa-bd17-d79f1260091e„´precedence_heuristic §cell_idÙ$dd2084d0-e587-4afa-bd17-d79f1260091e´downstream_cells_map�¤diff‘Ù$91ab02a1-65b0-43c4-99f3-08dbc274e0ed²upstream_cells_mapƒ¢L2‘Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6¢L1‘Ù$296fa066-fc76-4a1b-9d70-57c0fe080966¡-�Ù$573dbc48-530a-4f52-8864-18aad432c147„´precedence_heuristic §cell_idÙ$573dbc48-530a-4f52-8864-18aad432c147´downstream_cells_map€²upstream_cells_map…¢_A‘Ù$a734c0b3-eef1-43a7-801c-81b5fdda1219¢_C‘Ù$452f72e9-6817-45db-a514-23ddd0a4ebb2¡-�¤norm‘Ù$4df2b6b2-8e4e-11f0-3732-a75c62505eb7­partial_trace‘Ù$8cd9f807-6b19-4aae-b222-1560f04c3afbÙ$a286612a-2119-4860-9911-00eaa4ddebb9„´precedence_heuristic §cell_idÙ$a286612a-2119-4860-9911-00eaa4ddebb9´downstream_cells_map€²upstream_cells_map†¦length�¡:�¤plot�¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52de¦purity‘Ù$629a5a46-0bea-4762-9c89-78c07cb43c72¦states‘Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5Ù$0d20207a-ac00-483e-a1db-e0755845a7e6„´precedence_heuristic §cell_idÙ$0d20207a-ac00-483e-a1db-e0755845a7e6´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$cb5f6496-3170-4f07-808a-c641c98469d7„´precedence_heuristic §cell_idÙ$cb5f6496-3170-4f07-808a-c641c98469d7´downstream_cells_map�¤ket0“Ù$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05Ù$ebad3a75-a9e9-4573-8d97-525ce8421fa1Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6²upstream_cells_map�ªComplexF64�Ù$46b81556-c322-4d06-8a8d-5e69caefff63„´precedence_heuristic §cell_idÙ$46b81556-c322-4d06-8a8d-5e69caefff63´downstream_cells_map�°composite_labels‘Ù$20eb5f97-ca69-434d-80ec-5c99b8f153c1²upstream_cells_map€Ù$d45416d2-ba22-43d3-bc6a-6e7edf050be8„´precedence_heuristic §cell_idÙ$d45416d2-ba22-43d3-bc6a-6e7edf050be8´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$296fa066-fc76-4a1b-9d70-57c0fe080966„´precedence_heuristic §cell_idÙ$296fa066-fc76-4a1b-9d70-57c0fe080966´downstream_cells_map�¢L1“Ù$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5Ù$dd2084d0-e587-4afa-bd17-d79f1260091eÙ$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2²upstream_cells_map†¡A‘Ù$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05¡+�¤ð�Ÿ™‘Ù$2e405a3e-4b5e-489e-a651-5792ae26e089«liouvillian‘Ù$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5¡H‘Ù$0d819a8e-95d8-43e4-846d-1b1a44cb9214£âŠ—‘Ù$dd8f6890-5234-4b1c-8ed7-b6d370c86876Ù$9e8682c2-0e3d-4515-bb1f-28a8d339402a„´precedence_heuristic §cell_idÙ$9e8682c2-0e3d-4515-bb1f-28a8d339402a´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5„´precedence_heuristic§cell_idÙ$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5´downstream_cells_map�«liouvillian“Ù$378380e4-7043-434d-8933-72b36e3a8981Ù$296fa066-fc76-4a1b-9d70-57c0fe080966Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6²upstream_cells_map€Ù$3a19ed7c-0c11-4415-a397-e8c195d966c8„´precedence_heuristic §cell_idÙ$3a19ed7c-0c11-4415-a397-e8c195d966c8´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$07ac2aab-759e-4aea-afa4-dbdb46568fc7„´precedence_heuristic §cell_idÙ$07ac2aab-759e-4aea-afa4-dbdb46568fc7´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$ebad3a75-a9e9-4573-8d97-525ce8421fa1„´precedence_heuristic §cell_idÙ$ebad3a75-a9e9-4573-8d97-525ce8421fa1´downstream_cells_map�¥Î¨â‚€’Ù$96b3bbd3-966c-4912-82cc-ff01f089f066Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998²upstream_cells_map†¤sqrt�¡/�£âˆš�¡+�¤ket1‘Ù$6aa6f586-9977-476f-a306-73345c0bbc30¤ket0‘Ù$cb5f6496-3170-4f07-808a-c641c98469d7Ù$4df2b6b2-8e4e-11f0-3732-a75c62505eb7„´precedence_heuristic§cell_idÙ$4df2b6b2-8e4e-11f0-3732-a75c62505eb7´downstream_cells_map…¥trace‘Ù$629a5a46-0bea-4762-9c89-78c07cb43c72§PlutoUI�¥Plots�¤kron‘Ù$dd8f6890-5234-4b1c-8ed7-b6d370c86876¤norm”Ù$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5Ù$28a8661d-e5f5-4ecd-82d2-bb4f64c36039Ù$573dbc48-530a-4f52-8864-18aad432c147Ù$29b3077f-fe4a-4ed9-910b-532af7b5684b²upstream_cells_map�¯TableOfContents�Ù$906eb8c1-c1bc-4c61-8e22-8ab6eb91182f„´precedence_heuristic §cell_idÙ$906eb8c1-c1bc-4c61-8e22-8ab6eb91182f´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$ba6711cb-c036-4db8-953d-d9d71eaba585„´precedence_heuristic§cell_idÙ$ba6711cb-c036-4db8-953d-d9d71eaba585´downstream_cells_map�³random_state_vector’Ù$a734c0b3-eef1-43a7-801c-81b5fdda1219Ù$f3d99a0a-2188-4cb1-81d9-9670ece84610²upstream_cells_map€Ù$b958e41a-493c-4566-aebb-161868f15bca„´precedence_heuristic §cell_idÙ$b958e41a-493c-4566-aebb-161868f15bca´downstream_cells_map�±states_composite2”Ù$b307c37f-2395-4806-a35f-a9118bb9adf9Ù$29b3077f-fe4a-4ed9-910b-532af7b5684bÙ$3fca1322-b88c-4016-81d1-44a3a8013e32Ù$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33de²upstream_cells_map…¢L2‘Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6¦Newton‘Ù$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f¯Ï�â‚€_composite‘Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998©propagate‘Ù$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52deÙ$95c10e78-c60b-4bd0-9558-1858f80e157d„´precedence_heuristic §cell_idÙ$95c10e78-c60b-4bd0-9558-1858f80e157d´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$148ac275-d22b-444e-bd2e-507decd5188e„´precedence_heuristic §cell_idÙ$148ac275-d22b-444e-bd2e-507decd5188e´downstream_cells_map€²upstream_cells_map�¯Ï�â‚€_composite‘Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998Ù$2f65cb30-99b2-4e68-bb77-1feae4c8be00„´precedence_heuristic §cell_idÙ$2f65cb30-99b2-4e68-bb77-1feae4c8be00´downstream_cells_map€²upstream_cells_map‚¯Ï�â‚€_composite‘Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998­partial_trace‘Ù$8cd9f807-6b19-4aae-b222-1560f04c3afbÙ$69fdfe8d-0de8-4c61-ace2-b20f70af52de„´precedence_heuristic §cell_idÙ$69fdfe8d-0de8-4c61-ace2-b20f70af52de´downstream_cells_map�¥tlist›Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5Ù$0a7a7970-d66d-41ca-8cb8-7180d288c9e6Ù$a286612a-2119-4860-9911-00eaa4ddebb9Ù$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2Ù$a3fd0098-e0a1-4e9e-859f-37f1064cce29Ù$e210cf9e-a5d6-4d48-83e1-200008a1d9d3Ù$8a7d114b-eca7-47db-8191-8052ffc226b8Ù$b958e41a-493c-4566-aebb-161868f15bcaÙ$b307c37f-2395-4806-a35f-a9118bb9adf9Ù$3fca1322-b88c-4016-81d1-44a3a8013e32Ù$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33de²upstream_cells_map‚¥range�§collect�Ù$855b56e1-c95b-41e5-a933-57d6686a3c1e„´precedence_heuristic §cell_idÙ$855b56e1-c95b-41e5-a933-57d6686a3c1e´downstream_cells_map€²upstream_cells_map„®superop_labels‘Ù$20eb5f97-ca69-434d-80ec-5c99b8f153c1£JNZ‘Ù$91ab02a1-65b0-43c4-99f3-08dbc274e0ed£INZ‘Ù$91ab02a1-65b0-43c4-99f3-08dbc274e0ed£zip�Ù$6d064572-5af2-463b-8091-fb3defd36ef4„´precedence_heuristic§cell_idÙ$6d064572-5af2-463b-8091-fb3defd36ef4´downstream_cells_map�¦findnz‘Ù$91ab02a1-65b0-43c4-99f3-08dbc274e0ed²upstream_cells_map€Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5„´precedence_heuristic §cell_idÙ$109055a1-edc4-4c83-8262-99cdcae5b1a5´downstream_cells_map�¦states•Ù$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9eÙ$0a7a7970-d66d-41ca-8cb8-7180d288c9e6Ù$a286612a-2119-4860-9911-00eaa4ddebb9Ù$5adbc0dd-f040-4d8f-b960-593edf3c1b3cÙ$6b05ff89-52e0-4af1-8460-052222ebe93e²upstream_cells_map…¦Newton‘Ù$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f©propagate‘Ù$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52de¥Ï�â‚€‘Ù$96b3bbd3-966c-4912-82cc-ff01f089f066¡L‘Ù$378380e4-7043-434d-8933-72b36e3a8981Ù$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f„´precedence_heuristic§cell_idÙ$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f´downstream_cells_map‚¦Newton“Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5Ù$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2Ù$b958e41a-493c-4566-aebb-161868f15bca©propagate“Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5Ù$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2Ù$b958e41a-493c-4566-aebb-161868f15bca²upstream_cells_map€Ù$2e405a3e-4b5e-489e-a651-5792ae26e089„´precedence_heuristic §cell_idÙ$2e405a3e-4b5e-489e-a651-5792ae26e089´downstream_cells_map�¤ð�Ÿ™’Ù$296fa066-fc76-4a1b-9d70-57c0fe080966Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6²upstream_cells_map€Ù$0a7a7970-d66d-41ca-8cb8-7180d288c9e6„´precedence_heuristic §cell_idÙ$0a7a7970-d66d-41ca-8cb8-7180d288c9e6´downstream_cells_map€²upstream_cells_map‰¦length�¤pops‘Ù$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0¡:�¤hcat�¥tlist‘Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52de¤plot�§adjoint�¤conj�¦states‘Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5´cell_execution_orderÜYÙ$4df2b6b2-8e4e-11f0-3732-a75c62505eb7Ù$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5Ù$28f7b3c0-be79-4d30-99b1-dd90f9f30b3fÙ$6d064572-5af2-463b-8091-fb3defd36ef4Ù$ba6711cb-c036-4db8-953d-d9d71eaba585Ù$90ff733c-01ac-48d0-a6b6-faa5021a8a9bÙ$531a7b9d-60bc-416e-9260-5757a4cc093cÙ$a41f348d-7d13-4fd1-b7c7-abef440cf9b1Ù$50703d4a-b742-4ccb-9f1a-2171d94e5e0aÙ$107f5cb1-6f79-483a-bbd2-e292a1592986Ù$0d819a8e-95d8-43e4-846d-1b1a44cb9214Ù$cb5f6496-3170-4f07-808a-c641c98469d7Ù$6aa6f586-9977-476f-a306-73345c0bbc30Ù$f3bd26e5-f6d4-4833-88aa-01ba389451b1Ù$0a3cef9f-4dd7-4469-b4ae-18c4e3093cedÙ$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05Ù$e06b72c2-913d-4de9-8ef1-af12a1a2b8c8Ù$378380e4-7043-434d-8933-72b36e3a8981Ù$4c62e504-4ab5-4eec-a2bc-0967f7a7ae64Ù$0d20207a-ac00-483e-a1db-e0755845a7e6Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52deÙ$ebad3a75-a9e9-4573-8d97-525ce8421fa1Ù$96b3bbd3-966c-4912-82cc-ff01f089f066Ù$9d5ee94b-250a-4062-8d97-b7f789edce25Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5Ù$6fdf587d-4555-445e-b392-5ddc99c34bb6Ù$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0Ù$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9eÙ$0a7a7970-d66d-41ca-8cb8-7180d288c9e6Ù$89d0de66-b78a-4f0f-9134-84ca622f2ca3Ù$629a5a46-0bea-4762-9c89-78c07cb43c72Ù$a286612a-2119-4860-9911-00eaa4ddebb9Ù$72010ae9-8300-41bb-a10b-37927cd8e000Ù$5adbc0dd-f040-4d8f-b960-593edf3c1b3cÙ$6b05ff89-52e0-4af1-8460-052222ebe93eÙ$9029c42e-462d-4bc6-9d9f-edc53fb28dedÙ$e300efca-2800-4c0c-b915-ec8e4f81b292Ù$2e405a3e-4b5e-489e-a651-5792ae26e089Ù$dd8f6890-5234-4b1c-8ed7-b6d370c86876Ù$a86b96af-f20d-48ac-b493-12204567a21cÙ$296fa066-fc76-4a1b-9d70-57c0fe080966Ù$f8d76484-05e6-4a72-98c8-3f33b06f4306Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6Ù$c0342b62-302d-470c-9e96-128905bbe848Ù$1799c3d7-97c9-4602-9a02-7a0691ddf80eÙ$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5Ù$dd2084d0-e587-4afa-bd17-d79f1260091eÙ$9fa924d6-f287-4f6c-b5b6-1adb4909318cÙ$91ab02a1-65b0-43c4-99f3-08dbc274e0edÙ$46b81556-c322-4d06-8a8d-5e69caefff63Ù$20eb5f97-ca69-434d-80ec-5c99b8f153c1Ù$855b56e1-c95b-41e5-a933-57d6686a3c1eÙ$07ac2aab-759e-4aea-afa4-dbdb46568fc7Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998Ù$113410b5-64b3-4fcb-9263-9ba89a013107Ù$8cd9f807-6b19-4aae-b222-1560f04c3afbÙ$148ac275-d22b-444e-bd2e-507decd5188eÙ$d565abf9-4b59-429e-834c-d390017a5b53Ù$fe72a230-9546-4962-82a8-c5980fb297b1Ù$11ea567a-74dd-4a87-9695-7dfeccf49c0eÙ$233b2763-5612-4786-9df0-17a6bdd10912Ù$2f65cb30-99b2-4e68-bb77-1feae4c8be00Ù$b2ac08e1-8e2a-43ad-bb49-7441408d0571Ù$a734c0b3-eef1-43a7-801c-81b5fdda1219Ù$f3d99a0a-2188-4cb1-81d9-9670ece84610Ù$452f72e9-6817-45db-a514-23ddd0a4ebb2Ù$28a8661d-e5f5-4ecd-82d2-bb4f64c36039Ù$573dbc48-530a-4f52-8864-18aad432c147Ù$906eb8c1-c1bc-4c61-8e22-8ab6eb91182fÙ$e944732c-ab82-4b09-b9e6-7fc8df1dbcbaÙ$337e927c-6c23-4afe-9a62-bf30f3a12c0aÙ$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2Ù$a3fd0098-e0a1-4e9e-859f-37f1064cce29Ù$777eefbd-a782-4388-af28-987fa43ef205Ù$e210cf9e-a5d6-4d48-83e1-200008a1d9d3Ù$9e8682c2-0e3d-4515-bb1f-28a8d339402aÙ$8a7d114b-eca7-47db-8191-8052ffc226b8Ù$3a19ed7c-0c11-4415-a397-e8c195d966c8Ù$208b3fda-4263-4f7d-b73d-25eedd1771aaÙ$d45416d2-ba22-43d3-bc6a-6e7edf050be8Ù$b958e41a-493c-4566-aebb-161868f15bcaÙ$b307c37f-2395-4806-a35f-a9118bb9adf9Ù$95c10e78-c60b-4bd0-9558-1858f80e157dÙ$29b3077f-fe4a-4ed9-910b-532af7b5684bÙ$f5d72c44-185e-40f9-be10-50ca467ae8bfÙ$3fca1322-b88c-4016-81d1-44a3a8013e32Ù$a36ca5a6-f584-4bba-8e21-968bda4d5190Ù$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33deÙ$8e9523fc-2810-4370-b1cc-e159b588ea83´last_hot_reload_timeË©shortpath·CompositeDissipation.jl®process_status¥ready¤pathÙk/home/runner/work/2025-09-11_Composite_Dissipation/2025-09-11_Composite_Dissipation/CompositeDissipation.jl­pluto_version¨v0.20.18®last_save_timeËAÚ1æâ(úªcell_orderÜYÙ$531a7b9d-60bc-416e-9260-5757a4cc093cÙ$4df2b6b2-8e4e-11f0-3732-a75c62505eb7Ù$a41f348d-7d13-4fd1-b7c7-abef440cf9b1Ù$50703d4a-b742-4ccb-9f1a-2171d94e5e0aÙ$107f5cb1-6f79-483a-bbd2-e292a1592986Ù$0d819a8e-95d8-43e4-846d-1b1a44cb9214Ù$cb5f6496-3170-4f07-808a-c641c98469d7Ù$6aa6f586-9977-476f-a306-73345c0bbc30Ù$f3bd26e5-f6d4-4833-88aa-01ba389451b1Ù$0a3cef9f-4dd7-4469-b4ae-18c4e3093cedÙ$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05Ù$e06b72c2-913d-4de9-8ef1-af12a1a2b8c8Ù$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5Ù$378380e4-7043-434d-8933-72b36e3a8981Ù$4c62e504-4ab5-4eec-a2bc-0967f7a7ae64Ù$28f7b3c0-be79-4d30-99b1-dd90f9f30b3fÙ$0d20207a-ac00-483e-a1db-e0755845a7e6Ù$69fdfe8d-0de8-4c61-ace2-b20f70af52deÙ$ebad3a75-a9e9-4573-8d97-525ce8421fa1Ù$96b3bbd3-966c-4912-82cc-ff01f089f066Ù$9d5ee94b-250a-4062-8d97-b7f789edce25Ù$109055a1-edc4-4c83-8262-99cdcae5b1a5Ù$6fdf587d-4555-445e-b392-5ddc99c34bb6Ù$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0Ù$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9eÙ$0a7a7970-d66d-41ca-8cb8-7180d288c9e6Ù$89d0de66-b78a-4f0f-9134-84ca622f2ca3Ù$629a5a46-0bea-4762-9c89-78c07cb43c72Ù$a286612a-2119-4860-9911-00eaa4ddebb9Ù$72010ae9-8300-41bb-a10b-37927cd8e000Ù$5adbc0dd-f040-4d8f-b960-593edf3c1b3cÙ$6b05ff89-52e0-4af1-8460-052222ebe93eÙ$9029c42e-462d-4bc6-9d9f-edc53fb28dedÙ$e300efca-2800-4c0c-b915-ec8e4f81b292Ù$2e405a3e-4b5e-489e-a651-5792ae26e089Ù$dd8f6890-5234-4b1c-8ed7-b6d370c86876Ù$a86b96af-f20d-48ac-b493-12204567a21cÙ$296fa066-fc76-4a1b-9d70-57c0fe080966Ù$f8d76484-05e6-4a72-98c8-3f33b06f4306Ù$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6Ù$c0342b62-302d-470c-9e96-128905bbe848Ù$1799c3d7-97c9-4602-9a02-7a0691ddf80eÙ$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5Ù$dd2084d0-e587-4afa-bd17-d79f1260091eÙ$6d064572-5af2-463b-8091-fb3defd36ef4Ù$9fa924d6-f287-4f6c-b5b6-1adb4909318cÙ$91ab02a1-65b0-43c4-99f3-08dbc274e0edÙ$46b81556-c322-4d06-8a8d-5e69caefff63Ù$20eb5f97-ca69-434d-80ec-5c99b8f153c1Ù$855b56e1-c95b-41e5-a933-57d6686a3c1eÙ$07ac2aab-759e-4aea-afa4-dbdb46568fc7Ù$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998Ù$113410b5-64b3-4fcb-9263-9ba89a013107Ù$8cd9f807-6b19-4aae-b222-1560f04c3afbÙ$148ac275-d22b-444e-bd2e-507decd5188eÙ$d565abf9-4b59-429e-834c-d390017a5b53Ù$fe72a230-9546-4962-82a8-c5980fb297b1Ù$11ea567a-74dd-4a87-9695-7dfeccf49c0eÙ$233b2763-5612-4786-9df0-17a6bdd10912Ù$2f65cb30-99b2-4e68-bb77-1feae4c8be00Ù$b2ac08e1-8e2a-43ad-bb49-7441408d0571Ù$ba6711cb-c036-4db8-953d-d9d71eaba585Ù$a734c0b3-eef1-43a7-801c-81b5fdda1219Ù$f3d99a0a-2188-4cb1-81d9-9670ece84610Ù$90ff733c-01ac-48d0-a6b6-faa5021a8a9bÙ$452f72e9-6817-45db-a514-23ddd0a4ebb2Ù$28a8661d-e5f5-4ecd-82d2-bb4f64c36039Ù$573dbc48-530a-4f52-8864-18aad432c147Ù$906eb8c1-c1bc-4c61-8e22-8ab6eb91182fÙ$e944732c-ab82-4b09-b9e6-7fc8df1dbcbaÙ$337e927c-6c23-4afe-9a62-bf30f3a12c0aÙ$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2Ù$a3fd0098-e0a1-4e9e-859f-37f1064cce29Ù$777eefbd-a782-4388-af28-987fa43ef205Ù$e210cf9e-a5d6-4d48-83e1-200008a1d9d3Ù$9e8682c2-0e3d-4515-bb1f-28a8d339402aÙ$8a7d114b-eca7-47db-8191-8052ffc226b8Ù$3a19ed7c-0c11-4415-a397-e8c195d966c8Ù$208b3fda-4263-4f7d-b73d-25eedd1771aaÙ$d45416d2-ba22-43d3-bc6a-6e7edf050be8Ù$b958e41a-493c-4566-aebb-161868f15bcaÙ$b307c37f-2395-4806-a35f-a9118bb9adf9Ù$95c10e78-c60b-4bd0-9558-1858f80e157dÙ$29b3077f-fe4a-4ed9-910b-532af7b5684bÙ$f5d72c44-185e-40f9-be10-50ca467ae8bfÙ$3fca1322-b88c-4016-81d1-44a3a8013e32Ù$a36ca5a6-f584-4bba-8e21-968bda4d5190Ù$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33deÙ$8e9523fc-2810-4370-b1cc-e159b588ea83±published_objects€¥nbpkgНinstall_time_nsÏ Å|Ьinstantiatedòinstalled_versions†·QuantumControlTestUtils¥0.3.1­LinearAlgebra¦stdlib§PlutoUI¦0.7.71¥Plots§1.40.18¬SparseArrays¦stdlib²QuantumPropagators¥0.8.3°terminal_outputs‡·QuantumControlTestUtilsÚ¸ Resolving... ===  No Changes to `/tmp/jl_XP4FCH/Project.toml`  No Changes to `/tmp/jl_XP4FCH/Manifest.toml` Instantiating... === Precompiling... === [debug cache flags] CacheFlags(; use_pkgimages=true, debug_level=1, check_bounds=0, inline=true, opt_level=2)  Activating project at `/tmp/jl_XP4FCH`ªnbpkg_syncÚ¸ Resolving... ===  No Changes to `/tmp/jl_XP4FCH/Project.toml`  No Changes to `/tmp/jl_XP4FCH/Manifest.toml` Instantiating... === Precompiling... === [debug cache flags] CacheFlags(; use_pkgimages=true, debug_level=1, check_bounds=0, inline=true, opt_level=2)  Activating project at `/tmp/jl_XP4FCH`­LinearAlgebraÚ¸ Resolving... ===  No Changes to `/tmp/jl_XP4FCH/Project.toml`  No Changes to `/tmp/jl_XP4FCH/Manifest.toml` Instantiating... === Precompiling... === [debug cache flags] CacheFlags(; use_pkgimages=true, debug_level=1, check_bounds=0, inline=true, opt_level=2)  Activating project at `/tmp/jl_XP4FCH`§PlutoUIÚ¸ Resolving... ===  No Changes to `/tmp/jl_XP4FCH/Project.toml`  No Changes to `/tmp/jl_XP4FCH/Manifest.toml` Instantiating... === Precompiling... === [debug cache flags] CacheFlags(; use_pkgimages=true, debug_level=1, check_bounds=0, inline=true, opt_level=2)  Activating project at `/tmp/jl_XP4FCH`¥PlotsÚ¸ Resolving... ===  No Changes to `/tmp/jl_XP4FCH/Project.toml`  No Changes to `/tmp/jl_XP4FCH/Manifest.toml` Instantiating... === Precompiling... === [debug cache flags] CacheFlags(; use_pkgimages=true, debug_level=1, check_bounds=0, inline=true, opt_level=2)  Activating project at `/tmp/jl_XP4FCH`¬SparseArraysÚ¸ Resolving... ===  No Changes to `/tmp/jl_XP4FCH/Project.toml`  No Changes to `/tmp/jl_XP4FCH/Manifest.toml` Instantiating... === Precompiling... === [debug cache flags] CacheFlags(; use_pkgimages=true, debug_level=1, check_bounds=0, inline=true, opt_level=2)  Activating project at `/tmp/jl_XP4FCH`²QuantumPropagatorsÚ¸ Resolving... ===  No Changes to `/tmp/jl_XP4FCH/Project.toml`  No Changes to `/tmp/jl_XP4FCH/Manifest.toml` Instantiating... === Precompiling... === [debug cache flags] CacheFlags(; use_pkgimages=true, debug_level=1, check_bounds=0, inline=true, opt_level=2)  Activating project at `/tmp/jl_XP4FCH`§enabled÷restart_recommended_msgÀ´restart_required_msgÀ­busy_packages�¶waiting_for_permissionÂÙ,waiting_for_permission_but_probably_disabled«cell_inputsÞYÙ$a41f348d-7d13-4fd1-b7c7-abef440cf9b1„§cell_idÙ$a41f348d-7d13-4fd1-b7c7-abef440cf9b1¤codeÚ�md""" Suppose we have a system with a Lindblad operator ``\hat{A}``. The question is what is the Lindblad operator in a composite system. Presumably, ``\hat{A} ⊗ ð�Ÿ™``, but one could also think that with ``ð�Ÿ™ = ∑|k⟩⟨k|``, the composite system could have one Lindblad operator ``\hat{A} ⊗ |k⟩⟨k|`` for each basis vector of the second system. That is, the composite system would have _multiple_ Lindblad operators? Are those two things potentially equivalent? They are not! The difference is in the term ``\hat{A} \hat{\rho} \hat{A}^\dagger`` in the Liouville equation. With a single Lindblad operator ``\hat{A} ⊗ ð�Ÿ™``, we find ```math (\hat{A} ⊗ ð�Ÿ™) \hat\rho (\hat{A} ⊗ ð�Ÿ™)^\dagger = \sum_{ijnm} \rho_{(ij),(nm)} \hat{A} |i⟩⟨n| \hat{A}^{\dagger} \otimes |j⟩⟨m| \tag{1} ``` where ``|ij⟩⟨jm|`` is the double-indexed basis in which ``\hat{\rho}`` is represented, and ``\rho_{(ij),(nm)}`` is the matrix element for those indices. On the other hand, with multiple Lindblad operators, we have ```math \sum_k (\hat{A} ⊗ |k⟩⟨k|) \hat\rho (\hat{A} ⊗ |k⟩⟨k|)^\dagger = \sum_{ink}\rho_{(ik),(nk)} \hat{A} |i⟩⟨n| \hat{A}^{\dagger} \otimes |k⟩⟨k| \tag{2} ``` That is, we are missing the cross-terms ``|j⟩⟨m|`` in Eq. (1) for ``j \ne m``. These matrices are coherences in the second system that are lost in the dynamics. That hints at the choice of multiple Lindblad operators being unphysical: Simply tensoring a non-dissipative system to a dissipative system should not affect the non-dissipative system at all, the dissipative system should not be inducing dissipation into the non-dissipative system. We can illustrate this for the example of a single qubit with spontaneous decay. We will simulate the dynamics of the qubit, and then the dynamics of the system tensored with a second, non-dissipative qubit, for the two possible choices of composite Lindblad operators. """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$777eefbd-a782-4388-af28-987fa43ef205„§cell_idÙ$777eefbd-a782-4388-af28-987fa43ef205¤codeÙ]md""" Then, the population dynamics of the sub-systems, with the other system traced out: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$a3fd0098-e0a1-4e9e-859f-37f1064cce29„§cell_idÙ$a3fd0098-e0a1-4e9e-859f-37f1064cce29¤codeÙ¼plot( tlist, hcat([pops(states_composite1[:, i]) for i = 1:length(tlist)]...)'; xlabel = "time", ylabel = "population", label = ["|00⟩" "|01⟩" "|10⟩" "|10⟩"], )¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$8cd9f807-6b19-4aae-b222-1560f04c3afb„§cell_idÙ$8cd9f807-6b19-4aae-b222-1560f04c3afb¤codeÚ Á@doc raw"""Calculate the partial trace of the given density matrix Ï� ```julia Ï�_red = partial_trace(Ï�, (N_i, N, N_j)) ``` calculates the reduced density with the middle degree of freedom integrated out. It is assumed that the density matrix Ï� has the structure ```math Ï� = \sum Ï�_{(inj)(i^′n^′j^′)} |inj⟩⟨i^′n^′j^′| ``` with the triple-index ``(inj)`` where ``i`` is in the range ``(1, N_i)``, ``n`` is in the range ``(1, N)``, and ``j`` is in the range ``(1, N_j)`` The reduced density matrix is defined as ```math Ï�^{(red)} = \sum \underbrace{\sum_{n} Ï�_{(inj)(i^′nj^′)}}_{= \rho^{(red)}_{(ij),(i^′j^′)}} |ij⟩⟨i^′j^′| ``` Note that assuming a structure of 3 tensored Hilbert spaces and always tracing out the middle Hilbert space allows handling an arbitrary number of _actual_ Hilbert spaces, and tracing out arbitrary degrees of freedom: All Hilbert spaces to the _left_ of the degree of freedom to be integrated out can be combined into a single Hilbert space of dimension ``N_i``, and all the Hilbert spaces on the _right_ can be combined into a space of dimension ``N_j``. This includes the situation where we have _two_ actual Hilbert spaces with dimensions N and M, respectively. If we wanted to trace out the first Hilbert space, we could use ```julia Ï�_red = partial_trace(Ï�, (1, N, M)) ``` If we wanted to trace out the second Hilbert space, we would instead use ```julia Ï�_red = partial_trace(Ï�, (N, M, 1)) ``` The given `Ï�` can be a matrix or vectorized matrix. The reduced density matrix will be returned correspondingly. """ function partial_trace(Ï�, dims) N_i, N, N_j = dims @assert N_i ≥ 1 @assert N > 1 @assert N_j ≥ 1 @assert length(Ï�) == (N_i * N * N_j)^2 if ndims(Ï�) == 1 Ï�_red = partial_trace(reshape(Ï�, (N_i*N*N_j, N_i*N*N_j)), dims) return reshape(Ï�_red, :) elseif ndims(Ï�) == 2 Base.require_one_based_indexing(Ï�) Ï�_red = zeros(eltype(Ï�), N_i * N_j, N_i * N_j) for i′ = 1:N_i for j′ = 1:N_j i′_j′ = (i′-1) * N_j + j′ for i = 1:N_i for j = 1:N_j i_j = (i-1) * N_j + j for n = 1:N # unroll the multi-indices i_n_j = (i-1) * N * N_j + (n - 1) * N_j + j i′_n_j′ = (i′-1) * N * N_j + (n - 1) * N_j + j′ Ï�_red[i_j, i′_j′] += Ï�[i_n_j, i′_n_j′] end end end end end return Ï�_red else error("Ï� must be matrix or vectorized matrix") end end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$91ab02a1-65b0-43c4-99f3-08dbc274e0ed„§cell_idÙ$91ab02a1-65b0-43c4-99f3-08dbc274e0ed¤code¼INZ, JNZ, VNZ = findnz(diff)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$233b2763-5612-4786-9df0-17a6bdd10912„§cell_idÙ$233b2763-5612-4786-9df0-17a6bdd10912¤codeÙSmd""" And, the reduced density matrix of the second TLS (first TLS traced out): """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33de„§cell_idÙ$f3dc6aa3-7f04-4d43-a925-3a3ab8ce33de¤codeÚ”begin plot( tlist, [purity(partial_trace(states_composite2[:, i], (2, 2, 1))) for i = 1:length(tlist)]; xlabel = "time", ylabel = "purity", label = "1", ) plot!( tlist, [purity(partial_trace(states_composite2[:, i], (1, 2, 2))) for i = 1:length(tlist)]; xlabel = "time", ylabel = "purity", label = "2", ) end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$4c62e504-4ab5-4eec-a2bc-0967f7a7ae64„§cell_idÙ$4c62e504-4ab5-4eec-a2bc-0967f7a7ae64¤code¸md""" We can now use """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$107f5cb1-6f79-483a-bbd2-e292a1592986„§cell_idÙ$107f5cb1-6f79-483a-bbd2-e292a1592986¤codeÙ1md""" We'll consider a completely static TLS: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$e300efca-2800-4c0c-b915-ec8e4f81b292„§cell_idÙ$e300efca-2800-4c0c-b915-ec8e4f81b292¤codeÙYmd""" Now we tensor the system with a second TLS. This second TLS is non-dissipative. """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$dd8f6890-5234-4b1c-8ed7-b6d370c86876„§cell_idÙ$dd8f6890-5234-4b1c-8ed7-b6d370c86876¤code¶âŠ—(A, B) = kron(A, B)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$89d0de66-b78a-4f0f-9134-84ca622f2ca3„§cell_idÙ$89d0de66-b78a-4f0f-9134-84ca622f2ca3¤code¸md""" and the purity """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$531a7b9d-60bc-416e-9260-5757a4cc093c„§cell_idÙ$531a7b9d-60bc-416e-9260-5757a4cc093c¤codeÙ«md""" # Lindblad operators for composite systems Note: the code for this notebook is available at """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$0a3cef9f-4dd7-4469-b4ae-18c4e3093ced„§cell_idÙ$0a3cef9f-4dd7-4469-b4ae-18c4e3093ced¤code¨Î³ = 0.1¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$72010ae9-8300-41bb-a10b-37927cd8e000„§cell_idÙ$72010ae9-8300-41bb-a10b-37927cd8e000¤codeÚ#md""" Note that the purity starting from a mixed state should be ``1 - \frac{1}{2} \left(e^{-\gamma t} + e^{-2\gamma t}\right)``: The purity first drops due to the dissipation and then rises again because in the infinite time limit, all the population ends up in the (pure) ground state. """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$e210cf9e-a5d6-4d48-83e1-200008a1d9d3„§cell_idÙ$e210cf9e-a5d6-4d48-83e1-200008a1d9d3¤codeÚ^begin plot( tlist, hcat( [ pops(partial_trace(states_composite1[:, i], (2, 2, 1))) for i = 1:length(tlist) ]..., )'; xlabel = "time", ylabel = "population", label = ["|0⟩â‚�" "|1⟩â‚�"], ) plot!( tlist, hcat( [ pops(partial_trace(states_composite1[:, i], (1, 2, 2))) for i = 1:length(tlist) ]..., )'; xlabel = "time", ylabel = "population", label = ["|0⟩₂" "|1⟩₂"], ) end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$c0342b62-302d-470c-9e96-128905bbe848„§cell_idÙ$c0342b62-302d-470c-9e96-128905bbe848¤codeÙTmd""" Uses two Lindblad operators, one for each of the levels in the second TLS. """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$113410b5-64b3-4fcb-9263-9ba89a013107„§cell_idÙ$113410b5-64b3-4fcb-9263-9ba89a013107¤codeÚ md""" When analyzing the dynamics, what we'll be looking for is that the second system remains unaffected by the dissipation in the first system. To this end, we'll have to calculate the reduced density matrices for the first and second TLS, using a partial trace: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$a36ca5a6-f584-4bba-8e21-968bda4d5190„§cell_idÙ$a36ca5a6-f584-4bba-8e21-968bda4d5190¤codeÙUmd""" The difference comes in via the purity (the coherences) in the sub-systems: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$f5d72c44-185e-40f9-be10-50ca467ae8bf„§cell_idÙ$f5d72c44-185e-40f9-be10-50ca467ae8bf¤codeÙOmd""" The population dynamics even for the sub-systems still looks correct: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$28a8661d-e5f5-4ecd-82d2-bb4f64c36039„§cell_idÙ$28a8661d-e5f5-4ecd-82d2-bb4f64c36039¤codeÙ'norm(partial_trace(_C, (1, 2, 3)) - _B)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$6b05ff89-52e0-4af1-8460-052222ebe93e„§cell_idÙ$6b05ff89-52e0-4af1-8460-052222ebe93e¤code¶purity(states[:, end])¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$452f72e9-6817-45db-a514-23ddd0a4ebb2„§cell_idÙ$452f72e9-6817-45db-a514-23ddd0a4ebb2¤code®_C = _A ⊗ _B¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9e„§cell_idÙ$e7b9b53a-b4e8-4701-ab4a-7a6b06cbbc9e¤code²pops(states[:, 1])¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$f3d99a0a-2188-4cb1-81d9-9670ece84610„§cell_idÙ$f3d99a0a-2188-4cb1-81d9-9670ece84610¤codeÙA_B = begin Ψ_B = random_state_vector(3) Ψ_B * Ψ_B' end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$629a5a46-0bea-4762-9c89-78c07cb43c72„§cell_idÙ$629a5a46-0bea-4762-9c89-78c07cb43c72¤codeÙ§function purity(Ï�_vec) N² = length(Ï�_vec) @assert size(Ï�_vec) == (N²,) N = isqrt(N²) Ï� = reshape(Ï�_vec, (N, N)) return abs(trace(Ï�^2)) end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998„§cell_idÙ$2b48afa7-5fbd-4262-ac8b-efa8a2f6a998¤codeÙDÏ�â‚€_composite = reshape((Ψ₀ ⊗ Ψ₀) * (Ψ₀ ⊗ Ψ₀)', :)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$11ea567a-74dd-4a87-9695-7dfeccf49c0e„§cell_idÙ$11ea567a-74dd-4a87-9695-7dfeccf49c0e¤codeÙ)partial_trace(Ï�â‚€_composite, (2, 2, 1))¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$a734c0b3-eef1-43a7-801c-81b5fdda1219„§cell_idÙ$a734c0b3-eef1-43a7-801c-81b5fdda1219¤codeÙA_A = begin Ψ_A = random_state_vector(2) Ψ_A * Ψ_A' end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$f8d76484-05e6-4a72-98c8-3f33b06f4306„§cell_idÙ$f8d76484-05e6-4a72-98c8-3f33b06f4306¤codeÙ_md""" tensors the original Lindblad operator with the identity for the second TLS. Second, """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$20eb5f97-ca69-434d-80ec-5c99b8f153c1„§cell_idÙ$20eb5f97-ca69-434d-80ec-5c99b8f153c1¤codeÙnsuperop_labels = reshape(["|$(composite_labels[i])⟩⟨$(composite_labels[j])|" for i = 1:4, j = 1:4], :)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2„§cell_idÙ$0fabd75f-e9d1-46d5-8ba5-7e334101d1c2¤codeÙ[states_composite1 = propagate(Ï�â‚€_composite, L1, tlist; method = Newton, storage = true);¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$378380e4-7043-434d-8933-72b36e3a8981„§cell_idÙ$378380e4-7043-434d-8933-72b36e3a8981¤codeÙ,L = liouvillian(H, (A,); convention = :TDSE)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0„§cell_idÙ$0eaf2661-c7cd-4c3d-872e-00d4eaef74e0¤codeÙôfunction pops(Ï�) if size(Ï�) == (16,) return Float64[abs(Ï�[1]), abs(Ï�[6]), abs(Ï�[11]), abs(Ï�[16])] elseif size(Ï�) == (4,) return Float64[abs(Ï�[1]), abs(Ï�[4])] else error("Not implemented") end end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$337e927c-6c23-4afe-9a62-bf30f3a12c0a„§cell_idÙ$337e927c-6c23-4afe-9a62-bf30f3a12c0a¤codeÙKmd""" First, we look at the population dynamics of the combined system: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$a86b96af-f20d-48ac-b493-12204567a21c„§cell_idÙ$a86b96af-f20d-48ac-b493-12204567a21c¤codeÙTmd""" We have two candidates for the Lindbladian of the composite system. First, """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$b2ac08e1-8e2a-43ad-bb49-7441408d0571„§cell_idÙ$b2ac08e1-8e2a-43ad-bb49-7441408d0571¤codeÙ¬md""" Just to test our implementation of the partial trace a bit more for the general case, we can check that we can recover the components of a random separable state: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$9fa924d6-f287-4f6c-b5b6-1adb4909318c„§cell_idÙ$9fa924d6-f287-4f6c-b5b6-1adb4909318c¤codeÙ;md""" We can look at which matrix elements are missing. """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$90ff733c-01ac-48d0-a6b6-faa5021a8a9b„§cell_idÙ$90ff733c-01ac-48d0-a6b6-faa5021a8a9b¤code³using LinearAlgebra¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$208b3fda-4263-4f7d-b73d-25eedd1771aa„§cell_idÙ$208b3fda-4263-4f7d-b73d-25eedd1771aa¤codeÙ2md""" ### Multiple Lindblad Operators Dynamics """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05„§cell_idÙ$b7a6ffd9-6a9a-42ef-970f-c4e660b36f05¤code¹A = √γ * ket0 * ket1';¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$1799c3d7-97c9-4602-9a02-7a0691ddf80e„§cell_idÙ$1799c3d7-97c9-4602-9a02-7a0691ddf80e¤codeÙLmd""" **`L1` and `L2` do not have the same number of non-zero entries!** """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6„§cell_idÙ$91c11d2b-a7f2-4a7d-b014-6b7c3ea292a6¤codeÙoL2 = liouvillian(H ⊗ ð�Ÿ™ + ð�Ÿ™ ⊗ H, (A ⊗ (ket0 * ket0'), A ⊗ (ket1 * ket1')); convention = :TDSE)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$f3bd26e5-f6d4-4833-88aa-01ba389451b1„§cell_idÙ$f3bd26e5-f6d4-4833-88aa-01ba389451b1¤codeÙCmd""" We'll add to that spontaneous decay, with a decay rate of """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$8e9523fc-2810-4370-b1cc-e159b588ea83„§cell_idÙ$8e9523fc-2810-4370-b1cc-e159b588ea83¤codeÚ7md""" This is clearly unphysical: without interactions between system 1 and system 2, the dissipation in system 1 should not be causing dissipation in system 2! System 2 should remain pure at all times. Thus, we can conclude that a single Lindblad operator ``\hat{A} \otimes ð�Ÿ™`` is the correct approach. """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$9029c42e-462d-4bc6-9d9f-edc53fb28ded„§cell_idÙ$9029c42e-462d-4bc6-9d9f-edc53fb28ded¤code½md""" ## Composite System """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$6aa6f586-9977-476f-a306-73345c0bbc30„§cell_idÙ$6aa6f586-9977-476f-a306-73345c0bbc30¤code·ket1 = ComplexF64[0, 1]¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$e06b72c2-913d-4de9-8ef1-af12a1a2b8c8„§cell_idÙ$e06b72c2-913d-4de9-8ef1-af12a1a2b8c8¤codeÙEmd""" The Liouvillian can be constructed as a super-operator, via """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$0d819a8e-95d8-43e4-846d-1b1a44cb9214„§cell_idÙ$0d819a8e-95d8-43e4-846d-1b1a44cb9214¤code·H = [0.0 0.0; 0.0 0.0];¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$50703d4a-b742-4ccb-9f1a-2171d94e5e0a„§cell_idÙ$50703d4a-b742-4ccb-9f1a-2171d94e5e0a¤code¹md""" ## Single Qubit """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$3fca1322-b88c-4016-81d1-44a3a8013e32„§cell_idÙ$3fca1322-b88c-4016-81d1-44a3a8013e32¤codeÚ^begin plot( tlist, hcat( [ pops(partial_trace(states_composite2[:, i], (2, 2, 1))) for i = 1:length(tlist) ]..., )'; xlabel = "time", ylabel = "population", label = ["|0⟩â‚�" "|1⟩â‚�"], ) plot!( tlist, hcat( [ pops(partial_trace(states_composite2[:, i], (1, 2, 2))) for i = 1:length(tlist) ]..., )'; xlabel = "time", ylabel = "population", label = ["|0⟩₂" "|1⟩₂"], ) end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$29b3077f-fe4a-4ed9-910b-532af7b5684b„§cell_idÙ$29b3077f-fe4a-4ed9-910b-532af7b5684b¤codeÙ+norm(states_composite2 - states_composite1)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$96b3bbd3-966c-4912-82cc-ff01f089f066„§cell_idÙ$96b3bbd3-966c-4912-82cc-ff01f089f066¤codeÙ"Ï�â‚€ = reshape(Ψ₀ * Ψ₀', :)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$d565abf9-4b59-429e-834c-d390017a5b53„§cell_idÙ$d565abf9-4b59-429e-834c-d390017a5b53¤codeÙDmd""" We can check that the intial state decomposes as expected: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$b307c37f-2395-4806-a35f-a9118bb9adf9„§cell_idÙ$b307c37f-2395-4806-a35f-a9118bb9adf9¤codeÙ¼plot( tlist, hcat([pops(states_composite2[:, i]) for i = 1:length(tlist)]...)'; xlabel = "time", ylabel = "population", label = ["|00⟩" "|01⟩" "|10⟩" "|10⟩"], )¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$6fdf587d-4555-445e-b392-5ddc99c34bb6„§cell_idÙ$6fdf587d-4555-445e-b392-5ddc99c34bb6¤codeÙ:md""" which we can analyze in terms of the populations """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5„§cell_idÙ$31bc35f7-f79a-4d0e-bf4f-e6362b372ec5¤code­norm(L1 - L2)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$e944732c-ab82-4b09-b9e6-7fc8df1dbcba„§cell_idÙ$e944732c-ab82-4b09-b9e6-7fc8df1dbcba¤codeÙ/md""" ### Single Lindblad Operator Dynamics """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$9d5ee94b-250a-4062-8d97-b7f789edce25„§cell_idÙ$9d5ee94b-250a-4062-8d97-b7f789edce25¤codeÙ)md""" The result of the propgation is """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$5adbc0dd-f040-4d8f-b960-593edf3c1b3c„§cell_idÙ$5adbc0dd-f040-4d8f-b960-593edf3c1b3c¤code´purity(states[:, 1])¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$fe72a230-9546-4962-82a8-c5980fb297b1„§cell_idÙ$fe72a230-9546-4962-82a8-c5980fb297b1¤codeÙNmd""" The reduced density matrix of the first TLS (second TLS traced out): """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$8a7d114b-eca7-47db-8191-8052ffc226b8„§cell_idÙ$8a7d114b-eca7-47db-8191-8052ffc226b8¤codeÚ”begin plot( tlist, [purity(partial_trace(states_composite1[:, i], (2, 2, 1))) for i = 1:length(tlist)]; xlabel = "time", ylabel = "purity", label = "1", ) plot!( tlist, [purity(partial_trace(states_composite1[:, i], (1, 2, 2))) for i = 1:length(tlist)]; xlabel = "time", ylabel = "purity", label = "2", ) end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$dd2084d0-e587-4afa-bd17-d79f1260091e„§cell_idÙ$dd2084d0-e587-4afa-bd17-d79f1260091e¤code°diff = (L1 - L2)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$573dbc48-530a-4f52-8864-18aad432c147„§cell_idÙ$573dbc48-530a-4f52-8864-18aad432c147¤codeÙ'norm(partial_trace(_C, (2, 3, 1)) - _A)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$a286612a-2119-4860-9911-00eaa4ddebb9„§cell_idÙ$a286612a-2119-4860-9911-00eaa4ddebb9¤codeÙ‚plot( tlist, [purity(states[:, i]) for i = 1:length(tlist)]; xlabel = "time", ylabel = "purity", label = "", )¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$0d20207a-ac00-483e-a1db-e0755845a7e6„§cell_idÙ$0d20207a-ac00-483e-a1db-e0755845a7e6¤codeÙwmd""" to simulate the dynamics of a coherent superposition of |0⟩ and |1⟩ as an initial state, over a time grid """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$cb5f6496-3170-4f07-808a-c641c98469d7„§cell_idÙ$cb5f6496-3170-4f07-808a-c641c98469d7¤code·ket0 = ComplexF64[1, 0]¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$46b81556-c322-4d06-8a8d-5e69caefff63„§cell_idÙ$46b81556-c322-4d06-8a8d-5e69caefff63¤codeÙ+composite_labels = ["00", "01", "10", "11"]¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$d45416d2-ba22-43d3-bc6a-6e7edf050be8„§cell_idÙ$d45416d2-ba22-43d3-bc6a-6e7edf050be8¤codeÙ®md""" We repeat this analysis for the second candidate of a Liouvillian, with two Liouville operators. The population dynamics in the combined system looks unsuspicious: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$296fa066-fc76-4a1b-9d70-57c0fe080966„§cell_idÙ$296fa066-fc76-4a1b-9d70-57c0fe080966¤codeÙLL1 = liouvillian(H ⊗ ð�Ÿ™ + ð�Ÿ™ ⊗ H, (A ⊗ ð�Ÿ™,); convention = :TDSE)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$9e8682c2-0e3d-4515-bb1f-28a8d339402a„§cell_idÙ$9e8682c2-0e3d-4515-bb1f-28a8d339402a¤codeÙœmd""" As we expect, the population deviates from the initial superposition only for the first system. Lastly, we look at the purity in the sub-systems: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5„§cell_idÙ$e24ce5f2-58ac-489e-9d24-02fdd66d0cd5¤codeÙ0using QuantumPropagators.Generators: liouvillian¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$3a19ed7c-0c11-4415-a397-e8c195d966c8„§cell_idÙ$3a19ed7c-0c11-4415-a397-e8c195d966c8¤codeÙMmd""" Again, we see the purity deviating from 1 only in the first system. """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$07ac2aab-759e-4aea-afa4-dbdb46568fc7„§cell_idÙ$07ac2aab-759e-4aea-afa4-dbdb46568fc7¤codeÚ"md""" It might be interesting to further look into the interpretation of exactly how these matrix elements affect the dynamics. But in lieue of that, we'll simply _simulate_ the dynamics. As the initial state, we'll use a coherent superposition both in the first and in the second TLS: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$ebad3a75-a9e9-4573-8d97-525ce8421fa1„§cell_idÙ$ebad3a75-a9e9-4573-8d97-525ce8421fa1¤code¼Î¨â‚€ = (ket0 + ket1) / √2¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$4df2b6b2-8e4e-11f0-3732-a75c62505eb7„§cell_idÙ$4df2b6b2-8e4e-11f0-3732-a75c62505eb7¤codeÙrbegin using LinearAlgebra: norm, kron, tr as trace using Plots using PlutoUI TableOfContents() end¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$906eb8c1-c1bc-4c61-8e22-8ab6eb91182f„§cell_idÙ$906eb8c1-c1bc-4c61-8e22-8ab6eb91182f¤codeÙ]md""" Now, we can compare the dynamics under our two candidate Liouvillian `L1` and `L2`: """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$ba6711cb-c036-4db8-953d-d9d71eaba585„§cell_idÙ$ba6711cb-c036-4db8-953d-d9d71eaba585¤codeÙ@using QuantumControlTestUtils.RandomObjects: random_state_vector¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$b958e41a-493c-4566-aebb-161868f15bca„§cell_idÙ$b958e41a-493c-4566-aebb-161868f15bca¤codeÙ[states_composite2 = propagate(Ï�â‚€_composite, L2, tlist; method = Newton, storage = true);¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$95c10e78-c60b-4bd0-9558-1858f80e157d„§cell_idÙ$95c10e78-c60b-4bd0-9558-1858f80e157d¤codeÙ7md""" But the dynamics are certainly not identical! """¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$148ac275-d22b-444e-bd2e-507decd5188e„§cell_idÙ$148ac275-d22b-444e-bd2e-507decd5188e¤code¯Ï�â‚€_composite¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$2f65cb30-99b2-4e68-bb77-1feae4c8be00„§cell_idÙ$2f65cb30-99b2-4e68-bb77-1feae4c8be00¤codeÙ)partial_trace(Ï�â‚€_composite, (1, 2, 2))¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$69fdfe8d-0de8-4c61-ace2-b20f70af52de„§cell_idÙ$69fdfe8d-0de8-4c61-ace2-b20f70af52de¤codeÙ,tlist = collect(range(0, 10; length = 1001))¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÃÙ$855b56e1-c95b-41e5-a933-57d6686a3c1e„§cell_idÙ$855b56e1-c95b-41e5-a933-57d6686a3c1e¤codeÙM["$(superop_labels[i]) ↔ $(superop_labels[j])" for (i, j) in zip(INZ, JNZ)]¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$6d064572-5af2-463b-8091-fb3defd36ef4„§cell_idÙ$6d064572-5af2-463b-8091-fb3defd36ef4¤codeºusing SparseArrays: findnz¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$109055a1-edc4-4c83-8262-99cdcae5b1a5„§cell_idÙ$109055a1-edc4-4c83-8262-99cdcae5b1a5¤codeÙDstates = propagate(Ï�â‚€, L, tlist; method = Newton, storage = true)¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f„§cell_idÙ$28f7b3c0-be79-4d30-99b1-dd90f9f30b3f¤codeÙ+using QuantumPropagators: propagate, Newton¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$2e405a3e-4b5e-489e-a651-5792ae26e089„§cell_idÙ$2e405a3e-4b5e-489e-a651-5792ae26e089¤code¹ð�Ÿ™ = [1.0 0.0; 0.0 1.0]¨metadataƒ©show_logsèdisabled®skip_as_script«code_foldedÂÙ$0a7a7970-d66d-41ca-8cb8-7180d288c9e6„§cell_idÙ$0a7a7970-d66d-41ca-8cb8-7180d288c9e6¤codeÙ�plot( tlist, hcat([pops(states[:, i]) for i = 1:length(tlist)]...)'; xlabel = "time", ylabel = "population", label = ["|0⟩" "|1⟩"], )¨metadataƒ©show_logsèdisabled®skip_as_script«code_folded«notebook_idÙ$fbe9d286-8ff3-11f0-3195-3f9d08dd8d6d«in_temp_dir¨metadata€