List of commits:
Subject Hash Author Date (UTC)
Change 'blocksize' argument in blocked_cross_correlation to key-value type syntax 5d8d0735783578340181b70eff55d071ba4d25d7 Jason Hoelscher-Obermaier 2016-06-13 09:36:01
Add quick version of entanglement evalution 63b2dc15c5fc7a7c5c9f870d783ab8f4d1c95396 Jason Hoelscher-Obermaier 2016-06-13 09:35:01
Fix wrong calculation of pulse modes (wrong pulse width; gamma -> 2 pi gamma) f2e86613d70f9f14b6f9b0fa28087c4acae94230 Jason Hoelscher-Obermaier 2016-06-13 09:33:34
Export pulse quadratures at end of run_entanglement_evaluation_simulation.m 1cc8f88b244ea1041aa7503b8d8141f8d85c9959 Jason Hoelscher-Obermaier 2016-06-07 13:51:00
Restore correct calculation of mode functions 70ae3d6ae7d2513d506cd400f72048e7c64e0def Jason Hoelscher-Obermaier 2016-06-07 13:37:44
Fix export of pulse quadratures f2d5f225c3f1c2c9a1313a1f63b4e5ef8c6e0ce3 Jason Hoelscher-Obermaier 2016-06-07 12:51:49
Auxfct for permuting data in several files ab144ff91342465644168d5e19691805bb1de3b7 Jason Hoelscher-Obermaier 2016-06-06 09:03:13
Correct permutation, add option for inverse permutation 6c615f43b7d08f0c29268a7b9216478b70dc0bb7 Jason Hoelscher-Obermaier 2016-06-06 08:54:21
Remove superfluous folder 3f32158ae47b1dabb7d207917ba9f28abfe346d3 Jason Hoelscher-Obermaier 2016-06-03 15:31:33
Add function to permute data from from q1...qn p1..pn.. to q1 p1... q1 p2 ... order 6d79e850ea8240822cae695b4daafd6a5594f578 Jason Hoelscher-Obermaier 2016-06-03 15:28:58
Add pseudohash as property to PXItrace 9893a652fbcd30d1c21555afc8feb1e89f2421f0 Jason Hoelscher-Obermaier 2016-06-03 15:25:33
Also hash the byte-size of files for added safety.. ddd093904a05897a12c74d070f812e5f2f4872dd Jason Hoelscher-Obermaier 2016-06-03 15:23:04
Add fct to compute quick "pseudo-hash" for (possibly large, binary) files f84b246eda5de28116596e77d418287743e71d1b Jason Hoelscher-Obermaier 2016-06-03 09:40:21
Mini-improvement in comments a11b66ab4ba137a9b160168152a3339da499eb7f Jason Hoelscher-Obermaier 2016-06-02 15:52:11
Simplifying test_dual_homo_measurement acc.to updated capabilities of homotrace.. e3a5010187332b91038ed5272a00d5150bd3e7bd Jason Hoelscher-Obermaier 2016-06-02 15:50:45
Re-adding prematurely dismissed functions d2bd6f498a7d4f93b7016debc3de0e02bed4f9f9 Jason Hoelscher-Obermaier 2016-06-02 15:50:06
Fix merge-induced bug in entanglement_evaluation.m ee40bc95ac59cbd95f13cf2aea409c187aca0003 Jason Hoelscher-Obermaier 2016-06-02 15:08:51
Add xUnit tests for entanglement_evaluation and dual_homo_measurement 4e9d4b0941db414b564116aa1f327752ad95a15b Jason Hoelscher-Obermaier 2016-05-25 10:18:19
Turn blocked_cross_correlation into a function of PXItraces 3391b939590e01224ff19ef3234248f43a2861e8 Jason Hoelscher-Obermaier 2016-06-01 16:25:55
Move testdata to subfolder data/ 47dcbd5cb08b5ff551d3659d6068a7987d596093 Jason Hoelscher-Obermaier 2016-06-01 12:43:04
Commit 5d8d0735783578340181b70eff55d071ba4d25d7 - Change 'blocksize' argument in blocked_cross_correlation to key-value type syntax
Author: Jason Hoelscher-Obermaier
Author date (UTC): 2016-06-13 09:36
Committer name: Jason Hoelscher-Obermaier
Committer date (UTC): 2016-06-13 09:36
Parent(s): 63b2dc15c5fc7a7c5c9f870d783ab8f4d1c95396
Signer:
Signing key:
Signing status: N
Tree: d17344322d77a4cd2c2c286e6563dedfa7535bbb
File Lines added Lines deleted
data_analysis/@entanglement_evaluation/entanglement_evaluation.m 27 18
data_analysis/auxfunctions/run_entanglement_evaluation_simulation.m 1 1
File data_analysis/@entanglement_evaluation/entanglement_evaluation.m changed (mode: 100644) (index 282ac0b..53c52d1)
1 1 classdef entanglement_evaluation < handle classdef entanglement_evaluation < handle
2 2 %ev=entanglement_evaluation creates entanglement_evaluation object which %ev=entanglement_evaluation creates entanglement_evaluation object which
3 %contains a dual_homo_measurement object together with information about
3 %contains a dual_homo_measurement object together with information about
4 4 %the entanglement evaluation %the entanglement evaluation
5 5 % %
6 6 %all frequencies should be given in Hz for consistency!! %all frequencies should be given in Hz for consistency!!
 
