From 693a02718fead38088a00a3b49aff6bd5e479a8e Mon Sep 17 00:00:00 2001 From: Lars Hubatsch <hubatsch@pks.mpg.de> Date: Wed, 11 Nov 2020 11:22:05 +0100 Subject: [PATCH] Outsourcing jump length calculation to separate function. --- prob_laplace.m | 54 ++++++++++++++++++++++++++++++---------------- run_jump_lengths.m | 33 ++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 19 deletions(-) create mode 100644 run_jump_lengths.m diff --git a/prob_laplace.m b/prob_laplace.m index 7c814d5..79cb44f 100644 --- a/prob_laplace.m +++ b/prob_laplace.m @@ -185,25 +185,40 @@ for i = 1:100%length(T_mov.t) % print([num2str(i),'.png'],'-dpng') shg; pause(); end +%% +run_jump_lengths(-5, -0.15432893, 7/3, 1, 4, '73_0154_10', 10^-6, 4, 0.5); +%% chi 7/3 +run_jump_lengths(-5, 1, 7/3, 1, 4, '73_1_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, 1, 7/3, 1, 4, '73_1_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, 0, 7/3, 1, 4, '73_6_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, 0, 7/3, 1, 4, '73_6_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, -0.08410041, 7/3, 1, 4, '73_10_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, -0.08410041, 7/3, 1, 4, '73_10_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, -0.12314694, 7/3, 1, 4, '73_15_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, -0.12314694, 7/3, 1, 4, '73_15_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, -0.14264143, 7/3, 1, 4, '73_20_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, -0.14264143, 7/3, 1, 4, '73_20_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, -0.15432893, 7/3, 1, 4, '73_25_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, -0.15432893, 7/3, 1, 4, '73_25_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, -0.16211677, 7/3, 1, 4, '73_30_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, -0.16211677, 7/3, 1, 4, '73_30_10', 10^-6, 4, 0.5); -%% Different ratios of Dm/Dp -chi = 7/3; nu = 10^-6; u0 = 0.5; a = -5; -b1 = b(chi, nu); P = (u0+e(chi))/(u0-e(chi)); -params = {a, b1, u0, e(chi), -0.15432893, 0, 10, 7, 0, 'Const_mob', 0}; -%% Stefano's way of having mobility with square. works, 0.5% diff -chi = 7/3; nu = 10^-6; u0 = 0.5; a = -5; -b1 = b(chi, nu); P = (u0+e(chi))/(u0-e(chi)); -params = {a, b1, u0, e(chi), -0.12314694, 0, 10, 7, 0, 'Const_mob', 0}; -%% -D_i = 0.05672749; D_o = 0.85091231; chi = 7/3; nu = 10^-6; u0 = 0.5; a = -5; -b1 = b(chi, nu); P = (u0+e(chi))/(u0-e(chi)); -[~, e_g, u_g] = calc_tanh_params(P, D_i, D_o, a, b1, u0); -%% -D_i = 0.03; D_o = 0.83; chi = 7/3; nu = 10^-6; u0 = 0.5; a = -5; -b1 = b(chi, nu); P = (u0+e(chi))/(u0-e(chi)); -[~, e_g, u_g] = calc_tanh_params(P, D_i, D_o, a, b1, u0); -%% -params = {a, b1, u0, e(chi), e_g, u_g, 10, 7, 0, 'Constituent', 0}; +replace(num2str(round(chi,2)),'.', '') +%% chi 7.7/3 +run_jump_lengths(-5, 1, 7.7/3, 1, 4, '773_1_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, 1, 7.7/3, 1, 4, '773_1_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, 0.136322219, 7.7/3, 1, 4, '773_6_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, 0.136322219, 7.7/3, 1, 4, '773_6_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, 0.0618145816, 7.7/3, 1, 4, '773_10_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, 0.0618145816, 7.7/3, 1, 4, '773_10_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, 0.027120457, 7.7/3, 1, 4, '773_15_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, 0.027120457, 7.7/3, 1, 4, '773_15_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, 0.00977482501, 7.7/3, 1, 4, '773_20_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, 0.00977482501, 7.7/3, 1, 4, '773_20_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, 0, 7.7/3, 1, 4, '773_25_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, 0, 7.7/3, 1, 4, '773_25_10', 10^-6, 4, 0.5); +run_jump_lengths(-5, -0.00756985349, 7.7/3, 1, 4, '773_30_01', 10^-6, 3, 0.5); +run_jump_lengths(-5, -0.00756985349, 7.7/3, 1, 4, '773_30_10', 10^-6, 4, 0.5); %% %%%%%%%%%%%%%%%%% STEADY STATE JUMP LENGTH DISTRIBUTION %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% params = {-5, b(7.7/3, 10^-6), 0.5, e(7.7/3), 0, 1, 10, 7, 0,... @@ -235,7 +250,8 @@ parfor i = 1:length(ls) end toc %% Normalization factor -N = normalization(T, x0, 0, t_ind, direc, -params{1}) +% N = normalization(T, x0, 0, t_ind, direc, -params{1}) +N=sum(p)/length(p)*l_max % N = sum(p)*0.001; m = sum(ls.*p/N)/length(p)*l_max; % should sum to one diff --git a/run_jump_lengths.m b/run_jump_lengths.m new file mode 100644 index 0000000..c1fa91f --- /dev/null +++ b/run_jump_lengths.m @@ -0,0 +1,33 @@ +function run_jump_lengths(a, ad, chi, direc, l_max, name, nu, t_ind, u0) +% Calculate jump length distribution for given parameter set. +% ad ... prefactor of quadratic term in Stefano's mobility ansatz +b = @(chi, nu) nu^(1/3)*sqrt(chi/(chi-2)); +e = @(chi) sqrt(3/8*(chi-2)); +params = {a, b(chi, nu), u0, e(chi), ad, 0, 10, 7, 0, 'Const_mob', 0}; +t = [0, 0.05, 0.1, 1]; +x0 = sort(5-direc*(0:0.001:4.01)); +%% Run simulations for 'delta' IC across outside +T = {}; +parfor i = 1:length(x0) + tic + T{i} = Ternary_model(0, 'Gauss', params, t, 0.2); + T{i}.x0 = x0(i); + T{i}.solve_tern_frap(); + toc +end +%% Calculate probabilities for each jump length in ls. +ls = -direc*(0.000:0.001:l_max); +p = nan(1, length(ls)); +tic +parfor i = 1:length(ls) + tic + p(i) = int_prob(ls(i), T, x0, direc, t_ind, 5, 0); + toc +end +toc +%% Normalization factor +% N = normalization(T, x0, 0, t_ind, direc, -params{1}); +% should sum to one +N = sum(p)/length(p)*l_max; +m = sum(ls.*p/N)/length(p)*l_max; +save(name); -- GitLab