#+PROPERTY: header-args :session rich_hops_eflow_nl :kernel python :pandoc t :async yes * Setup ** Jupyter #+begin_src jupyter-python %load_ext autoreload %autoreload 2 %load_ext jupyter_spaces #+end_src #+RESULTS: : The autoreload extension is already loaded. To reload it, use: : %reload_ext autoreload : The jupyter_spaces extension is already loaded. To reload it, use: : %reload_ext jupyter_spaces ** Matplotlib #+begin_src jupyter-python import matplotlib import matplotlib.pyplot as plt #matplotlib.use("TkCairo", force=True) %gui tk %matplotlib inline plt.style.use('ggplot') #+end_src #+RESULTS: ** Richard (old) HOPS #+begin_src jupyter-python import hierarchyLib import hierarchyData import numpy as np from stocproc.stocproc import StocProc_FFT import bcf from dataclasses import dataclass import scipy import scipy.misc import scipy.signal #+end_src #+RESULTS: ** Auxiliary Definitions #+begin_src jupyter-python σ1 = np.matrix([[0,1],[1,0]]) σ2 = np.matrix([[0,-1j],[1j,0]]) σ3 = np.matrix([[1,0],[0,-1]]) #+end_src #+RESULTS: * Model Setup Basic parameters. #+begin_src jupyter-python γ = 3 # coupling ratio ω_c = 2 # center of spect. dens δ = 2 # breadth BCF t_max = 4 t_steps = 4000 k_max = 3 seed = 100 g = np.sqrt(δ) H_s = σ3 + np.eye(2) L = 1 / 2 * (σ1 - 1j * σ2) * γ ψ_0 = np.array([1, 0]) W = ω_c * 1j + δ # exponent BCF N = 1000 #+end_src #+RESULTS: ** BCF #+begin_src jupyter-python @dataclass class CauchyBCF: δ: float ω_c: float def I(self, ω): return np.sqrt(self.δ) / (self.δ + (ω - self.ω_c) ** 2 / self.δ) def __call__(self, τ): return np.sqrt(self.δ) * np.exp(-1j * self.ω_c * τ - np.abs(τ) * self.δ) def __bfkey__(self): return self.δ, self.ω_c α = CauchyBCF(δ, ω_c) #+end_src #+RESULTS: *** Plot #+begin_src jupyter-python %%space plot t = np.linspace(0, t_max, 1000) ω = np.linspace(ω_c - 10, ω_c + 10, 1000) fig, axs = plt.subplots(2) axs[0].plot(t, np.real(α(t))) axs[0].plot(t, np.imag(α(t))) axs[1].plot(ω, α.I(ω)) #+end_src #+RESULTS: :RESULTS: | | | | | | [[file:./.ob-jupyter/cc8a82c1bde6ea1912c1b977e822908ef92ed79a.png]] :END: ** Hops setup #+begin_src jupyter-python HierachyParam = hierarchyData.HiP( k_max=k_max, # g_scale=None, # sample_method='random', seed=seed, nonlinear=True, normalized=False, # terminator=False, result_type=hierarchyData.RESULT_TYPE_ALL, # accum_only=None, # rand_skip=None ) #+end_src #+RESULTS: Integration. #+begin_src jupyter-python IntegrationParam = hierarchyData.IntP( t_max=t_max, t_steps=t_steps, # integrator_name='zvode', # atol=1e-8, # rtol=1e-8, # order=5, # nsteps=5000, # method='bdf', # t_steps_skip=1 ) #+end_src #+RESULTS: And now the system. #+begin_src jupyter-python SystemParam = hierarchyData.SysP( H_sys=H_s, L=L, psi0=ψ_0, # excited qubit g=np.array([g]), w=np.array([W]), H_dynamic=[], bcf_scale=1, # some coupling strength (scaling of the fit parameters 'g_i') gw_hash=None, # this is used to load g,w from some database len_gw=1, ) #+end_src #+RESULTS: The quantum noise. #+begin_src jupyter-python Eta = StocProc_FFT( α.I, t_max, α, negative_frequencies=True, seed=seed, intgr_tol=1e-2, intpl_tol=1e-2, scale=1, ) #+end_src #+RESULTS: #+begin_example stocproc.stocproc - INFO - use neg freq stocproc.method_ft - INFO - get_dt_for_accurate_interpolation, please wait ... stocproc.method_ft - INFO - acc interp N 33 dt 1.44e-01 -> diff 7.57e-03 stocproc.method_ft - INFO - requires dt < 1.439e-01 stocproc.method_ft - INFO - get_N_a_b_for_accurate_fourier_integral, please wait ... stocproc.method_ft - INFO - J_w_min:1.00e-02 N 32 yields: interval [-1.47e+01,1.87e+01] diff 3.37e-01 stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [-5.11e+01,5.51e+01] diff 6.70e-01 stocproc.method_ft - INFO - J_w_min:1.00e-02 N 64 yields: interval [-1.47e+01,1.87e+01] diff 3.37e-01 stocproc.method_ft - INFO - J_w_min:1.00e-04 N 32 yields: interval [-1.66e+02,1.70e+02] diff 2.44e+00 stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [-5.11e+01,5.51e+01] diff 1.11e-01 stocproc.method_ft - INFO - J_w_min:1.00e-02 N 128 yields: interval [-1.47e+01,1.87e+01] diff 3.37e-01 stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level stocproc.method_ft - INFO - J_w_min:1.00e-05 N 32 yields: interval [-5.30e+02,5.34e+02] diff 3.68e+00 stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [-1.66e+02,1.70e+02] diff 1.34e+00 stocproc.method_ft - INFO - J_w_min:1.00e-03 N 128 yields: interval [-5.11e+01,5.51e+01] diff 1.06e-01 stocproc.method_ft - INFO - J_w_min:1.00e-02 N 256 yields: interval [-1.47e+01,1.87e+01] diff 3.37e-01 stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level stocproc.method_ft - INFO - J_w_min:1.00e-06 N 32 yields: interval [-1.68e+03,1.68e+03] diff 4.19e+00 stocproc.method_ft - INFO - J_w_min:1.00e-05 N 64 yields: interval [-5.30e+02,5.34e+02] diff 3.04e+00 stocproc.method_ft - INFO - J_w_min:1.00e-04 N 128 yields: interval [-1.66e+02,1.70e+02] diff 4.07e-01 stocproc.method_ft - INFO - J_w_min:1.00e-03 N 256 yields: interval [-5.11e+01,5.51e+01] diff 1.06e-01 stocproc.method_ft - INFO - J_w_min:1.00e-02 N 512 yields: interval [-1.47e+01,1.87e+01] diff 3.37e-01 stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level stocproc.method_ft - INFO - J_w_min:1.00e-07 N 32 yields: interval [-5.32e+03,5.32e+03] diff 4.36e+00 stocproc.method_ft - INFO - J_w_min:1.00e-06 N 64 yields: interval [-1.68e+03,1.68e+03] diff 3.94e+00 stocproc.method_ft - INFO - J_w_min:1.00e-05 N 128 yields: interval [-5.30e+02,5.34e+02] diff 2.09e+00 stocproc.method_ft - INFO - J_w_min:1.00e-04 N 256 yields: interval [-1.66e+02,1.70e+02] diff 3.72e-02 stocproc.method_ft - INFO - J_w_min:1.00e-03 N 512 yields: interval [-5.11e+01,5.51e+01] diff 1.06e-01 stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level stocproc.method_ft - INFO - J_w_min:1.00e-08 N 32 yields: interval [-1.68e+04,1.68e+04] diff 4.42e+00 stocproc.method_ft - INFO - J_w_min:1.00e-07 N 64 yields: interval [-5.32e+03,5.32e+03] diff 4.28e+00 stocproc.method_ft - INFO - J_w_min:1.00e-06 N 128 yields: interval [-1.68e+03,1.68e+03] diff 3.50e+00 stocproc.method_ft - INFO - J_w_min:1.00e-05 N 256 yields: interval [-5.30e+02,5.34e+02] diff 9.79e-01 stocproc.method_ft - INFO - J_w_min:1.00e-04 N 512 yields: interval [-1.66e+02,1.70e+02] diff 3.36e-02 stocproc.method_ft - INFO - J_w_min:1.00e-03 N 1024 yields: interval [-5.11e+01,5.51e+01] diff 1.06e-01 stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level stocproc.method_ft - INFO - J_w_min:1.00e-09 N 32 yields: interval [-5.32e+04,5.32e+04] diff 4.43e+00 stocproc.method_ft - INFO - J_w_min:1.00e-08 N 64 yields: interval [-1.68e+04,1.68e+04] diff 4.39e+00 stocproc.method_ft - INFO - J_w_min:1.00e-07 N 128 yields: interval [-5.32e+03,5.32e+03] diff 4.12e+00 stocproc.method_ft - INFO - J_w_min:1.00e-06 N 256 yields: interval [-1.68e+03,1.68e+03] diff 2.75e+00 stocproc.method_ft - INFO - J_w_min:1.00e-05 N 512 yields: interval [-5.30e+02,5.34e+02] diff 2.16e-01 stocproc.method_ft - INFO - J_w_min:1.00e-04 N 1024 yields: interval [-1.66e+02,1.70e+02] diff 3.36e-02 stocproc.method_ft - INFO - J_w_min:1.00e-03 N 2048 yields: interval [-5.11e+01,5.51e+01] diff 1.06e-01 stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level stocproc.method_ft - INFO - J_w_min:1.00e-10 N 32 yields: interval [-1.68e+05,1.68e+05] diff 4.44e+00 stocproc.method_ft - INFO - J_w_min:1.00e-09 N 64 yields: interval [-5.32e+04,5.32e+04] diff 4.43e+00 stocproc.method_ft - INFO - J_w_min:1.00e-08 N 128 yields: interval [-1.68e+04,1.68e+04] diff 4.34e+00 stocproc.method_ft - INFO - J_w_min:1.00e-07 N 256 yields: interval [-5.32e+03,5.32e+03] diff 3.82e+00 stocproc.method_ft - INFO - J_w_min:1.00e-06 N 512 yields: interval [-1.68e+03,1.68e+03] diff 1.71e+00 stocproc.method_ft - INFO - J_w_min:1.00e-05 N 1024 yields: interval [-5.30e+02,5.34e+02] diff 1.07e-02 stocproc.method_ft - INFO - J_w_min:1.00e-04 N 2048 yields: interval [-1.66e+02,1.70e+02] diff 3.36e-02 stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level stocproc.method_ft - INFO - J_w_min:1.00e-11 N 32 yields: interval [-5.32e+05,5.32e+05] diff 4.44e+00 stocproc.method_ft - INFO - J_w_min:1.00e-10 N 64 yields: interval [-1.68e+05,1.68e+05] diff 4.44e+00 stocproc.method_ft - INFO - J_w_min:1.00e-09 N 128 yields: interval [-5.32e+04,5.32e+04] diff 4.41e+00 stocproc.method_ft - INFO - J_w_min:1.00e-08 N 256 yields: interval [-1.68e+04,1.68e+04] diff 4.24e+00 stocproc.method_ft - INFO - J_w_min:1.00e-07 N 512 yields: interval [-5.32e+03,5.32e+03] diff 3.28e+00 stocproc.method_ft - INFO - J_w_min:1.00e-06 N 1024 yields: interval [-1.68e+03,1.68e+03] diff 6.56e-01 stocproc.method_ft - INFO - J_w_min:1.00e-05 N 2048 yields: interval [-5.30e+02,5.34e+02] diff 1.06e-02 stocproc.method_ft - INFO - J_w_min:1.00e-04 N 4096 yields: interval [-1.66e+02,1.70e+02] diff 3.36e-02 stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level stocproc.method_ft - INFO - J_w_min:1.00e-12 N 32 yields: interval [-1.68e+06,1.68e+06] diff 4.44e+00 stocproc.method_ft - INFO - J_w_min:1.00e-11 N 64 yields: interval [-5.32e+05,5.32e+05] diff 4.44e+00 stocproc.method_ft - INFO - J_w_min:1.00e-10 N 128 yields: interval [-1.68e+05,1.68e+05] diff 4.43e+00 stocproc.method_ft - INFO - J_w_min:1.00e-09 N 256 yields: interval [-5.32e+04,5.32e+04] diff 4.38e+00 stocproc.method_ft - INFO - J_w_min:1.00e-08 N 512 yields: interval [-1.68e+04,1.68e+04] diff 4.04e+00 stocproc.method_ft - INFO - J_w_min:1.00e-07 N 1024 yields: interval [-5.32e+03,5.32e+03] diff 2.43e+00 stocproc.method_ft - INFO - J_w_min:1.00e-06 N 2048 yields: interval [-1.68e+03,1.68e+03] diff 9.69e-02 stocproc.method_ft - INFO - J_w_min:1.00e-05 N 4096 yields: interval [-5.30e+02,5.34e+02] diff 1.06e-02 stocproc.method_ft - INFO - J_w_min:1.00e-04 N 8192 yields: interval [-1.66e+02,1.70e+02] diff 3.36e-02 stocproc.method_ft - INFO - increasing N while shrinking the interval does lower the error -> try next level stocproc.method_ft - INFO - J_w_min:1.00e-13 N 32 yields: interval [-5.32e+06,5.32e+06] diff 4.44e+00 stocproc.method_ft - INFO - J_w_min:1.00e-12 N 64 yields: interval [-1.68e+06,1.68e+06] diff 4.44e+00 stocproc.method_ft - INFO - J_w_min:1.00e-11 N 128 yields: interval [-5.32e+05,5.32e+05] diff 4.44e+00 stocproc.method_ft - INFO - J_w_min:1.00e-10 N 256 yields: interval [-1.68e+05,1.68e+05] diff 4.42e+00 stocproc.method_ft - INFO - J_w_min:1.00e-09 N 512 yields: interval [-5.32e+04,5.32e+04] diff 4.31e+00 stocproc.method_ft - INFO - J_w_min:1.00e-08 N 1024 yields: interval [-1.68e+04,1.68e+04] diff 3.67e+00 stocproc.method_ft - INFO - J_w_min:1.00e-07 N 2048 yields: interval [-5.32e+03,5.32e+03] diff 1.33e+00 stocproc.method_ft - INFO - J_w_min:1.00e-06 N 4096 yields: interval [-1.68e+03,1.68e+03] diff 3.37e-03 stocproc.method_ft - INFO - return, cause tol of 0.01 was reached stocproc.method_ft - INFO - requires dx < 8.212e-01 stocproc.stocproc - INFO - Fourier Integral Boundaries: [-1.680e+03, 1.684e+03] stocproc.stocproc - INFO - Number of Nodes : 4096 stocproc.stocproc - INFO - yields dx : 8.212e-01 stocproc.stocproc - INFO - yields dt : 1.868e-03 stocproc.stocproc - INFO - yields t_max : 7.649e+00 #+end_example * Actual Hops Generate the key for binary caching. #+begin_src jupyter-python hi_key = hierarchyData.HIMetaKey_type( HiP=HierachyParam, IntP=IntegrationParam, SysP=SystemParam, Eta=Eta, EtaTherm=None, ) #+end_src #+RESULTS: Initialize Hierarchy. #+begin_src jupyter-python myHierarchy = hierarchyLib.HI(hi_key, number_of_samples=N, desc="run a test case") #+end_src #+RESULTS: : init Hi class, use 8 equation : /home/hiro/Documents/Projects/UNI/master/masterarb/python/richard_hops/hierarchyLib.py:1058: UserWarning: sum_k_max is not implemented! DO SO BEFORE NEXT USAGE (use simplex).HierarchyParametersType does not yet know about sum_k_max : warnings.warn( Run the integration. #+begin_src jupyter-python myHierarchy.integrate_simple(data_path="data", data_name="energy_flow_nl_2.data") #+end_src #+RESULTS: #+begin_example samples :0.0% integration :0.0% samples :50.0% integration :90.5% samples :50.1% integration :98.6% samples :50.3% integration :3.0% samples :50.4% integration :4.1% samples :50.5% integration :5.9% samples :50.6% integration :14.8% samples :50.7% integration :25.1% samples :50.8% integration :34.7% samples :50.9% integration :44.0% samples :51.0% integration :50.7% samples :51.1% integration :56.9% samples :51.2% integration :67.1% samples :51.3% integration :76.0% samples :51.4% integration :87.7% samples :51.5% integration :94.7% samples :51.7% integration :2.0% samples :51.8% integration :5.3% samples :51.9% integration :18.9% samples :52.0% integration :25.8% samples :52.1% integration :31.5% samples :52.2% integration :38.3% samples :52.3% integration :46.6% samples :52.4% integration :52.1% samples :52.5% integration :61.1% samples :52.5% integration :100.0% samples :52.7% integration :4.7% samples :52.8% integration :16.3% samples :52.9% integration :30.3% samples :53.0% integration :35.6% samples :53.1% integration :41.1% samples :53.2% integration :47.1% samples :53.3% integration :57.7% samples :53.4% integration :48.7% samples :53.5% integration :55.8% samples :53.6% integration :63.9% samples :53.7% integration :73.2% samples :53.8% integration :81.6% samples :53.9% integration :89.9% samples :54.0% integration :98.3% samples :54.2% integration :2.4% samples :54.3% integration :10.3% samples :54.4% integration :14.5% samples :54.5% integration :19.8% samples :54.6% integration :24.5% samples :54.7% integration :33.7% samples :54.8% integration :41.8% samples :54.9% integration :47.9% samples :55.0% integration :7.3% samples :55.1% integration :9.9% samples :55.2% integration :12.7% samples :55.3% integration :15.7% samples :55.4% integration :21.9% samples :55.5% integration :23.1% samples :55.6% integration :23.8% samples :55.7% integration :26.1% samples :55.8% integration :33.8% samples :55.9% integration :39.6% samples :56.0% integration :47.9% samples :56.1% integration :56.0% samples :56.2% integration :57.1% samples :56.3% integration :62.6% samples :56.4% integration :69.0% samples :56.5% integration :71.1% samples :56.6% integration :70.6% samples :56.7% integration :74.4% samples :56.8% integration :84.7% samples :56.9% integration :96.2% samples :57.1% integration :4.8% samples :57.2% integration :4.0% samples :57.3% integration :3.3% samples :57.4% integration :10.6% samples :57.5% integration :10.1% samples :57.6% integration :17.8% samples :57.7% integration :25.6% samples :57.8% integration :28.6% samples :57.9% integration :38.4% samples :58.0% integration :49.8% samples :58.1% integration :58.6% samples :58.2% integration :60.7% samples :58.3% integration :66.2% samples :58.4% integration :73.3% samples :58.5% integration :88.0% samples :58.6% integration :98.0% samples :58.8% integration :5.2% samples :58.9% integration :9.7% samples :59.0% integration :14.1% samples :59.1% integration :22.9% samples :59.2% integration :25.4% samples :59.3% integration :28.7% samples :59.4% integration :32.0% samples :59.5% integration :42.8% samples :59.6% integration :48.1% samples :59.7% integration :56.4% samples :59.7% integration :100.0% samples :59.8% integration :88.8% samples :59.9% integration :94.0% samples :60.0% integration :99.0% samples :60.2% integration :4.5% samples :60.3% integration :10.4% samples :60.4% integration :9.4% samples :60.5% integration :21.2% samples :60.6% integration :24.2% samples :60.7% integration :30.4% samples :60.8% integration :33.3% samples :60.9% integration :35.0% samples :61.0% integration :38.1% samples :61.1% integration :45.4% samples :61.2% integration :51.6% samples :61.3% integration :57.9% samples :61.4% integration :69.2% samples :61.5% integration :80.7% samples :61.6% integration :50.0% samples :61.7% integration :58.4% samples :61.8% integration :64.5% samples :61.9% integration :66.5% samples :62.0% integration :70.1% samples :62.1% integration :68.5% samples :62.2% integration :70.4% samples :62.3% integration :79.3% samples :62.4% integration :84.4% samples :62.5% integration :91.7% samples :62.6% integration :93.2% samples :62.7% integration :99.8% samples :62.9% integration :4.8% samples :63.0% integration :8.8% samples :63.1% integration :14.7% samples :63.2% integration :8.7% samples :63.2% integration :100.0% samples :63.2% integration :100.0% samples :63.2% integration :100.0% samples :63.3% integration :82.1% samples :63.4% integration :96.5% samples :63.6% integration :2.4% samples :63.7% integration :9.6% samples :63.8% integration :20.1% samples :63.9% integration :26.2% samples :64.0% integration :32.0% samples :64.1% integration :42.7% samples :64.2% integration :50.4% samples :64.3% integration :60.1% samples :64.4% integration :67.8% samples :64.5% integration :75.3% samples :64.6% integration :3.5% samples :64.7% integration :2.8% samples :64.8% integration :7.6% samples :64.9% integration :13.9% samples :65.0% integration :21.3% samples :65.1% integration :17.9% samples :65.2% integration :23.0% samples :65.3% integration :28.3% samples :65.4% integration :31.8% samples :65.5% integration :31.8% samples :65.6% integration :39.0% samples :65.7% integration :44.0% samples :65.8% integration :51.6% samples :65.9% integration :53.6% samples :66.0% integration :52.5% samples :66.1% integration :54.1% samples :66.2% integration :54.6% samples :66.3% integration :49.0% samples :66.3% integration :100.0% samples :66.4% integration :59.1% samples :66.5% integration :47.3% samples :66.5% integration :100.0% samples :66.7% integration :0.8% samples :66.7% integration :67.8% samples :66.8% integration :28.3% samples :66.9% integration :0.3% samples :66.9% integration :95.8% samples :67.0% integration :99.6% samples :67.2% integration :2.0% samples :67.3% integration :6.2% samples :67.4% integration :11.1% samples :67.5% integration :18.1% samples :67.6% integration :20.4% samples :67.6% integration :100.0% samples :67.7% integration :34.0% samples :67.8% integration :31.5% samples :67.9% integration :31.4% samples :68.0% integration :31.4% samples :68.1% integration :30.8% samples :68.2% integration :28.3% samples :68.3% integration :27.2% samples :68.4% integration :27.3% samples :68.5% integration :29.8% samples :68.6% integration :30.8% samples :68.7% integration :33.1% samples :68.8% integration :32.1% samples :68.9% integration :32.3% samples :69.0% integration :38.4% samples :69.1% integration :40.3% samples :69.2% integration :46.8% samples :69.3% integration :53.1% samples :69.4% integration :55.4% samples :69.5% integration :63.4% samples :69.6% integration :64.6% samples :69.7% integration :69.4% samples :69.8% integration :65.5% samples :69.9% integration :68.3% samples :70.0% integration :69.2% samples :70.1% integration :55.2% samples :70.2% integration :47.2% samples :70.3% integration :42.9% samples :70.4% integration :37.9% samples :70.5% integration :34.2% samples :70.6% integration :34.2% samples :70.7% integration :9.7% samples :70.8% integration :12.8% samples :70.9% integration :17.2% samples :70.9% integration :95.2% samples :71.0% integration :47.9% samples :71.1% integration :29.7% samples :71.2% integration :34.2% samples :71.3% integration :38.9% samples :71.4% integration :40.3% samples :71.5% integration :40.2% samples :71.6% integration :45.3% samples :71.7% integration :46.4% samples :71.8% integration :44.6% samples :71.9% integration :45.0% samples :72.0% integration :50.0% samples :72.1% integration :53.8% samples :72.2% integration :63.1% samples :72.3% integration :67.1% samples :72.4% integration :65.3% samples :72.5% integration :73.8% samples :72.6% integration :78.4% samples :72.7% integration :30.4% samples :72.8% integration :9.6% samples :72.9% integration :18.1% samples :73.0% integration :22.7% samples :73.1% integration :26.6% samples :73.2% integration :28.8% samples :73.3% integration :32.5% samples :73.4% integration :38.0% samples :73.5% integration :45.9% samples :73.6% integration :51.1% samples :73.7% integration :8.3% samples :73.8% integration :14.7% samples :73.9% integration :18.6% samples :74.0% integration :22.6% samples :74.1% integration :23.2% samples :74.2% integration :22.8% samples :74.3% integration :24.4% samples :74.4% integration :28.0% samples :74.5% integration :31.9% samples :74.6% integration :32.2% samples :74.7% integration :32.0% samples :74.8% integration :29.6% samples :74.9% integration :31.8% samples :75.0% integration :40.7% samples :75.1% integration :45.2% samples :75.2% integration :42.9% samples :75.3% integration :46.5% samples :75.4% integration :50.0% samples :75.5% integration :54.3% samples :75.6% integration :63.9% samples :75.7% integration :42.6% samples :75.8% integration :48.5% samples :75.9% integration :58.1% samples :76.0% integration :68.7% samples :76.1% integration :72.4% samples :76.2% integration :70.7% samples :76.3% integration :78.3% samples :76.4% integration :87.2% samples :76.6% integration :0.1% samples :76.7% integration :4.9% samples :76.7% integration :100.0% samples :76.8% integration :44.6% samples :76.9% integration :43.4% samples :77.0% integration :10.9% samples :77.0% integration :66.4% samples :77.1% integration :74.0% samples :77.2% integration :74.6% samples :77.3% integration :70.7% samples :77.4% integration :76.9% samples :77.5% integration :85.3% samples :77.6% integration :91.0% samples :77.7% integration :91.5% samples :77.8% integration :97.9% samples :77.9% integration :99.6% samples :78.1% integration :1.1% samples :78.2% integration :6.6% samples :78.3% integration :8.1% samples :78.4% integration :12.3% samples :78.5% integration :0.3% samples :78.5% integration :40.7% samples :78.6% integration :46.1% samples :78.7% integration :54.6% samples :78.8% integration :59.5% samples :78.9% integration :70.9% samples :79.0% integration :76.4% samples :79.1% integration :78.1% samples :79.2% integration :82.4% samples :79.3% integration :83.4% samples :79.4% integration :83.8% samples :79.5% integration :85.5% samples :79.6% integration :97.4% samples :79.8% integration :0.4% samples :79.9% integration :3.9% samples :80.0% integration :1.6% samples :80.1% integration :2.2% samples :80.1% integration :94.7% samples :80.2% integration :97.0% samples :80.4% integration :0.4% samples :80.5% integration :5.6% samples :80.6% integration :9.2% samples :80.7% integration :7.4% samples :80.8% integration :8.4% samples :80.9% integration :11.2% samples :81.0% integration :16.3% samples :81.1% integration :17.5% samples :81.2% integration :15.2% samples :81.2% integration :100.0% samples :81.3% integration :28.2% samples :81.4% integration :34.4% samples :81.5% integration :33.9% samples :81.6% integration :32.3% samples :81.7% integration :35.4% samples :81.8% integration :32.9% samples :81.9% integration :31.3% samples :82.0% integration :23.2% samples :82.1% integration :18.7% samples :82.2% integration :15.6% samples :82.3% integration :3.8% samples :82.4% integration :3.6% samples :82.5% integration :6.0% samples :82.6% integration :6.8% samples :82.7% integration :7.8% samples :82.8% integration :8.8% samples :82.9% integration :12.8% samples :83.0% integration :3.3% samples :83.0% integration :34.8% samples :83.1% integration :33.9% samples :83.2% integration :33.9% samples :83.3% integration :40.4% samples :83.4% integration :48.0% samples :83.5% integration :54.7% samples :83.6% integration :63.6% samples :83.7% integration :68.2% samples :83.8% integration :76.4% samples :83.9% integration :75.7% samples :84.0% integration :78.3% samples :84.1% integration :78.2% samples :84.2% integration :88.1% samples :84.3% integration :90.5% samples :84.4% integration :88.1% samples :84.5% integration :89.8% samples :84.6% integration :91.0% samples :84.7% integration :89.8% samples :84.8% integration :45.0% samples :84.9% integration :47.3% samples :85.0% integration :46.2% samples :85.1% integration :45.6% samples :85.2% integration :33.7% samples :85.3% integration :34.8% samples :85.4% integration :40.4% samples :85.5% integration :46.7% samples :85.6% integration :53.4% samples :85.7% integration :55.4% samples :85.8% integration :31.8% samples :85.9% integration :32.1% samples :86.0% integration :27.4% samples :86.1% integration :26.7% samples :86.2% integration :31.5% samples :86.3% integration :35.8% samples :86.4% integration :38.5% samples :86.5% integration :43.3% samples :86.6% integration :47.0% samples :86.7% integration :50.0% samples :86.8% integration :53.7% samples :86.9% integration :59.5% samples :87.0% integration :66.7% samples :87.1% integration :73.1% samples :87.2% integration :78.1% samples :87.2% integration :100.0% samples :87.3% integration :94.8% samples :87.4% integration :96.9% samples :87.5% integration :91.8% samples :87.7% integration :0.9% samples :87.8% integration :1.1% samples :87.9% integration :0.8% samples :88.0% integration :0.6% samples :88.1% integration :5.6% samples :88.2% integration :7.0% samples :88.3% integration :12.3% samples :88.4% integration :20.2% samples :88.5% integration :20.5% samples :88.6% integration :18.1% samples :88.7% integration :18.3% samples :88.7% integration :100.0% samples :88.8% integration :63.0% samples :88.9% integration :66.8% samples :89.0% integration :68.6% samples :89.1% integration :69.3% samples :89.2% integration :69.3% samples :89.3% integration :74.7% samples :89.4% integration :90.6% samples :89.5% integration :93.6% samples :89.7% integration :0.0% samples :89.8% integration :4.2% samples :89.9% integration :6.4% samples :90.0% integration :16.0% samples :90.1% integration :23.2% samples :90.2% integration :27.3% samples :90.3% integration :3.5% samples :90.3% integration :41.1% samples :90.4% integration :9.6% samples :90.4% integration :75.5% samples :90.5% integration :42.0% samples :90.6% integration :9.1% samples :90.6% integration :73.1% samples :90.7% integration :56.1% samples :90.8% integration :53.5% samples :90.9% integration :38.6% samples :91.0% integration :10.1% samples :91.0% integration :77.7% samples :91.1% integration :33.8% samples :91.1% integration :89.7% samples :91.2% integration :40.7% samples :91.3% integration :24.0% samples :91.4% integration :22.0% samples :91.5% integration :14.9% samples :91.6% integration :15.3% samples :91.7% integration :8.1% samples :91.8% integration :6.7% samples :91.9% integration :6.9% samples :92.0% integration :7.0% samples :92.1% integration :8.0% samples :92.2% integration :2.9% samples :92.3% integration :3.2% samples :92.3% integration :89.6% samples :92.4% integration :43.9% samples :92.5% integration :11.3% samples :92.5% integration :80.8% samples :92.6% integration :41.5% samples :92.7% integration :16.0% samples :92.7% integration :89.6% samples :92.8% integration :28.0% samples :92.8% integration :93.1% samples :92.9% integration :48.5% samples :93.0% integration :22.1% samples :93.0% integration :74.2% samples :93.1% integration :37.9% samples :93.2% integration :8.9% samples :93.2% integration :81.4% samples :93.3% integration :45.1% samples :93.4% integration :20.2% samples :93.4% integration :95.0% samples :93.5% integration :61.0% samples :93.6% integration :25.0% samples :93.7% integration :9.0% samples :93.8% integration :10.0% samples :93.9% integration :8.1% samples :94.0% integration :5.5% samples :94.1% integration :4.1% samples :94.1% integration :82.2% samples :94.2% integration :75.0% samples :94.3% integration :45.9% samples :94.4% integration :51.2% samples :94.5% integration :48.4% samples :94.6% integration :50.4% samples :94.7% integration :55.2% samples :94.8% integration :67.6% samples :94.9% integration :65.6% samples :95.0% integration :72.0% samples :95.1% integration :86.3% samples :95.2% integration :95.2% samples :95.3% integration :94.0% samples :95.4% integration :90.4% samples :95.5% integration :84.0% samples :95.6% integration :83.0% samples :95.7% integration :76.5% samples :95.8% integration :43.3% samples :95.9% integration :23.1% samples :96.0% integration :15.1% samples :96.1% integration :16.9% samples :96.2% integration :18.6% samples :96.3% integration :21.8% samples :96.4% integration :26.6% samples :96.5% integration :30.0% samples :96.6% integration :26.4% samples :96.7% integration :25.6% samples :96.8% integration :13.8% samples :96.8% integration :66.9% samples :96.9% integration :68.7% samples :97.0% integration :68.6% samples :97.1% integration :60.5% samples :97.2% integration :53.8% samples :97.3% integration :30.1% samples :97.3% integration :91.0% samples :97.4% integration :39.5% samples :97.5% integration :19.4% samples :97.6% integration :12.0% samples :97.6% integration :55.1% samples :97.7% integration :23.0% samples :97.7% integration :96.5% samples :97.8% integration :53.8% samples :97.9% integration :25.5% samples :97.9% integration :97.0% samples :98.0% integration :62.2% samples :98.1% integration :29.8% samples :98.2% integration :1.6% samples :98.3% integration :4.1% samples :98.4% integration :2.8% samples :98.4% integration :67.4% samples :98.5% integration :33.6% samples :98.6% integration :4.4% samples :98.6% integration :69.5% samples :98.7% integration :38.0% samples :98.8% integration :23.4% samples :98.9% integration :2.7% samples :98.9% integration :58.5% samples :99.0% integration :26.7% samples :99.1% integration :4.6% samples :99.1% integration :63.2% samples :99.2% integration :12.8% samples :99.2% integration :83.4% samples :99.3% integration :45.0% samples :99.4% integration :10.1% samples :99.5% integration :10.3% samples :99.6% integration :0.2% samples :99.6% integration :77.5% samples :99.7% integration :45.7% samples :99.8% integration :20.7% samples :99.9% integration :21.7% samples : 100% integration :0.0%  #+end_example Get the samples. #+begin_src jupyter-python # to access the data the 'hi_key' is used to find the data in the hdf5 file with hierarchyData.HIMetaData(hid_name="energy_flow_nl_2.data", hid_path="data") as metaData: with metaData.get_HIData(hi_key, read_only=True) as data: smp = data.get_samples() print("{} samples found in database".format(smp)) τ = data.get_time() rho_τ = data.get_rho_t() s_proc = np.array(data.stoc_proc) states = np.array(data.aux_states).copy() ψ_1 = np.array(data.aux_states)[:, :, 0:2] ψ_0 = np.array(data.stoc_traj) y = np.array(data.y) η = np.array(data.stoc_proc) #+end_src #+RESULTS: : 1000 samples found in database Calculate energy. #+begin_src jupyter-python %matplotlib inline energy = np.array([np.trace(ρ @ H_s).real for ρ in rho_τ]) plt.plot(τ, energy) #+end_src #+RESULTS: :RESULTS: | | [[file:./.ob-jupyter/6f9ff44b906cf57c7c84d88a0a157cc66b911965.png]] :END: #+begin_src jupyter-python %%space plot plt.plot(τ, np.trace(rho_τ.T).real) #+end_src #+RESULTS: :RESULTS: | | [[file:./.ob-jupyter/f3f9c51e9054713cfd1c1c767658d98df3b5a747.png]] :END: * Energy Flow :PROPERTIES: :ID: eefb1594-e399-4d24-9dd7-a57addd42e65 :END: #+begin_src jupyter-python ψ_1.shape #+end_src #+RESULTS: | 1280 | 4000 | 2 | Let's look at the norm. #+begin_src jupyter-python plt.plot(τ, (ψ_0[0].conj() * ψ_0[0]).sum(axis=1).real) #+end_src #+RESULTS: :RESULTS: | | [[file:./.ob-jupyter/410aaf67c52a948f72fac9345da5fb6cedf4889d.png]] :END: And try to calculate the energy flow. #+begin_src jupyter-python def flow_for_traj(ψ_0, ψ_1): a = np.array((L @ ψ_0.T).T) #return np.array(np.sum(ψ_0.conj() * ψ_0, axis=1)).flatten().real return np.array(np.sqrt(δ) * 2 * (1j * -W * np.sum(a.conj() * ψ_1, axis=1)/np.sum(ψ_0.conj() * ψ_0, axis=1)).real).flatten() def flow_for_traj_alt(ψ_0, y): Eta.new_process(y) eta_dot = scipy.misc.derivative(Eta, τ, dx=1e-8) a = np.array((L @ ψ_0.T).T) return -( 2j * eta_dot.conj() * np.array((np.sum(ψ_0.conj() * a, axis=1))).flatten() ).real #+end_src #+RESULTS: Now we calculate the average over all trajectories. #+begin_src jupyter-python j = np.zeros_like(τ) for i in range(0, N): j += flow_for_traj(ψ_0[i], ψ_1[i]) j /= N #+end_src #+RESULTS: And do the same with the alternative implementation. #+begin_src jupyter-python ja = np.zeros_like(τ) for i in range(0, N): ja += flow_for_traj_alt(ψ_0[i], y[i]) ja /= N #+end_src #+RESULTS: And plot it :) #+begin_src jupyter-python %matplotlib inline plt.plot(τ, j) #plt.plot(τ, ja) plt.show() #+end_src #+RESULTS: [[file:./.ob-jupyter/9c069301b804633b13ade3d61ac2757938ac6dcf.png]] Let's calculate the integrated energy. #+begin_src jupyter-python E_t = np.array([0] + [scipy.integrate.simpson(j[0:n], τ[0:n]) for n in range(1, len(τ))]) E_t[-1] #+end_src #+RESULTS: : 1.992784078082371 With this we can retrieve the energy of the interaction Hamiltonian. #+begin_src jupyter-python E_I = 2 - energy - E_t #+end_src #+RESULTS: #+begin_src jupyter-python %%space plot plt.rcParams['figure.figsize'] = [15, 10] #plt.plot(τ, j, label="$J$", linestyle='--') plt.plot(τ, E_t, label=r"$\langle H_{\mathrm{B}}\rangle$") plt.plot(τ, E_I, label=r"$\langle H_{\mathrm{I}}\rangle$") plt.plot(τ, energy, label=r"$\langle H_{\mathrm{S}}\rangle$") plt.xlabel("τ") plt.legend() plt.show() #+end_src #+RESULTS: :RESULTS: | | | | | | : Text(0.5, 0, 'τ') : [[file:./.ob-jupyter/82a58cfbc077e4a57611ba17d345c984cd3deca7.png]] :END: #+RESULTS: * System + Interaction Energy #+begin_src jupyter-python def h_si_for_traj(ψ_0, ψ_1): a = np.array((L @ ψ_0.T).T) b = np.array((H_s @ ψ_0.T).T) E_i = np.array(2 * (-1j * np.sum(a.conj() * ψ_1, axis=1)).real).flatten() E_s = np.array(np.sum(b.conj() * ψ_0, axis=1)).flatten().real return (E_i + E_s)/np.sum(ψ_0.conj() * ψ_0, axis=1).real def h_si_for_traj_alt(ψ_0, y): Eta.new_process(y) a = np.array((L.conj().T @ ψ_0.T).T) b = np.array((H_s @ ψ_0.T).T) E_i = np.array(2 * (Eta(τ) * 1j * np.sum(a.conj() * ψ_0, axis=1)).real).flatten() E_s = np.array(np.sum(b.conj() * ψ_0, axis=1)).flatten().real return E_i + E_s #+end_src #+RESULTS: #+begin_src jupyter-python e_si = np.zeros_like(τ) for i in range(0, N): e_si += h_si_for_traj(ψ_0[i], ψ_1[i]) e_si /= N #+end_src #+RESULTS: Not too bad... #+begin_src jupyter-python plt.plot(τ, e_si) plt.plot(τ, E_I + energy) #+end_src #+RESULTS: :RESULTS: | | [[file:./.ob-jupyter/377ab054182f30bb1937d7b37a215d9b6584c278.png]] :END: