From fce1407cafc4ac8fa5c91f6a214883a2c93f1b2e Mon Sep 17 00:00:00 2001 From: Lars Hubatsch <hubatsch@pks.mpg.de> Date: Fri, 23 Oct 2020 13:08:11 +0200 Subject: [PATCH] Change signature of int_prob. SS jump lengths work in both directions. --- prob_laplace.m | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/prob_laplace.m b/prob_laplace.m index d216791..3e5cb4d 100644 --- a/prob_laplace.m +++ b/prob_laplace.m @@ -189,10 +189,11 @@ end %% %%%%%%%%%%%%%%%%% STEADY STATE JUMP LENGTH DISTRIBUTION %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -params = {-5, b(7.7/3, 10^-6), 0.5, e(7.7/3), 0, 1, 10, 7, 0, 'Constituent'}; +params = {-5, b(7.7/3, 10^-6), 0.5, e(7.7/3), 0, 1, 10, 7, 0,... + 'Constituent', 0}; t = [0, 0.05, 0.1, 1]; -direc = -1; -x0 = sort(5-direc*(0:0.002:3.01)); +direc = 1; +x0 = sort(5-direc*(0:0.001:3.01)); %% Run simulations for 'delta' IC across outside T = {}; parfor i = 1:length(x0) @@ -204,15 +205,17 @@ parfor i = 1:length(x0) end % save prob_laplace_X_7_7_short_2 %% Calculate probabilities for each jump length in ls. -ls = 0.0005:0.005:3; +ls = -direc*(0.000:0.001:3); p = nan(1, length(ls)); tic parfor i = 1:length(ls) - p(i) = int_prob(ls(i), T, x0, direc, 4, 5); + tic + p(i) = int_prob(ls(i), T, x0, direc, 3, 5, 0); + toc end toc %% Normalization factor -N = normalization(T, x0, 0, 4); +N = normalization(T, x0, 0, 3); %% Do we need to look at the left side as well? figure; hold on; plot(ls, p/N); @@ -293,7 +296,7 @@ for j = 1:n_T F1 = F(:, j); bp = bound(j); for i = 1:length(ls) - p(i, j) = int_prob(ls(i), F1, x0(j, :), direc, j, bp, T_mov, 10); + p(i, j) = int_prob(ls(i), F1, x0(j, :), direc, j, bp, 10, T_mov); end toc end @@ -377,7 +380,7 @@ p = nan(length(ls), n_T); for j = 1:n_T tic parfor i = 1:length(ls) - p(i, j) = int_prob(ls(i), F, x0, direc, j, bp, T_mov, 5); + p(i, j) = int_prob(ls(i), F, x0, direc, j, bp, 5, T_mov); end toc end @@ -388,7 +391,7 @@ csvwrite('prob_in_out.csv', p); %% %%%%%%%%%%%%%%%%%%% INTEGRATION FUNCTION DEFINITIONS %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -function p = int_prob(l, T, x0, direc, ind_t, bp, T_mov, ind_delta) +function p = int_prob(l, T, x0, direc, ind_t, bp, ind_delta, T_mov) % direc ... change direction of jumps, 1: left->right, -1: right->left % ind_t ... time index at which propagators are evaluated % bp ... boundary position at t==ind_t @@ -400,7 +403,7 @@ for i = 1:length(delta_x0) corr_starting_point = direc*x < direc*bp; corr_end_point = direc*(x-l) > direc*(bp-T{i}.v*T{1}.t(ind_delta+1)); if corr_starting_point && corr_end_point - if nargin==6 + if nargin==7 p_i = @(j) interp1(T{j}.x, T{j}.sol(ind_t, :), x-l); p2 = (p_i(i)+p_i(i+1))/2; % @ SS distribution for x0 can be taken from phi_tot -- GitLab