... ... classdef entanglement_evaluation < handle
12 12 % defining input and output % defining input and output
13 13 measurement@dual_homo_measurement scalar measurement@dual_homo_measurement scalar
14 14 evaluation_folder evaluation_folder
15
15
16 16 % defining the pulsed modes % defining the pulsed modes
17 17 inverted_evaluation@logical scalar = false inverted_evaluation@logical scalar = false
18 18 pulse_gammas@double vector =[1] % now a commmon scaling factor for the pulse lengths!! pulse_gammas@double vector =[1] % now a commmon scaling factor for the pulse lengths!!
 
... ... classdef entanglement_evaluation < handle
22 22 coupling_rates@double vector % linearized coupling for each mode coupling_rates@double vector % linearized coupling for each mode
23 23 bare_couplings@double vector % single-photon coupling for each mode bare_couplings@double vector % single-photon coupling for each mode
24 24
25
25
26 26 kappa@double scalar % cavity linewidth kappa@double scalar % cavity linewidth
27 27 kappa_in@double scalar % input coupler linewidth kappa_in@double scalar % input coupler linewidth
28 28 temperature@double scalar % in Kelvin temperature@double scalar % in Kelvin
 
... ... classdef entanglement_evaluation < handle
34 34 readout_modes@double matrix %complex readout_modes@double matrix %complex
35 35 entangling_modes@double matrix %complex entangling_modes@double matrix %complex
36 36 correlation_functions@cell matrix correlation_functions@cell matrix
37
37
38 38 pulse_Q@cell matrix pulse_Q@cell matrix
39 39 pulse_P@cell matrix pulse_P@cell matrix
40 40 pulse_X@cell matrix pulse_X@cell matrix
41 41 pulse_Y@cell matrix pulse_Y@cell matrix
42
42
43 43 pulse_CM@cell matrix pulse_CM@cell matrix
44 44 pulse_CM_calibrated@cell matrix pulse_CM_calibrated@cell matrix
45 45 pulse_CM_is_physical@cell matrix pulse_CM_is_physical@cell matrix
46 46 logneg_corrected@cell matrix logneg_corrected@cell matrix
47 47 end end
48
48
49 49 methods methods
50 50 %% constructor %% constructor
51 51 function obj = entanglement_evaluation(varargin) function obj = entanglement_evaluation(varargin)
52 52 obj = parseVararginForMissingFields(obj, varargin{:}); obj = parseVararginForMissingFields(obj, varargin{:});
53 53 end end
54 function obj = blocked_cross_correlation(obj, block_size)
54 function obj = blocked_cross_correlation(obj, varargin)
55 block_size = 2^ceil(log2(2*obj.samples_per_pulse-1));
56 for k=1:2:length(varargin)
57 switch varargin{k}
58 case 'blocksize'
59 block_size = varargin{k+1};
60 otherwise
61 error(['varargin-argument ', varargin{k}, ' not recognized!']);
62 end
63 end
55 64 for tp=1:obj.tracepairs_no for tp=1:obj.tracepairs_no
56 65 tr_a = obj.measurement.homotraces(tp,1); tr_a = obj.measurement.homotraces(tp,1);
57 66 tr_b = obj.measurement.homotraces(tp,2); tr_b = obj.measurement.homotraces(tp,2);
 
