project updates

This commit is contained in:
Valentin Boettcher 2021-11-05 10:20:58 +01:00
parent c0dfbc1ae5
commit 818285d70f
6 changed files with 164 additions and 1328 deletions

2
.gitignore vendored
View file

@ -481,3 +481,5 @@ TSWLatexianTemp*
__*.data
*.pdf
/python/richard_hops/data
ltximg

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "python/energy_flow_proper/hops"]
path = python/energy_flow_proper/hops
url = git@gitlab.hrz.tu-chemnitz.de:s4498638--tu-dresden.de/hops.git

View file

@ -61,7 +61,6 @@ CLOCK: [2021-10-07 Thu 13:38]--[2021-10-07 Thu 17:50] => 4:12
:END:
- see [[file:python/experiments/stochproc/test_stoch.org][my stoch. proc experiments]]
- ill use [[https://github.com/cimatosa/stocproc/tree/master/stocproc][richards]] package
** Find the Steady State
** Quantify Heat Transfer
- not as easy as in the cite:Kato2015Aug paper
- maybe heisenberg picture useful
@ -97,6 +96,7 @@ CLOCK: [2021-10-07 Thu 13:38]--[2021-10-07 Thu 17:50] => 4:12
*** TODO Analytic Verification
- cummings
- and pseudo-mode
**** TODO Valentin's QMB Gaussian states
*** DONE figure out why means involving the stoch. process are so bad
- maybe y is wrong -> no
- then: not differentiable + too noisy
@ -104,9 +104,6 @@ CLOCK: [2021-10-07 Thu 13:38]--[2021-10-07 Thu 17:50] => 4:12
- my test with the gauss process was tupid -> no sum of exponentials
- it works with proper smooth process: [[id:2872b2db-5d3d-470d-8c35-94aca6925f14][Energy Flow in the linear case
with smooth correlation...]]
**** ASK
- why do i have to take the conjugate of the process?
*** DONE VORTRAG
- https://www.youtube.com/watch?v=5bRii85RT8s&list=PLJfdTiUFX4cNiK44-ScthZC2SNNrtUGu1&index=33;
- where do i find out more about \(C^\ast\) algebras?
@ -118,8 +115,10 @@ CLOCK: [2021-10-07 Thu 13:38]--[2021-10-07 Thu 17:50] => 4:12
- Initial time: \(E_{\text {int }}(0):=\operatorname{Tr}\left[\rho_{\mathrm{S}}(0) H_{\mathrm{S}}\right] \quad\left(H_{\mathrm{S}}^{\circledast}(0, \beta)=H_{\mathrm{S}}\right)\)
*** TODO Compare with Rivas Method
*** DONE Find Rivas Paper
*** TODO Make proper library
*** TODO Adapt New HOPS
- [[id:64c775a3-860e-479d-8b08-904dc210991d][Strong coupling thermodynamics of open quantum systems]]
** Rivas Vortrag
** Find the Steady State
** Matrix Eigenvals
- see cite:Pan1999May
** Relation between coerrelation time and hops depth

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
#+PROPERTY: header-args :session /ssh:l:/home/hiro/.local/share/jupyter/runtime/kernel-db283c80-f40c-4ded-8b78-99c9efe3be3c.json :kernel python :pandoc t :async yes
#+PROPERTY: header-args :session /ssh:l:/home/hiro/.local/share/jupyter/runtime/kernel-b0451759-0699-4f14-8dd0-8e96ed3cfa21.json :kernel python :pandoc t :async yes
* Setup
** Jupyter
@ -11,6 +11,8 @@
#+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
@ -59,8 +61,8 @@ Basic parameters.
class params:
T = 2
t_max = 15
t_steps = int(t_max * 1/.05)
t_max = 2
t_steps = int(t_max * 1/.001)
k_max = 10
N = 4000
@ -178,7 +180,7 @@ Let's look a the result.
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/9f05a1fbf06920c271f0667db664ce2972415437.png]]
[[file:./.ob-jupyter/94716da4c1c533b5ae91de94ef8e00707e7da233.png]]
Seems ok for now.
** Hops setup
@ -251,31 +253,24 @@ The quantum noise.
#+begin_example
stocproc.stocproc - INFO - non neg freq only
stocproc.method_ft - INFO - get_dt_for_accurate_interpolation, please wait ...
stocproc.method_ft - INFO - acc interp N 33 dt 9.38e-01 -> diff 2.83e-01
stocproc.method_ft - INFO - acc interp N 65 dt 4.69e-01 -> diff 8.53e-02
stocproc.method_ft - INFO - acc interp N 129 dt 2.34e-01 -> diff 1.76e-02
stocproc.method_ft - INFO - acc interp N 257 dt 1.17e-01 -> diff 3.92e-03
stocproc.method_ft - INFO - acc interp N 513 dt 5.86e-02 -> diff 9.52e-04
stocproc.method_ft - INFO - requires dt < 5.859e-02
stocproc.method_ft - INFO - acc interp N 33 dt 1.25e-01 -> diff 4.49e-03
stocproc.method_ft - INFO - acc interp N 65 dt 6.25e-02 -> diff 1.08e-03
stocproc.method_ft - INFO - acc interp N 129 dt 3.12e-02 -> diff 2.69e-04
stocproc.method_ft - INFO - requires dt < 3.125e-02
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 [0.00e+00,6.47e+00] diff 9.83e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,9.12e+00] diff 8.12e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,9.12e+00] diff 3.11e-03
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 64 yields: interval [0.00e+00,6.47e+00] diff 1.11e-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-04 N 32 yields: interval [0.00e+00,1.17e+01] diff 1.32e-02
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,9.12e+00] diff 1.22e-03
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 128 yields: interval [0.00e+00,6.47e+00] diff 1.14e-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-05 N 32 yields: interval [0.00e+00,1.42e+01] diff 1.94e-02
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,1.17e+01] diff 2.57e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 128 yields: interval [0.00e+00,9.12e+00] diff 8.98e-04
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 32 yields: interval [0.00e+00,1.17e+01] diff 5.62e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,9.12e+00] diff 7.23e-04
stocproc.method_ft - INFO - return, cause tol of 0.001 was reached
stocproc.method_ft - INFO - requires dx < 7.123e-02
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 1.251e+02]
stocproc.method_ft - INFO - requires dx < 1.425e-01
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 2.422e+02]
stocproc.stocproc - INFO - Number of Nodes : 2048
stocproc.stocproc - INFO - yields dx : 6.107e-02
stocproc.stocproc - INFO - yields dt : 5.023e-02
stocproc.stocproc - INFO - yields t_max : 1.028e+02
stocproc.stocproc - INFO - yields dx : 1.183e-01
stocproc.stocproc - INFO - yields dt : 2.594e-02
stocproc.stocproc - INFO - yields t_max : 5.310e+01
#+end_example
The sample trajectories are smooth.
@ -288,8 +283,8 @@ The sample trajectories are smooth.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f67b7512d30> |
[[file:./.ob-jupyter/10385a90753d7683d5740b88622cc4274de9c86a.png]]
| <matplotlib.lines.Line2D | at | 0x7f6809bb80a0> |
[[file:./.ob-jupyter/4e525ff2fa6e494fb3abab758809f3f335b7cf0e.png]]
:END:
And now the thermal noise.
@ -310,34 +305,27 @@ And now the thermal noise.
#+begin_example
stocproc.stocproc - INFO - non neg freq only
stocproc.method_ft - INFO - get_dt_for_accurate_interpolation, please wait ...
stocproc.method_ft - INFO - acc interp N 33 dt 9.38e-01 -> diff 6.53e-02
stocproc.method_ft - INFO - acc interp N 65 dt 4.69e-01 -> diff 1.47e-02
stocproc.method_ft - INFO - acc interp N 129 dt 2.34e-01 -> diff 3.20e-03
stocproc.method_ft - INFO - acc interp N 257 dt 1.17e-01 -> diff 7.67e-04
stocproc.method_ft - INFO - requires dt < 1.172e-01
stocproc.method_ft - INFO - acc interp N 33 dt 1.25e-01 -> diff 8.75e-04
stocproc.method_ft - INFO - requires dt < 1.250e-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 [0.00e+00,4.10e+00] diff 2.00e-02
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,5.82e+00] diff 4.75e-02
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 32 yields: interval [0.00e+00,4.10e+00] diff 9.15e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,5.82e+00] diff 4.69e-03
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 64 yields: interval [0.00e+00,4.10e+00] diff 7.88e-03
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 32 yields: interval [0.00e+00,7.50e+00] diff 8.51e-02
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,5.82e+00] diff 1.01e-02
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 128 yields: interval [0.00e+00,4.10e+00] diff 7.56e-03
stocproc.method_ft - INFO - J_w_min:1.00e-05 N 32 yields: interval [0.00e+00,9.16e+00] diff 1.04e-01
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,7.50e+00] diff 1.78e-02
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 128 yields: interval [0.00e+00,5.82e+00] diff 2.38e-03
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 256 yields: interval [0.00e+00,4.10e+00] diff 7.48e-03
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 [0.00e+00,1.08e+01] diff 1.22e-01
stocproc.method_ft - INFO - J_w_min:1.00e-05 N 64 yields: interval [0.00e+00,9.16e+00] diff 2.81e-02
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 128 yields: interval [0.00e+00,7.50e+00] diff 4.17e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 256 yields: interval [0.00e+00,5.82e+00] diff 7.86e-04
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 32 yields: interval [0.00e+00,7.50e+00] diff 9.58e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,5.82e+00] diff 1.59e-03
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 128 yields: interval [0.00e+00,4.10e+00] diff 7.56e-03
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 [0.00e+00,9.16e+00] diff 1.27e-02
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,7.50e+00] diff 2.38e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 128 yields: interval [0.00e+00,5.82e+00] diff 9.47e-04
stocproc.method_ft - INFO - return, cause tol of 0.001 was reached
stocproc.method_ft - INFO - requires dx < 2.272e-02
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 7.064e+01]
stocproc.stocproc - INFO - Number of Nodes : 4096
stocproc.stocproc - INFO - yields dx : 1.725e-02
stocproc.stocproc - INFO - yields dt : 8.895e-02
stocproc.stocproc - INFO - yields t_max : 3.642e+02
stocproc.method_ft - INFO - requires dx < 4.544e-02
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 6.839e+01]
stocproc.stocproc - INFO - Number of Nodes : 2048
stocproc.stocproc - INFO - yields dx : 3.340e-02
stocproc.stocproc - INFO - yields dt : 9.187e-02
stocproc.stocproc - INFO - yields t_max : 1.881e+02
#+end_example
The sample trajectories are smooth too.
@ -350,8 +338,8 @@ The sample trajectories are smooth too.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f67f93e6100> |
[[file:./.ob-jupyter/6d082076097694cb45a42d4608ed411592bfcd3e.png]]
| <matplotlib.lines.Line2D | at | 0x7f68499d1cd0> |
[[file:./.ob-jupyter/7c2fb11537e9382b65fdbc4225025dce060892b9.png]]
:END:
* Actual Hops
@ -374,9 +362,9 @@ Initialize Hierarchy.
#+end_src
#+RESULTS:
: init Hi class, use 2002 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(
: init Hi class, use 2002 equation
Run the integration.
#+begin_src jupyter-python
@ -384,13 +372,21 @@ Run the integration.
#+end_src
#+RESULTS:
: samples :[TET 5.48ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
: integration :[TET 5.28ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
: samples :[TET-2.01s---[866.5c/s]-TTG-3.00s-------------> 43.5% ETA 20211103_10:49:30 ORT 5.01s]
: integration :[TET 1.71ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
: samples :[TET-4.00s---[999.5c/s]-TTG-0.00ms------------------100%-------------------ETA-20211103_10:49:29-ORT-4.00s]
: integration :[TET 3.71ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
: 
#+begin_example
samples :[TET 5.52ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
integration :[TET 5.32ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
samples :[E-2.01s---[428.3c/s] G 8.00s 21.5% A 20211104_10:14:07 O 00:00:10]
integration :[TET 7.05ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
samples :[E-4.01s---[451.3c/s]-G-5.00s->45.2% A 20211104_10:14:06 O 9.01s]
integration :[TET 19.33ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
samples :[E-6.01s---[455.7c/s]-G-3.00s--68.5%---A-20211104_10:14:06 O 9.01s]
integration :[TET 27.20ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
samples :[E-8.02s---[456.6c/s]-G-1.00s--91.5%---A-20211104_10:14:06-O>9.02s]
integration :[TET 19.95ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]
samples :[E-8.75s---[457.4c/s]-G-0.00ms--100%---A-20211104_10:14:06-O-8.75s]
integration :[TET 4.00ms [0.0c/s] TTG -- 0.0% ETA -- ORT --]

#+end_example
Get the samples.
#+BEGIN_SRC jupyter-python
@ -425,8 +421,8 @@ Calculate energy.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f67f91e7730> |
[[file:./.ob-jupyter/8e6031964f047808246e7cc787bff3a3133b953e.png]]
| <matplotlib.lines.Line2D | at | 0x7f68497db4f0> |
[[file:./.ob-jupyter/b02f05ff976469eb5f86581f73e361ba4169d4ee.png]]
:END:
* Energy Flow
@ -438,7 +434,7 @@ Calculate energy.
#+end_src
#+RESULTS:
| 5120 | 300 | 8 |
| 5120 | 2000 | 8 |
Let's look at the norm.
#+begin_src jupyter-python
@ -447,17 +443,17 @@ Let's look at the norm.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f67f91599a0> |
[[file:./.ob-jupyter/46197d5b229e031e905aea1a0f5b517e977f711d.png]]
| <matplotlib.lines.Line2D | at | 0x7f68497580d0> |
[[file:./.ob-jupyter/89c2992c07948ad101e60c83c395c1767e351af7.png]]
:END:
And try to calculate the energy flow.
#+begin_src jupyter-python
def flow_for_traj(ψ_0, ψ_1, temp_y):
a = np.array((params.L @ ψ_0.T).T)
b = np.array(((params.L @ params.H_s - params.H_s @ params.L) @ ψ_0.T).T)
EtaTherm.new_process(temp_y)
η_dot = scipy.misc.derivative(EtaTherm, int_result.τ, dx=1e-3, order=5)
η_dot = scipy.misc.derivative(EtaTherm, int_result.τ, dx=1e-3, order=3)
ψ_1 = (-w * g * params.bcf_scale)[None, :, None] * ψ_1.reshape(
params.t_steps, params.num_exp_t, params.dim
)
@ -475,12 +471,30 @@ And try to calculate the energy flow.
j_therm = -np.array(
2
,* (
(np.sum(a.conj() * ψ_0, axis=1)) * η_dot
(np.sum(a.conj() * ψ_0, axis=1)) * η_dot / np.sum(ψ_0.conj() * ψ_0, axis=1)
).real
).flatten()
shift_energy = (
2
,* (
EtaTherm(int_result.τ)
,* np.sum(a.conj() * ψ_0, axis=1)
/ np.sum(ψ_0.conj() * ψ_0, axis=1)
).real
).flatten()
return j_0, j_therm
shift_energy_normal = (
2
,* (1j *
EtaTherm(int_result.τ) *
(np.sum(b.conj() * ψ_0, axis=1))
/ np.sum(ψ_0.conj() * ψ_0, axis=1)
).real
).flatten()
j_therm_alt = np.gradient(shift_energy, int_result.τ, edge_order=2)
return j_0, j_therm, j_therm_alt + shift_energy_normal
#+end_src
#+RESULTS:
@ -490,15 +504,18 @@ Now we calculate the average over all trajectories.
class Flow:
j_0 = np.zeros_like(int_result.τ)
j_therm = np.zeros_like(int_result.τ)
j_therm_alt = np.zeros_like(int_result.τ)
for i in range(0, params.N):
dj, dj_therm = flow_for_traj(
dj, dj_therm, dj_therm_alt = flow_for_traj(
int_result.ψ_0[i], int_result.ψ_1[i], int_result.temp_y[i]
)
j_0 += dj
j_therm += dj_therm
j_therm_alt += dj_therm_alt
j_0 /= params.N
j_therm /= params.N
j_therm_alt /= params.N
j = j_0 + j_therm
#+end_src
@ -510,14 +527,15 @@ And plot it :).
%matplotlib inline
plt.plot(int_result.τ, Flow.j_0, label=r"$j_0$")
plt.plot(int_result.τ, Flow.j_therm, label=r"$j_\mathrm{therm}$")
plt.plot(int_result.τ, Flow.j_therm_alt, label=r"$j_\mathrm{therm}^\mathrm{alt}$")
plt.plot(int_result.τ, Flow.j, label=r"$j$")
plt.legend()
#+end_src
#+RESULTS:
:RESULTS:
: <matplotlib.legend.Legend at 0x7f67f92338b0>
[[file:./.ob-jupyter/8ee454c5d5d79c6ebc664d4e6c9fa86ddd22d76b.png]]
: <matplotlib.legend.Legend at 0x7f68496cda30>
[[file:./.ob-jupyter/a11b670c1a122ed76028d9bd56c9ff33d49f4521.png]]
:END:
Let's calculate the integrated energy.
@ -533,7 +551,7 @@ Let's calculate the integrated energy.
#+end_src
#+RESULTS:
: 0.2055296100424721
: 0.1557882146641204
With this we can retrieve the energy of the interaction Hamiltonian.
#+begin_src jupyter-python
@ -556,12 +574,12 @@ With this we can retrieve the energy of the interaction Hamiltonian.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f67f3ca3f70> |
| <matplotlib.lines.Line2D | at | 0x7f67f3cbc3d0> |
| <matplotlib.lines.Line2D | at | 0x7f67f3cbc790> |
| <matplotlib.lines.Line2D | at | 0x7f68495ca970> |
| <matplotlib.lines.Line2D | at | 0x7f68495cad60> |
| <matplotlib.lines.Line2D | at | 0x7f6849572190> |
: Text(0.5, 0, 'τ')
: <matplotlib.legend.Legend at 0x7f67f3cbca90>
[[file:./.ob-jupyter/4667ed4d0c34454379b42baac0449563ea26df93.png]]
: <matplotlib.legend.Legend at 0x7f68495cabb0>
[[file:./.ob-jupyter/4019e2cde4e898f0a3174476803a78debd331d90.png]]
:END:
* System + Interaction Energy
@ -600,7 +618,7 @@ With this we can retrieve the energy of the interaction Hamiltonian.
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
return (E_i + E_s * 0) / np.sum(ψ_0.conj() * ψ_0, axis=1).real
#+end_src
#+RESULTS:
@ -616,7 +634,7 @@ With this we can retrieve the energy of the interaction Hamiltonian.
Doesn't work out.
#+begin_src jupyter-python
plt.plot(int_result.τ, e_si -energy, label=r"direct")
plt.plot(int_result.τ, e_si, label=r"direct")
plt.plot(int_result.τ, E_I)
plt.legend()
#+end_src
@ -624,6 +642,6 @@ Doesn't work out.
#+RESULTS:
:RESULTS:
: <matplotlib.legend.Legend at 0x7f67d675eb50>
[[file:./.ob-jupyter/c8c68dc3ee919f1306e4df7b284c3de1d8d24e8e.png]]
: <matplotlib.legend.Legend at 0x7f68494a4e80>
[[file:./.ob-jupyter/7b84ba5527e25086a3b332b30c87a195c3e767c0.png]]
:END:

View file

@ -9,8 +9,6 @@
#+end_src
#+RESULTS:
: The autoreload extension is already loaded. To reload it, use:
: %reload_ext autoreload
** Matplotlib
#+begin_src jupyter-python
@ -59,10 +57,10 @@ Basic parameters.
class params:
T = 2.09
t_max = 4
t_max = 1
t_steps = int(t_max * 1/.01)
k_max = 3
N = 4000
N = 17
seed = 100
dim = 2
@ -178,7 +176,7 @@ Let's look a the result.
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/3abd0a6ad02389d5ec933b1d83115fb4fc204dbf.png]]
[[file:./.ob-jupyter/8aef9360013cb6fc910354f4a0876034bbc0f184.png]]
Seems ok for now.
** Hops setup
@ -251,35 +249,33 @@ The quantum noise.
#+begin_example
stocproc.stocproc - INFO - non neg freq only
stocproc.method_ft - INFO - get_dt_for_accurate_interpolation, please wait ...
stocproc.method_ft - INFO - acc interp N 33 dt 2.50e-01 -> diff 2.04e-02
stocproc.method_ft - INFO - acc interp N 65 dt 1.25e-01 -> diff 4.49e-03
stocproc.method_ft - INFO - acc interp N 129 dt 6.25e-02 -> diff 1.08e-03
stocproc.method_ft - INFO - acc interp N 257 dt 3.12e-02 -> diff 2.69e-04
stocproc.method_ft - INFO - acc interp N 513 dt 1.56e-02 -> diff 6.71e-05
stocproc.method_ft - INFO - acc interp N 33 dt 6.25e-02 -> diff 1.08e-03
stocproc.method_ft - INFO - acc interp N 65 dt 3.12e-02 -> diff 2.69e-04
stocproc.method_ft - INFO - acc interp N 129 dt 1.56e-02 -> diff 6.71e-05
stocproc.method_ft - INFO - requires dt < 1.562e-02
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 [0.00e+00,6.47e+00] diff 9.83e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,9.12e+00] diff 3.58e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,9.12e+00] diff 2.72e-03
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 64 yields: interval [0.00e+00,6.47e+00] diff 1.11e-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-04 N 32 yields: interval [0.00e+00,1.17e+01] diff 6.45e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,9.12e+00] diff 8.35e-04
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 32 yields: interval [0.00e+00,1.17e+01] diff 5.41e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,9.12e+00] diff 5.54e-04
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 128 yields: interval [0.00e+00,6.47e+00] diff 1.14e-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-05 N 32 yields: interval [0.00e+00,1.42e+01] diff 1.05e-02
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,1.17e+01] diff 1.43e-03
stocproc.method_ft - INFO - J_w_min:1.00e-05 N 32 yields: interval [0.00e+00,1.42e+01] diff 8.13e-03
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,1.17e+01] diff 1.30e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 128 yields: interval [0.00e+00,9.12e+00] diff 8.98e-04
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 256 yields: interval [0.00e+00,6.47e+00] diff 1.15e-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-06 N 32 yields: interval [0.00e+00,1.66e+01] diff 1.54e-02
stocproc.method_ft - INFO - J_w_min:1.00e-05 N 64 yields: interval [0.00e+00,1.42e+01] diff 2.18e-03
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 128 yields: interval [0.00e+00,1.17e+01] diff 3.44e-04
stocproc.method_ft - INFO - J_w_min:1.00e-06 N 32 yields: interval [0.00e+00,1.66e+01] diff 1.11e-02
stocproc.method_ft - INFO - J_w_min:1.00e-05 N 64 yields: interval [0.00e+00,1.42e+01] diff 2.03e-03
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 128 yields: interval [0.00e+00,1.17e+01] diff 2.69e-04
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 256 yields: interval [0.00e+00,9.12e+00] diff 1.06e-03
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 [0.00e+00,1.91e+01] diff 2.33e-02
stocproc.method_ft - INFO - J_w_min:1.00e-06 N 64 yields: interval [0.00e+00,1.66e+01] diff 3.04e-03
stocproc.method_ft - INFO - J_w_min:1.00e-05 N 128 yields: interval [0.00e+00,1.42e+01] diff 5.18e-04
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 256 yields: interval [0.00e+00,1.17e+01] diff 8.45e-05
stocproc.method_ft - INFO - J_w_min:1.00e-07 N 32 yields: interval [0.00e+00,1.91e+01] diff 1.48e-02
stocproc.method_ft - INFO - J_w_min:1.00e-06 N 64 yields: interval [0.00e+00,1.66e+01] diff 2.80e-03
stocproc.method_ft - INFO - J_w_min:1.00e-05 N 128 yields: interval [0.00e+00,1.42e+01] diff 5.04e-04
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 256 yields: interval [0.00e+00,1.17e+01] diff 4.76e-05
stocproc.method_ft - INFO - return, cause tol of 0.0001 was reached
stocproc.method_ft - INFO - requires dx < 4.557e-02
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 5.480e+02]
@ -299,8 +295,8 @@ The sample trajectories are smooth.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7ff8e1b1ee50> |
[[file:./.ob-jupyter/a0e1c0f89b5156debf397da1b99611475940605e.png]]
| <matplotlib.lines.Line2D | at | 0x7f38441603d0> |
[[file:./.ob-jupyter/e263d6d8b8147ea9a2e498b427f567ba34a2b6a7.png]]
:END:
And now the thermal noise.
@ -321,26 +317,26 @@ And now the thermal noise.
#+begin_example
stocproc.stocproc - INFO - non neg freq only
stocproc.method_ft - INFO - get_dt_for_accurate_interpolation, please wait ...
stocproc.method_ft - INFO - acc interp N 33 dt 2.50e-01 -> diff 3.75e-03
stocproc.method_ft - INFO - acc interp N 65 dt 1.25e-01 -> diff 8.94e-04
stocproc.method_ft - INFO - requires dt < 1.250e-01
stocproc.method_ft - INFO - acc interp N 33 dt 6.25e-02 -> diff 2.21e-04
stocproc.method_ft - INFO - requires dt < 6.250e-02
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 [0.00e+00,4.18e+00] diff 9.38e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,5.92e+00] diff 1.01e-02
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 32 yields: interval [0.00e+00,5.92e+00] diff 4.42e-03
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 64 yields: interval [0.00e+00,4.18e+00] diff 8.00e-03
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 32 yields: interval [0.00e+00,7.62e+00] diff 1.77e-02
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,5.92e+00] diff 2.35e-03
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-04 N 32 yields: interval [0.00e+00,7.62e+00] diff 7.37e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 64 yields: interval [0.00e+00,5.92e+00] diff 1.66e-03
stocproc.method_ft - INFO - J_w_min:1.00e-02 N 128 yields: interval [0.00e+00,4.18e+00] diff 7.66e-03
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 [0.00e+00,9.30e+00] diff 2.71e-02
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,7.62e+00] diff 4.35e-03
stocproc.method_ft - INFO - J_w_min:1.00e-05 N 32 yields: interval [0.00e+00,9.30e+00] diff 1.04e-02
stocproc.method_ft - INFO - J_w_min:1.00e-04 N 64 yields: interval [0.00e+00,7.62e+00] diff 1.87e-03
stocproc.method_ft - INFO - J_w_min:1.00e-03 N 128 yields: interval [0.00e+00,5.92e+00] diff 9.72e-04
stocproc.method_ft - INFO - return, cause tol of 0.001 was reached
stocproc.method_ft - INFO - requires dx < 4.622e-02
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 6.898e+01]
stocproc.stocproc - INFO - Number of Nodes : 2048
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 1.380e+02]
stocproc.stocproc - INFO - Number of Nodes : 4096
stocproc.stocproc - INFO - yields dx : 3.368e-02
stocproc.stocproc - INFO - yields dt : 9.109e-02
stocproc.stocproc - INFO - yields dt : 4.555e-02
stocproc.stocproc - INFO - yields t_max : 1.865e+02
#+end_example
@ -354,8 +350,8 @@ The sample trajectories are smooth too.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7ff8e1b09b20> |
[[file:./.ob-jupyter/8a11e7589322c005ad1b68c72035dc4c859e97b1.png]]
| <matplotlib.lines.Line2D | at | 0x7f384413fd30> |
[[file:./.ob-jupyter/fa5c945d8f37080bcad16c6fda2ebe4221da87ae.png]]
:END:
* Actual Hops
@ -388,139 +384,12 @@ Run the integration.
#+end_src
#+RESULTS:
#+begin_example
samples :0.0%
integration :0.0%
samples :4.0%
integration :3.5%
samples :5.7%
integration :60.5%
samples :7.4%
integration :31.0%
samples :9.1%
integration :78.8%
samples :10.8%
integration :99.5%
samples :12.4%
integration :61.8%
samples :14.1%
integration :7.2%
samples :15.8%
integration :45.5%
samples :17.5%
integration :31.0%
samples :19.1%
integration :0.5%
samples :20.8%
integration :59.8%
samples :22.5%
integration :26.8%
samples :24.1%
integration :22.5%
samples :25.7%
integration :99.8%
samples :27.1%
integration :16.5%
samples :28.0%
integration :99.8%
samples :29.0%
integration :72.8%
samples :30.6%
integration :99.8%
samples :31.5%
integration :32.8%
samples :32.1%
integration :0.0%
samples :33.4%
integration :99.8%
samples :34.2%
integration :99.8%
samples :35.5%
integration :0.0%
samples :37.1%
integration :99.8%
samples :38.8%
integration :58.5%
samples :40.5%
integration :0.8%
samples :42.2%
integration :10.2%
samples :43.9%
integration :70.5%
samples :45.1%
integration :99.8%
samples :46.8%
integration :25.5%
samples :48.5%
integration :73.0%
samples :49.9%
integration :65.2%
samples :51.5%
integration :0.0%
samples :52.9%
integration :99.8%
samples :54.4%
integration :11.2%
samples :56.1%
integration :41.5%
samples :57.8%
integration :22.2%
samples :59.5%
integration :17.8%
samples :61.1%
integration :1.2%
samples :62.7%
integration :45.5%
samples :64.3%
integration :18.2%
samples :65.8%
integration :40.2%
samples :67.3%
integration :99.8%
samples :68.9%
integration :5.5%
samples :70.3%
integration :93.8%
samples :71.9%
integration :63.0%
samples :73.5%
integration :22.5%
samples :75.1%
integration :3.2%
samples :76.6%
integration :52.5%
samples :78.3%
integration :26.0%
samples :80.0%
integration :0.0%
samples :81.5%
integration :84.0%
samples :83.2%
integration :47.2%
samples :84.9%
integration :37.8%
samples :86.6%
integration :52.8%
samples :88.3%
integration :1.0%
samples :89.9%
integration :69.5%
samples :91.6%
integration :99.8%
samples :93.3%
integration :99.8%
samples :95.0%
integration :0.0%
samples :96.6%
integration :0.2%
samples :98.2%
integration :0.0%
samples :99.8%
integration :53.5%
samples : 100%
integration :0.0%

#+end_example
: (10, 100, 56)
: samples :0.0%
: integration :0.0%
: samples : 100%
: integration :0.0%
: 
Get the samples.
#+BEGIN_SRC jupyter-python
# to access the data the 'hi_key' is used to find the data in the hdf5 file
@ -542,7 +411,7 @@ Get the samples.
#+end_src
#+RESULTS:
: 4000 samples found in database
: 17 samples found in database
Calculate energy.
#+begin_src jupyter-python
@ -553,8 +422,8 @@ Calculate energy.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7ff8e19e6370> |
[[file:./.ob-jupyter/e8fe3d35c11c218d4443333cec849e3e5a0102c3.png]]
| <matplotlib.lines.Line2D | at | 0x7f384404a6a0> |
[[file:./.ob-jupyter/f17cfebfc5e7c505b28a2ffe32c89e50dd078f1e.png]]
:END:
* Energy Flow