diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2009-12-12 22:13:58 +0000 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2009-12-12 22:13:58 +0000 |
commit | c46ae2c7bbe38393813a9cca11872f2550898f8a (patch) | |
tree | d79c0049041f2ff5f17e924a96a6d2182c8ce046 /useful_functions.m | |
parent | b77f7c4efbfd47ab97254fbc3e2e383153845b6c (diff) | |
download | multi_mode_eit-c46ae2c7bbe38393813a9cca11872f2550898f8a.tar.gz multi_mode_eit-c46ae2c7bbe38393813a9cca11872f2550898f8a.zip |
speed up by another factor of 4 by calculatiing field independent atom property matrices
Diffstat (limited to 'useful_functions.m')
-rw-r--r-- | useful_functions.m | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/useful_functions.m b/useful_functions.m index 56989df..a1135f7 100644 --- a/useful_functions.m +++ b/useful_functions.m @@ -55,7 +55,7 @@ endfunction % sub matrices of Liouville operator % which repeat themselves for each modulation frequency % based on recipe from Eugeniy Mikhailov thesis -function [L0m, polarization_m]=L0_and_polarization_submatrices( ... +function [L0m, polarizability_m]=L0_and_polarization_submatrices( ... rho_size, ... H0, g_decay, g_dephasing, dipole_elements, ... E_field, ... @@ -69,7 +69,7 @@ function [L0m, polarization_m]=L0_and_polarization_submatrices( ... decay_part_m=zeros(rho_size); % (NxN)x(NxN) matrix % polarization matrix will be multiplied by field amplitude letter % polarization is part of perturbation part of Hamiltonian - polarization_m=zeros(rho_size); % (NxN)x(NxN) matrix + polarizability_m=zeros(rho_size); % (NxN)x(NxN) matrix for p=1:rho_size % p= j*Nlevels+k % this might speed up stuff since less matrix passed back and force @@ -85,7 +85,7 @@ function [L0m, polarization_m]=L0_and_polarization_submatrices( ... decay_part_m(p,s)=\ ( decay_total(g_decay,k)/2 + decay_total(g_decay,j)/2 + g_dephasing(j,k) )* kron_delta(j,m)*kron_delta(k,n) \ - kron_delta(m,n)*kron_delta(j,k)*g_decay(m,j) ; - polarization_m(p,s)= ( dipole_elements(j,m)*kron_delta(k,n)-dipole_elements(n,k)*kron_delta(j,m) ); + polarizability_m(p,s)= ( dipole_elements(j,m)*kron_delta(k,n)-dipole_elements(n,k)*kron_delta(j,m) ); endfor endfor L0m=-im_one/hbar*L0m - decay_part_m; @@ -95,7 +95,7 @@ endfunction % based on recipe from Eugeniy Mikhailov thesis function L=Liouville_operator_matrix( N, - H0, g_decay, g_dephasing, dipole_elements, + L0m, polarizability_m, E_field, modulation_freq, rhoLiouville_w, rhoLiouville_r, rhoLiouville_c ) @@ -112,13 +112,6 @@ function L=Liouville_operator_matrix( % with length Nlevels*Nlevels=N/Nfreq rho_size=N/Nfreq; - [L0m, polarization_m]=L0_and_polarization_submatrices( ... - rho_size, ... - H0, g_decay, g_dephasing, dipole_elements, ... - E_field, ... - modulation_freq, rhoLiouville_w, rhoLiouville_r, rhoLiouville_c ... - ); - % Liouville matrix operator has Nlevels*Nlevels blocks % which governed by the same modulation frequency @@ -150,7 +143,7 @@ function L=Liouville_operator_matrix( % calculate perturbed part (Hamiltonian with EM field) % in other word interactive part of Hamiltonian L(p0:p0+rho_size-1,s0:s0+rho_size-1)= ... - -im_one/hbar*polarization_m* E_field(w3i); + -im_one/hbar*polarizability_m* E_field(w3i); endif % diagonal elements are self modulated % due to rotating wave approximation @@ -170,7 +163,7 @@ endfunction % sum(rho_ii)=1 (sum of all populations (with zero modulation frequency) scales to 1 % we will replace first row of Liouville operator with this condition % thus rhoLiouville_dot(1)=1 -function [rhoLiouville_dot, L]=constran_rho_and_match_L( +function [rhoLiouville_dot, L]=constrain_rho_and_match_L( N, L, modulation_freq, rhoLiouville_w, rhoLiouville_r, rhoLiouville_c) for i=1:N |