... ... classdef entanglement_evaluation < handle
66 75 methods(Static, Hidden) methods(Static, Hidden)
67 76 [optWidth, optLogNeg] = findOptimalPulseWidth(g,kappa,gamma_m, n_bar) [optWidth, optLogNeg] = findOptimalPulseWidth(g,kappa,gamma_m, n_bar)
68 77 end end
69
78
70 79 %% dependent properties and their getters %% dependent properties and their getters
71 80 properties(Dependent) properties(Dependent)
72 81 tracepairs_no@double scalar tracepairs_no@double scalar
73
82
74 83 samples_per_trace@double scalar samples_per_trace@double scalar
75 84 pulse_pairs_per_trace@double scalar pulse_pairs_per_trace@double scalar
76 pulse_duration_seconds@double scalar
77
85 pulse_duration_seconds@double scalar
86
78 87 pulse_timevector@double vector pulse_timevector@double vector
79
88
80 89 mech_frequencies_no@double scalar mech_frequencies_no@double scalar
81 pulse_gammas_no@double scalar
82
90 pulse_gammas_no@double scalar
91
83 92 % get from measurement object % get from measurement object
84 93 samplingrate@double scalar samplingrate@double scalar
85 94 signal_power_muW@double matrix signal_power_muW@double matrix
86 95
87 %
96 %
88 97 cooperativities@double vector % cooperativity from g, kappa, gamma, T for each mode cooperativities@double vector % cooperativity from g, kappa, gamma, T for each mode
89 98 nbars@double vector %thermal occupation from T and omega for each mode nbars@double vector %thermal occupation from T and omega for each mode
90 99 omegas@double vector %mechanical frequencies for each mode omegas@double vector %mechanical frequencies for each mode
 
... ... classdef entanglement_evaluation < handle
100 109 methods methods
101 110 function pulse_pairs_per_trace = get.pulse_pairs_per_trace(obj) function pulse_pairs_per_trace = get.pulse_pairs_per_trace(obj)
102 111 pulse_pairs_per_trace = floor(obj.samples_per_trace/(2*obj.samples_per_pulse)); pulse_pairs_per_trace = floor(obj.samples_per_trace/(2*obj.samples_per_pulse));
103 end
112 end
104 113 function pulse_duration_seconds = get.pulse_duration_seconds(obj) function pulse_duration_seconds = get.pulse_duration_seconds(obj)
105 114 pulse_duration_seconds = obj.samples_per_pulse/obj.samplingrate; pulse_duration_seconds = obj.samples_per_pulse/obj.samplingrate;
106 115 end end
 
... ... classdef entanglement_evaluation < handle
156 165 end end
157 166 function omegas = get.omegas(obj) function omegas = get.omegas(obj)
158 167 omegas = zeros(obj.mech_frequencies_no, 1); omegas = zeros(obj.mech_frequencies_no, 1);
159 for k=1:obj.mech_frequencies_no
168 for k=1:obj.mech_frequencies_no
160 169 omegas(k) = 2*pi*obj.mech_frequencies(k); omegas(k) = 2*pi*obj.mech_frequencies(k);
161 170 end end
162 171 end end
 
... ... classdef entanglement_evaluation < handle
177 186 end end
178 187 end end
179 188 end end
180 end
189 end
File data_analysis/auxfunctions/run_entanglement_evaluation_simulation.m changed (mode: 100644) (index e5a0ce9..ff13c21)
... ... function [ev, model] = run_entanglement_evaluation_simulation(simulation_dir, va
73 73 if test_mode if test_mode
74 74 return return
75 75 end end
76 ev = calculate_entanglement(ev) %% run evaluation with current params
76 ev = calculate_entanglement(ev); %% run evaluation with current params
77 77
78 78 %% export simulation curve and evaluation results %% export simulation curve and evaluation results
79 79 simulation_fig = figure; hold all; simulation_fig = figure; hold all;
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/gutc61/Membrane

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/gutc61/Membrane

Clone this repository using git:
git clone git://git.rocketgit.com/user/gutc61/Membrane

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main