From 8133c5200806a7e9fa71013e75ded687eac92283 Mon Sep 17 00:00:00 2001 From: chrishavlin Date: Fri, 5 Apr 2024 15:23:52 -0500 Subject: [PATCH 01/20] runs, untested --- .../CB_014_xfit_premelt_extended.m | 64 +++++++++++++++++++ vbr/vbrCore/functions/Q_xfit_premelt.m | 44 ++++++++++--- .../functions/visc_calc_xfit_premelt.m | 4 +- vbr/vbrCore/params/Params_Anelastic.m | 18 +++++- vbr/vbrCore/params/Params_Viscous.m | 1 + 5 files changed, 118 insertions(+), 13 deletions(-) create mode 100644 Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m diff --git a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m new file mode 100644 index 0000000..4ed3d2b --- /dev/null +++ b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m @@ -0,0 +1,64 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% CB_004_xfit_premelt.m +% +% Calls VBR using xfit_premelt method from: +% Hatsuki Yamauchi and Yasuko Takei, JGR 2016, "Polycrystal anelasticity at +% near-solidus temperatures," +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% put VBR in the path %% + clear; close all + path_to_top_level_vbr='../../'; + addpath(path_to_top_level_vbr) + vbr_init + +%% write method list %% + VBR.in.elastic.methods_list={'anharmonic'}; + VBR.in.anelastic.methods_list={'xfit_premelt'}; + + % load anharmonic parameters, adjust Gu_0_ol and derivatives to match YT2016 + VBR.in.elastic.anharmonic.Gu_0_ol=72.45; %[GPa] + VBR.in.elastic.anharmonic.dG_dT = -10.94*1e6; % Pa/C (equivalent ot Pa/K) + VBR.in.elastic.anharmonic.dG_dP = 1.987; % GPa / GPa + + VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1; +%% Define the Thermodynamic State %% + + VBR.in.SV.T_K=700:50:1200; + VBR.in.SV.T_K=VBR.in.SV.T_K+273; + sz=size(VBR.in.SV.T_K); % temperature [K] + VBR.in.SV.P_GPa = 0.2 * ones(sz); % pressure [GPa] + + % this method requires the solidus. + % you should write your own function for the solidus that takes all the other + % state variables as input. This is just for illustration + dTdz=0.5 ; % solidus slope [C/km] + dTdP=dTdz / 3300 / 9.8 / 1000 * 1e9; % [C/GPa ] + VBR.in.SV.Tsolidus_K=1000+dTdP*VBR.in.SV.P_GPa; + + % remaining state variables (ISV) + VBR.in.SV.dg_um=3.1 * ones(sz); % grain size [um] + VBR.in.SV.rho = 3300 * ones(sz); % density [kg m^-3] + VBR.in.SV.sig_MPa = 10 * ones(sz); % differential stress [MPa] + VBR.in.SV.phi = 0.01 * (VBR.in.SV.T_K >VBR.in.SV.Tsolidus_K); % melt fraction + VBR.in.SV.f = 1./logspace(-2,4,100); % frequency range + +%% CALL THE VBR CALCULATOR %% + [VBR] = VBR_spine(VBR) ; + +%% plot frequency dependence %% + figure; + subplot(1,3,1) + semilogx(1./VBR.in.SV.f,squeeze(VBR.out.anelastic.xfit_premelt.M(1,:,:)/1e9)); + ylabel('M [GPa]'); xlabel('period [s]') + ylim([0,80]) + + subplot(1,3,2) + loglog(1./VBR.in.SV.f,squeeze(VBR.out.anelastic.xfit_premelt.Qinv(1,:,:))); + ylabel('Q^-1'); xlabel('period [s]') + ylim([1e-3,.1]) + + subplot(1,3,3) + semilogx(1./VBR.in.SV.f,1e-3*squeeze(VBR.out.anelastic.xfit_premelt.V(1,:,:))); + ylabel('V_s [km/s]'); xlabel('period [s]') + saveas(gcf,'./figures/CB_004_xfit_premelt.png') diff --git a/vbr/vbrCore/functions/Q_xfit_premelt.m b/vbr/vbrCore/functions/Q_xfit_premelt.m index 62f637b..eab1149 100644 --- a/vbr/vbrCore/functions/Q_xfit_premelt.m +++ b/vbr/vbrCore/functions/Q_xfit_premelt.m @@ -16,28 +16,50 @@ disp('To use Q_xfit_premelt, you must provide VBR.in.SV.Tsolidus_K') end + params=VBR.in.anelastic.xfit_premelt; + if has_solidus % state variables - if isfield(VBR.in.elastic,'anh_poro') - Gu_in = VBR.out.elastic.anh_poro.Gu; - elseif isfield(VBR.in.elastic,'anharmonic') - Gu_in = VBR.out.elastic.anharmonic.Gu; + if params.include_direct_melt_effect == 1 + % in YT2024, all poroealstic effects are applied internally to J1, so + % always use anharmonic as unrelaxed + Gu_in = VBR.out.elastic.anharmonic.Gu; + else + if isfield(VBR.in.elastic,'anh_poro') + Gu_in = VBR.out.elastic.anh_poro.Gu; + elseif isfield(VBR.in.elastic,'anharmonic') + Gu_in = VBR.out.elastic.anharmonic.Gu; + end end + Ju_in = 1./Gu_in ; rho = VBR.in.SV.rho ; phi = VBR.in.SV.phi ; Tn=VBR.in.SV.T_K./VBR.in.SV.Tsolidus_K ; % solidus-normalized temperature - params=VBR.in.anelastic.xfit_premelt; % maxwell time [tau_m,VBR]=MaxwellTimes(VBR,Gu_in); % calculate the Tn-dependent coefficients, A_p and sig_p [A_p,sig_p]=calcApSigp(Tn,phi,params); + if params.include_direct_melt_effect == 1 + Beta_B = params.Beta_B * phi; + else + Beta_B = 0.0; + end + + % poroelastic J1 effect if applicable + if params.include_direct_melt_effect == 1 + % poroealstic effect comes in through unrelaxed modulus + poro_elastic_factor = params.poro_Lambda * phi.*(Tn >= 1); + else + % poroealstic effect is applied to J1 + poro_elastic_factor = 0.0; + end % set other constants alpha_B=params.alpha_B; - A_B=params.A_B; + A_B_plus_Beta_B= params.A_B + Beta_B; tau_pp=params.tau_pp; % set up frequency dependence @@ -58,10 +80,10 @@ p_p=period_vec(i)./(2*pi*tau_m); % tau_eta^S= tau_s / (2 pi tau_m);, tau_s = seismic wave period, tau_m = ss maxwell time - ABppa=A_B*(p_p.^alpha_B); + ABppa=A_B_plus_Beta_B .* (p_p.^alpha_B); lntaupp=log(tau_pp./p_p); - J1(sv_i0:sv_i1)=Ju_in .* (1 + ABppa/alpha_B+ ... + J1(sv_i0:sv_i1)=Ju_in .* (1 + poro_elastic_factor + ABppa/alpha_B+ ... pifac*A_p.*sig_p.*(1-erf(lntaupp./(sqrt(2).*sig_p)))); J2(sv_i0:sv_i1)=Ju_in*pi/2.*(ABppa+A_p.*(exp(-(lntaupp.^2)./(2*sig_p.^2)))) + ... Ju_in.*p_p; @@ -101,7 +123,11 @@ Ap_Tn_pts=params.Ap_Tn_pts; sig_p_Tn_pts=params.sig_p_Tn_pts; - Beta=params.Beta; % + if params.include_direct_melt_effect == 1 + Beta = params.Beta; % this depends on melt fraction in YT2024 + else + Beta = 0; % no direct melt dependence + end A_p=zeros(size(Tn)); A_p(Tn>=Ap_Tn_pts(3))=params.Ap_fac_3+Beta*phi(Tn>=Ap_Tn_pts(3)); A_p(Tn 1); - A_n(msk)=exp(-lambda*phi(msk))/gamma; + A_n(msk)=exp(-lambda*phi(msk))/gamma/B; end diff --git a/vbr/vbrCore/params/Params_Anelastic.m b/vbr/vbrCore/params/Params_Anelastic.m index 62d7e78..cbc99ea 100644 --- a/vbr/vbrCore/params/Params_Anelastic.m +++ b/vbr/vbrCore/params/Params_Anelastic.m @@ -102,7 +102,8 @@ if strcmp(method,'xfit_premelt') % xfit_premelt parameters - params.citations={'Yamauchi and Takei, 2016, J. Geophys. Res. Solid Earth, https://doi.org/10.1002/2016JB013316'}; + params.citations={'Yamauchi and Takei, 2016, J. Geophys. Res. Solid Earth, https://doi.org/10.1002/2016JB013316'; + 'Yamauchi and Takei, 2024, J. Geophys. Res. Solid Earth, https://doi.org/10.1029/2023JB027738'}; params.func_name='Q_xfit_premelt'; % the name of the matlab function % high temp background spectrum @@ -111,7 +112,6 @@ % pre-melting dissipation peak settings: params.tau_pp=6*1e-5; % peak center - params.Beta=0; % params.Ap_fac_1=0.01; params.Ap_fac_2=0.4; params.Ap_fac_3=0.03; @@ -120,6 +120,20 @@ params.sig_p_fac_3=7; params.Ap_Tn_pts=[0.91,0.96,1]; % Tn cuttoff points params.sig_p_Tn_pts=[0.92,1]; % Tn cuttoff points + + % note: sig_p_fac2 and Ap_fac_2 above combinations of the other constants + % and appear in the original papers as: + % sig_p_fac2 = (sig_p_fac_3-sig_p_fac_1) / (sig_p_Tn_pts(2) - sig_p_Tn_pts(1)) + % Ap_fac_2 = (Ap_fac_3-Ap_fac_1) / (Ap_Tn_pts(3) - Ap_Tn_pts(1)) + + % melt effects. The following beta values are set to 0.0 within Q_xfit_premelt + % if include_direct_melt_effect = 0, corresponding to YT2016. If set to 1, + % the scaling will follow YT2024. Additionally, include_direct_melt_effect=1 + % will trigger different poro-elastic behavior. + params.include_direct_melt_effect = 0; % set to 1 to include YT2024 melt effect + params.Beta=1.38; % this is determined in YT2024, named Beta_P in YT2024 eq 5 + params.Beta_B=6.94; % YT2024 only + params.poro_Lambda = 4.0; % Table 6 YT2024, params.description='pre-melting scaling'; end diff --git a/vbr/vbrCore/params/Params_Viscous.m b/vbr/vbrCore/params/Params_Viscous.m index fd5dc27..c205430 100644 --- a/vbr/vbrCore/params/Params_Viscous.m +++ b/vbr/vbrCore/params/Params_Viscous.m @@ -50,6 +50,7 @@ params.alpha=25; % taken from diff. creep value of HZK2011. YT2016 call this lambda. params.T_eta=0.94; params.gamma=5; + params.B = 1.0; % method to use for melt-free diff. creep viscosity params.eta_melt_free_method='xfit_premelt'; From 31bca38ebee463dbd193d6cc8c740ded472f6e79 Mon Sep 17 00:00:00 2001 From: chrishavlin Date: Fri, 5 Apr 2024 15:29:56 -0500 Subject: [PATCH 02/20] correct docstring in new scaling CB --- Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m index 4ed3d2b..eec2f25 100644 --- a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m +++ b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m @@ -2,8 +2,8 @@ % CB_004_xfit_premelt.m % % Calls VBR using xfit_premelt method from: -% Hatsuki Yamauchi and Yasuko Takei, JGR 2016, "Polycrystal anelasticity at -% near-solidus temperatures," +% Hatsuki Yamauchi and Yasuko Takei, JGR 2024, "Effect of Melt on Polycrystal +% Anelasticity", https://doi.org/10.1029/2023JB027738 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% put VBR in the path %% @@ -15,13 +15,14 @@ %% write method list %% VBR.in.elastic.methods_list={'anharmonic'}; VBR.in.anelastic.methods_list={'xfit_premelt'}; + VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1; % load anharmonic parameters, adjust Gu_0_ol and derivatives to match YT2016 VBR.in.elastic.anharmonic.Gu_0_ol=72.45; %[GPa] VBR.in.elastic.anharmonic.dG_dT = -10.94*1e6; % Pa/C (equivalent ot Pa/K) VBR.in.elastic.anharmonic.dG_dP = 1.987; % GPa / GPa - VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1; + %% Define the Thermodynamic State %% VBR.in.SV.T_K=700:50:1200; From 6926cba4a244a6d9a6c8af89a00931b362ae1a49 Mon Sep 17 00:00:00 2001 From: Chris Havlin Date: Fri, 5 Apr 2024 15:34:17 -0500 Subject: [PATCH 03/20] Update vbr/vbrCore/functions/Q_xfit_premelt.m --- vbr/vbrCore/functions/Q_xfit_premelt.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vbr/vbrCore/functions/Q_xfit_premelt.m b/vbr/vbrCore/functions/Q_xfit_premelt.m index eab1149..677a9ec 100644 --- a/vbr/vbrCore/functions/Q_xfit_premelt.m +++ b/vbr/vbrCore/functions/Q_xfit_premelt.m @@ -53,7 +53,7 @@ % poroealstic effect comes in through unrelaxed modulus poro_elastic_factor = params.poro_Lambda * phi.*(Tn >= 1); else - % poroealstic effect is applied to J1 + % no poroelastic effects outside of incoming unrelaxed modulus poro_elastic_factor = 0.0; end From 3a0e702668f067b91bfe970d8cb9c6dd603f03f9 Mon Sep 17 00:00:00 2001 From: Chris Havlin Date: Fri, 5 Apr 2024 15:34:42 -0500 Subject: [PATCH 04/20] Update vbr/vbrCore/functions/Q_xfit_premelt.m fix typo --- vbr/vbrCore/functions/Q_xfit_premelt.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vbr/vbrCore/functions/Q_xfit_premelt.m b/vbr/vbrCore/functions/Q_xfit_premelt.m index 677a9ec..8c4e630 100644 --- a/vbr/vbrCore/functions/Q_xfit_premelt.m +++ b/vbr/vbrCore/functions/Q_xfit_premelt.m @@ -50,7 +50,7 @@ % poroelastic J1 effect if applicable if params.include_direct_melt_effect == 1 - % poroealstic effect comes in through unrelaxed modulus + % poroelastic effect comes in through unrelaxed modulus poro_elastic_factor = params.poro_Lambda * phi.*(Tn >= 1); else % no poroelastic effects outside of incoming unrelaxed modulus From 8904a3e2a679fe12c034e43d17cc0d42e4c40d8b Mon Sep 17 00:00:00 2001 From: Chris Havlin Date: Fri, 5 Apr 2024 15:35:13 -0500 Subject: [PATCH 05/20] Update vbr/vbrCore/functions/Q_xfit_premelt.m --- vbr/vbrCore/functions/Q_xfit_premelt.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vbr/vbrCore/functions/Q_xfit_premelt.m b/vbr/vbrCore/functions/Q_xfit_premelt.m index 8c4e630..6b13542 100644 --- a/vbr/vbrCore/functions/Q_xfit_premelt.m +++ b/vbr/vbrCore/functions/Q_xfit_premelt.m @@ -50,7 +50,7 @@ % poroelastic J1 effect if applicable if params.include_direct_melt_effect == 1 - % poroelastic effect comes in through unrelaxed modulus + % poroelastic effect added to J1 poro_elastic_factor = params.poro_Lambda * phi.*(Tn >= 1); else % no poroelastic effects outside of incoming unrelaxed modulus From 7b4a9e6bf72aa69f81d3c53063ea3ea92bed843a Mon Sep 17 00:00:00 2001 From: Chris Havlin Date: Fri, 5 Apr 2024 15:41:10 -0500 Subject: [PATCH 06/20] Update vbr/vbrCore/params/Params_Anelastic.m --- vbr/vbrCore/params/Params_Anelastic.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vbr/vbrCore/params/Params_Anelastic.m b/vbr/vbrCore/params/Params_Anelastic.m index cbc99ea..48983d4 100644 --- a/vbr/vbrCore/params/Params_Anelastic.m +++ b/vbr/vbrCore/params/Params_Anelastic.m @@ -121,7 +121,7 @@ params.Ap_Tn_pts=[0.91,0.96,1]; % Tn cuttoff points params.sig_p_Tn_pts=[0.92,1]; % Tn cuttoff points - % note: sig_p_fac2 and Ap_fac_2 above combinations of the other constants + % note: sig_p_fac2 and Ap_fac_2 above are combinations of the other constants % and appear in the original papers as: % sig_p_fac2 = (sig_p_fac_3-sig_p_fac_1) / (sig_p_Tn_pts(2) - sig_p_Tn_pts(1)) % Ap_fac_2 = (Ap_fac_3-Ap_fac_1) / (Ap_Tn_pts(3) - Ap_Tn_pts(1)) From 2ba84f9aa0506bff3a1ded56aa9eb012bf5ac17e Mon Sep 17 00:00:00 2001 From: chavlin Date: Wed, 10 Apr 2024 11:20:56 -0500 Subject: [PATCH 07/20] in progress, adding plots of lab data. --- .../1_LabData/1_Attenuation/FitData_YT24.m | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 Projects/1_LabData/1_Attenuation/FitData_YT24.m diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT24.m b/Projects/1_LabData/1_Attenuation/FitData_YT24.m new file mode 100644 index 0000000..69b064c --- /dev/null +++ b/Projects/1_LabData/1_Attenuation/FitData_YT24.m @@ -0,0 +1,133 @@ +function FitData_YT24(use_data) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % FitData_YT24() + % + % Plots viscosity, modulus, Qinv for borneol near and above the solidus + % temperature following premelting scaling of Yamauchi and Takei, 2024, JGR. + % + % Parameters + % ---------- + % use_data + % if 1, will attempt to fetch data from zenondo + % + % Output + % ------ + % figures to screen and to Projects/1_LabData/1_Attenuation/figures/ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + % put VBR in the path + vbr_path = getenv('vbrdir'); + if isempty(vbr_path) + vbr_path='../../../'; + end + addpath(vbr_path) + vbr_init + + % check on data + full_data_dir = 0; + if use_data == 1 + full_data_dir = download_YT24('data'); + end + + + plot_fig2(full_data_dir) + + + + + +end + + +function plot_fig2(full_data_dir) + + f1 = figure(); + f2 = figure(); + if full_data_dir ~= 0 + + samp_nums = [41, 42, 50 ] + for isamp = 1:numel(samp_nums) + samp_num = samp_nums(isamp); + disp(isamp) + current_run = load_sample_data(samp_num, full_data_dir); + + T_arr = []; + for iT = 1:numel(current_run) % temperature loop + T_arr =[T_arr, current_run(iT).T]; + end + min_T = min(T_arr); + max_T = max(T_arr); + dT = max_T - min_T; + for iT = 1:numel(current_run) % temperature loop + T = current_run(iT).T; + r = (T - min_T) / dT; + b = 1 - r; + rgb = [r, 0.0, b]; + + cdata = current_run(iT).data; + f = cdata(:,1); + f_normed = cdata(:,2); + E = cdata(:,3); + E_normed = cdata(:,4); + Qinv = cdata(:,5); + + set(0, 'currentfigure', f1); + subplot(2, 3, 1+(isamp-1)) + hold all + semilogx(f, E, '.', 'color', rgb) + ylim([0.25, 2.75]) + + subplot(2, 3, 3+isamp) + hold all + loglog(f, Qinv,'.', 'color', rgb) + ylim([1e-3, 2]) + + set(0, 'currentfigure', f2); + subplot(2, 3, 1+(isamp-1)) + hold all + semilogx(f_normed, E_normed, '.', 'color', rgb) + + + subplot(2, 3, 3+isamp) + hold all + loglog(f_normed, Qinv,'.', 'color', rgb) + + end + end + + end + +end + +function run_data = load_sample_data(sample_number, full_data_dir) + + sample_str = num2str(sample_number); + sample_file = fullfile(full_data_dir, ['anela',sample_str,'.mat']); + struct_name = ['anela',sample_str]; + sample_data = load(sample_file); % e.g., sample_data.anela42 + data = getfield(sample_data, struct_name); % e.g., anela42 + run_data = data.run; + +end + + + +function unzipped_data_dir = download_YT24(datadir) + % downloads, unzips data from zenodo + + unzipped_data_dir = fullfile(datadir,'YT24'); + if exist(datadir) ~= 7 + mkdir(datadir) + mkdir(unzipped_data_dir) + end + + YT24data_url = 'https://zenodo.org/api/records/10201689/files-archive'; + zipfilename = '10201689.zip'; + + local_data = fullfile(unzipped_data_dir, zipfilename); + if exist(local_data) ~= 2 + urlwrite(YT24data_url, zipfilename) + movefile(zipfilename, unzipped_data_dir) + unzip(local_data, unzipped_data_dir) + end +end \ No newline at end of file From 2e6019b181612db6f7304d71f01e79c0c8678d79 Mon Sep 17 00:00:00 2001 From: chrishavlin Date: Wed, 10 Apr 2024 15:21:41 -0500 Subject: [PATCH 08/20] in progress, reproducing lab --- .gitignore | 1 + .../1_LabData/1_Attenuation/FitData_YT16.m | 55 +----- .../1_LabData/1_Attenuation/FitData_YT24.m | 181 +++++++++++++----- .../1_Attenuation/data/YT16/table3.mat | Bin 0 -> 5320 bytes .../1_Attenuation/data/YT24/readme.pdf | Bin 0 -> 95663 bytes .../1_Attenuation/functions/YT16_E.m | 36 ++++ .../functions/setBorneolParams.m | 16 ++ 7 files changed, 184 insertions(+), 105 deletions(-) create mode 100644 Projects/1_LabData/1_Attenuation/data/YT16/table3.mat create mode 100644 Projects/1_LabData/1_Attenuation/data/YT24/readme.pdf create mode 100644 Projects/1_LabData/1_Attenuation/functions/YT16_E.m create mode 100644 Projects/1_LabData/1_Attenuation/functions/setBorneolParams.m diff --git a/.gitignore b/.gitignore index db01465..6caddde 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ Projects/1_LabData/1_Attenuation/not_used/ *.m~ *.idea .vbr_test_data_dir +*.zip \ No newline at end of file diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT16.m b/Projects/1_LabData/1_Attenuation/FitData_YT16.m index ea112bb..9c3a136 100644 --- a/Projects/1_LabData/1_Attenuation/FitData_YT16.m +++ b/Projects/1_LabData/1_Attenuation/FitData_YT16.m @@ -18,6 +18,7 @@ function FitData_YT16() path_to_top_level_vbr='../../../'; addpath(path_to_top_level_vbr) vbr_init + addpath('./functions') plot_visc(); plot_Q(); @@ -32,7 +33,6 @@ function plot_Q() viscData = loadYT2016visc(); Qdata=loadYT2016Q(); - %figure('DefaultAxesFontSize',12,'PaperPosition',[0,0,6,2.5],'PaperPositionMode','manual') fig=figure('Position', [10 10 600 300],'PaperPosition',[0,0,6,2.5],'PaperPositionMode','manual'); OutVBR=struct(); if viscData.has_data && Qdata.Qinv.has_data @@ -300,56 +300,3 @@ function plot_visc() end end -function params = setBorneolParams() - % set the general viscous parameters for borneol. - % near-solidus and melt effects - params.alpha=25; - params.T_eta=0.94; % eqn 17,18- T at which homologous T for premelting. - params.gamma=5; - % flow law constants for YT2016 - params.Tr_K=23+273; % reference temp [K] - params.Pr_Pa=0; % reference pressure [Pa] - params.eta_r=7e13;% reference eta (eta at Tr_K, Pr_Pa) - params.H=147*1e3; % activation energy [J/mol] - params.V=0; % activation vol [m3/mol] - params.R=8.314; % gas constant [J/mol/K] - params.m=2.56; % grain size exponent - params.dg_um_r=34.2 ; % eference grain size [um] -end - -function [G,dGdT,dGdT_ave] = YT16_E(T_C) - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - % [G,dGdT,dGdT_ave]= YT16_E(T_C) - % - % YT2016 Figure 6 caption polynomial fit of E vs T, T in degrees C - % - % parameters - % ---------- - % T_C temperature in deg C, any size array - % - % output - % ------ - % G modulus, GPa. same size as T_C - % dGdT temperature derivative of G at T_C, same size as T_C. [GPa/C] - % dGdT_ave average temp derivative over range of T_C given, scalar. [GPa/C]. - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - a0=2.5943; - a1=2.6911*1e-3; - a2=-2.9636*1e-4; - a3 =1.4932*1e-5; - a4 =-2.9351*1e-7; - a5 =1.8997*1e-9; - a = [a5,a4,a3,a2,a1,a0]; - - G=zeros(size(T_C)); - dGdT=zeros(size(T_C)); - for iTC=1:numel(T_C) - Gpoly = polyval(a,T_C(iTC)); - dGdTpoly = polyval(a(1:end-1),T_C(iTC)); - G(iTC)=sum(Gpoly(:)); - dGdT(iTC)=sum(dGdTpoly(:)); - end - dGdT_ave=mean(dGdT); - -end diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT24.m b/Projects/1_LabData/1_Attenuation/FitData_YT24.m index 69b064c..a6918fb 100644 --- a/Projects/1_LabData/1_Attenuation/FitData_YT24.m +++ b/Projects/1_LabData/1_Attenuation/FitData_YT24.m @@ -23,6 +23,8 @@ function FitData_YT24(use_data) addpath(vbr_path) vbr_init + addpath('./functions') + % check on data full_data_dir = 0; if use_data == 1 @@ -43,60 +45,118 @@ function plot_fig2(full_data_dir) f1 = figure(); f2 = figure(); - if full_data_dir ~= 0 - - samp_nums = [41, 42, 50 ] - for isamp = 1:numel(samp_nums) - samp_num = samp_nums(isamp); - disp(isamp) - current_run = load_sample_data(samp_num, full_data_dir); - - T_arr = []; - for iT = 1:numel(current_run) % temperature loop - T_arr =[T_arr, current_run(iT).T]; - end - min_T = min(T_arr); - max_T = max(T_arr); - dT = max_T - min_T; - for iT = 1:numel(current_run) % temperature loop - T = current_run(iT).T; - r = (T - min_T) / dT; - b = 1 - r; - rgb = [r, 0.0, b]; - - cdata = current_run(iT).data; - f = cdata(:,1); - f_normed = cdata(:,2); - E = cdata(:,3); - E_normed = cdata(:,4); - Qinv = cdata(:,5); - - set(0, 'currentfigure', f1); - subplot(2, 3, 1+(isamp-1)) - hold all - semilogx(f, E, '.', 'color', rgb) - ylim([0.25, 2.75]) - - subplot(2, 3, 3+isamp) - hold all - loglog(f, Qinv,'.', 'color', rgb) - ylim([1e-3, 2]) - - set(0, 'currentfigure', f2); - subplot(2, 3, 1+(isamp-1)) - hold all - semilogx(f_normed, E_normed, '.', 'color', rgb) - - - subplot(2, 3, 3+isamp) - hold all - loglog(f_normed, Qinv,'.', 'color', rgb) - - end + + samp_nums = [41]%, 42, 50]; + + load(fullfile('data','YT16','table3.mat')); + visc_data.table3_H=table3_H.table3_H; + + for isamp = 1:numel(samp_nums) + samp_num = samp_nums(isamp); + + current_run = load_sample_data(samp_num, full_data_dir); + sample_data = get_sample_info(samp_num); + + T_arr = []; + for iT = 1:numel(current_run) % temperature loop + T_arr =[T_arr, current_run(iT).T]; end + min_T = min(T_arr); + max_T = max(T_arr); + dT = max_T - min_T; + + dg = sample_data.dg_um; + phi = sample_data.phi; + eta_r = sample_data.eta_r; + rho = sample_data.rho_kgm3; + for iT = 1:numel(current_run) % temperature loop + T = current_run(iT).T; % celcius + + VBR.in=struct(); + VBR.in.elastic.methods_list={'anharmonic';}; + VBR.in.viscous.methods_list={'xfit_premelt'}; + VBR.in.anelastic.methods_list={'xfit_premelt'}; + VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1.0; + + % set this sample's viscosity parameters + VBR.in.viscous.xfit_premelt=setBorneolParams(); + VBR.in.viscous.xfit_premelt.dg_um_r=dg; + VBR.in.viscous.xfit_premelt.Tr_K=min_T+273; + VBR.in.viscous.xfit_premelt.eta_r=eta_r; + VBR.in.viscous.xfit_premelt.H = 147 * 1e3; + + disp(VBR.in.viscous.xfit_premelt) + % set anharmonic conditions + VBR.in.elastic.anharmonic=Params_Elastic('anharmonic'); + [Gu_o,dGdT,dGdT_ave]= YT16_E(T); + Gu_o=Gu_o-0.05; + + % Gu_o is for a given T, set anharmonic derives to 0 + VBR.in.elastic.anharmonic.Gu_0_ol = Gu_o; + VBR.in.elastic.anharmonic.dG_dT = 0; + VBR.in.elastic.anharmonic.dG_dP = 0; + + % adjust some anelastic settings + VBR.in.anelastic.xfit_premelt.tau_pp=2*1e-5; + + + % set experimental conditions + VBR.in.SV.T_K = T+273 ; + sz=size(VBR.in.SV.T_K); + VBR.in.SV.dg_um= dg.* ones(sz); + VBR.in.SV.P_GPa = 1.0132e-04 .* ones(sz); % pressure [GPa] + VBR.in.SV.rho =rho .* ones(sz); % density [kg m^-3] + VBR.in.SV.sig_MPa =1000 .* ones(sz)./1e6; % differential stress [MPa] + VBR.in.SV.Tsolidus_K = 43.0 + 273 ; + VBR.in.SV.phi = ones(sz) * phi * (T >= 43.); % melt fraction + VBR.in.SV.Ch2o_0=zeros(sz); + + VBR.in.SV.f=logspace(-4,2,50); + [VBR_bysamp] = VBR_spine(VBR); + VBR_Qinv_samp=VBR_bysamp.out.anelastic.xfit_premelt.Qinv; + VBR_G_samp=VBR_bysamp.out.anelastic.xfit_premelt.M/1e9; + + + r = (T - min_T) / dT; + b = 1 - r; + rgb = [r, 0.0, b]; + + cdata = current_run(iT).data; + f = cdata(:,1); + f_normed = cdata(:,2); + E = cdata(:,3); + E_normed = cdata(:,4); + Qinv = cdata(:,5); + + set(0, 'currentfigure', f1); + subplot(2, 3, 1+(isamp-1)) + hold all + semilogx(f, E, '.', 'color', rgb) + semilogx(VBR.in.SV.f, VBR_G_samp, 'color', rgb) + + ylim([0.25, 2.75]) + + subplot(2, 3, 3+isamp) + hold all + loglog(f, Qinv,'.', 'color', rgb) + loglog(VBR.in.SV.f, VBR_Qinv_samp, 'color', rgb) + + ylim([1e-3, 2]) + + set(0, 'currentfigure', f2); + subplot(2, 3, 1+(isamp-1)) + hold all + semilogx(f_normed, E_normed, '.', 'color', rgb) + + subplot(2, 3, 3+isamp) + hold all + loglog(f_normed, Qinv,'.', 'color', rgb) + end end + + end function run_data = load_sample_data(sample_number, full_data_dir) @@ -107,10 +167,29 @@ function plot_fig2(full_data_dir) sample_data = load(sample_file); % e.g., sample_data.anela42 data = getfield(sample_data, struct_name); % e.g., anela42 run_data = data.run; - end +function sample_data = get_sample_info(sample_number) + if sample_number == 50 + sample_data.dg_um = 47.9; + sample_data.rho_kgm3 = 1.0111; + sample_data.phi = 0.0368; + sample_data.eta_r = 1061*1e12; + elseif sample_number == 42 + sample_data.dg_um = 46.3; + sample_data.rho_kgm3 = 1.0111; + sample_data.phi = 0.016; + sample_data.eta_r = 132 * 1e12; + elseif sample_number == 41 + sample_data.dg_um = 34.2; + sample_data.rho_kgm3 = 1.0111; + sample_data.phi = 0.004; + sample_data.eta_r = 1433 * 1e12; + end + +end + function unzipped_data_dir = download_YT24(datadir) % downloads, unzips data from zenodo diff --git a/Projects/1_LabData/1_Attenuation/data/YT16/table3.mat b/Projects/1_LabData/1_Attenuation/data/YT16/table3.mat new file mode 100644 index 0000000000000000000000000000000000000000..a6ce9c39dea9107e641457431f8a1277af1c2d0c GIT binary patch literal 5320 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 m3IQ6z3jQ;`w(Dr5k literal 0 HcmV?d00001 diff --git a/Projects/1_LabData/1_Attenuation/functions/YT16_E.m b/Projects/1_LabData/1_Attenuation/functions/YT16_E.m new file mode 100644 index 0000000..fac0f05 --- /dev/null +++ b/Projects/1_LabData/1_Attenuation/functions/YT16_E.m @@ -0,0 +1,36 @@ +function [G,dGdT,dGdT_ave] = YT16_E(T_C) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % [G,dGdT,dGdT_ave]= YT16_E(T_C) + % + % YT2016 Figure 6 caption polynomial fit of E vs T, T in degrees C + % + % parameters + % ---------- + % T_C temperature in deg C, any size array + % + % output + % ------ + % G modulus, GPa. same size as T_C + % dGdT temperature derivative of G at T_C, same size as T_C. [GPa/C] + % dGdT_ave average temp derivative over range of T_C given, scalar. [GPa/C]. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + a0=2.5943; + a1=2.6911*1e-3; + a2=-2.9636*1e-4; + a3 =1.4932*1e-5; + a4 =-2.9351*1e-7; + a5 =1.8997*1e-9; + a = [a5,a4,a3,a2,a1,a0]; + + G=zeros(size(T_C)); + dGdT=zeros(size(T_C)); + for iTC=1:numel(T_C) + Gpoly = polyval(a,T_C(iTC)); + dGdTpoly = polyval(a(1:end-1),T_C(iTC)); + G(iTC)=sum(Gpoly(:)); + dGdT(iTC)=sum(dGdTpoly(:)); + end + dGdT_ave=mean(dGdT); + +end diff --git a/Projects/1_LabData/1_Attenuation/functions/setBorneolParams.m b/Projects/1_LabData/1_Attenuation/functions/setBorneolParams.m new file mode 100644 index 0000000..2f31ca8 --- /dev/null +++ b/Projects/1_LabData/1_Attenuation/functions/setBorneolParams.m @@ -0,0 +1,16 @@ +function params = setBorneolParams() + % set the general viscous parameters for borneol. + % near-solidus and melt effects + params.alpha=25; + params.T_eta=0.94; % eqn 17,18- T at which homologous T for premelting. + params.gamma=5; + % flow law constants for YT2016 + params.Tr_K=23+273; % reference temp [K] + params.Pr_Pa=0; % reference pressure [Pa] + params.eta_r=7e13;% reference eta (eta at Tr_K, Pr_Pa) + params.H=147*1e3; % activation energy [J/mol] + params.V=0; % activation vol [m3/mol] + params.R=8.314; % gas constant [J/mol/K] + params.m=2.56; % grain size exponent + params.dg_um_r=34.2 ; % eference grain size [um] +end \ No newline at end of file From 0c6c02f71128bf206fc9a168b330b06cecc6f570 Mon Sep 17 00:00:00 2001 From: chrishavlin Date: Fri, 12 Apr 2024 15:06:30 -0500 Subject: [PATCH 09/20] in progress, add f_norm output to xfit_premelt --- .../1_LabData/1_Attenuation/FitData_YT24.m | 246 ++++++++---------- .../functions/YT24_load_fig7_combined_data.m | 91 +++++++ vbr/vbrCore/functions/Q_xfit_premelt.m | 9 +- 3 files changed, 202 insertions(+), 144 deletions(-) create mode 100644 Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT24.m b/Projects/1_LabData/1_Attenuation/FitData_YT24.m index a6918fb..b2d9647 100644 --- a/Projects/1_LabData/1_Attenuation/FitData_YT24.m +++ b/Projects/1_LabData/1_Attenuation/FitData_YT24.m @@ -1,4 +1,4 @@ -function FitData_YT24(use_data) +function VBRc_results = FitData_YT24(use_data) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % FitData_YT24() % @@ -31,164 +31,128 @@ function FitData_YT24(use_data) full_data_dir = download_YT24('data'); end - - plot_fig2(full_data_dir) - - - - + VBRc_results = plot_fig7(full_data_dir); end +function rgb = get_rgb(Tn, Tn_min, dT) + clr_sc = (Tn - Tn_min) / dT; + clr_sc(clr_sc > 1) = 1.0; + clr_sc(clr_sc < 0) = 0.0; + rgb = [clr_sc, 0., 1-clr_sc]; +end -function plot_fig2(full_data_dir) - - f1 = figure(); - f2 = figure(); +function VBRc_results = plot_fig7(full_data_dir); - samp_nums = [41]%, 42, 50]; + figure(); load(fullfile('data','YT16','table3.mat')); visc_data.table3_H=table3_H.table3_H; - for isamp = 1:numel(samp_nums) - samp_num = samp_nums(isamp); - - current_run = load_sample_data(samp_num, full_data_dir); - sample_data = get_sample_info(samp_num); - - T_arr = []; - for iT = 1:numel(current_run) % temperature loop - T_arr =[T_arr, current_run(iT).T]; - end - min_T = min(T_arr); - max_T = max(T_arr); - dT = max_T - min_T; - - dg = sample_data.dg_um; - phi = sample_data.phi; - eta_r = sample_data.eta_r; - rho = sample_data.rho_kgm3; - for iT = 1:numel(current_run) % temperature loop - T = current_run(iT).T; % celcius - - VBR.in=struct(); - VBR.in.elastic.methods_list={'anharmonic';}; - VBR.in.viscous.methods_list={'xfit_premelt'}; - VBR.in.anelastic.methods_list={'xfit_premelt'}; - VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1.0; - - % set this sample's viscosity parameters - VBR.in.viscous.xfit_premelt=setBorneolParams(); - VBR.in.viscous.xfit_premelt.dg_um_r=dg; - VBR.in.viscous.xfit_premelt.Tr_K=min_T+273; - VBR.in.viscous.xfit_premelt.eta_r=eta_r; - VBR.in.viscous.xfit_premelt.H = 147 * 1e3; - - disp(VBR.in.viscous.xfit_premelt) - % set anharmonic conditions - VBR.in.elastic.anharmonic=Params_Elastic('anharmonic'); - [Gu_o,dGdT,dGdT_ave]= YT16_E(T); - Gu_o=Gu_o-0.05; - - % Gu_o is for a given T, set anharmonic derives to 0 - VBR.in.elastic.anharmonic.Gu_0_ol = Gu_o; - VBR.in.elastic.anharmonic.dG_dT = 0; - VBR.in.elastic.anharmonic.dG_dP = 0; - - % adjust some anelastic settings - VBR.in.anelastic.xfit_premelt.tau_pp=2*1e-5; - - - % set experimental conditions - VBR.in.SV.T_K = T+273 ; - sz=size(VBR.in.SV.T_K); - VBR.in.SV.dg_um= dg.* ones(sz); - VBR.in.SV.P_GPa = 1.0132e-04 .* ones(sz); % pressure [GPa] - VBR.in.SV.rho =rho .* ones(sz); % density [kg m^-3] - VBR.in.SV.sig_MPa =1000 .* ones(sz)./1e6; % differential stress [MPa] - VBR.in.SV.Tsolidus_K = 43.0 + 273 ; - VBR.in.SV.phi = ones(sz) * phi * (T >= 43.); % melt fraction - VBR.in.SV.Ch2o_0=zeros(sz); - - VBR.in.SV.f=logspace(-4,2,50); - [VBR_bysamp] = VBR_spine(VBR); - VBR_Qinv_samp=VBR_bysamp.out.anelastic.xfit_premelt.Qinv; - VBR_G_samp=VBR_bysamp.out.anelastic.xfit_premelt.M/1e9; - - - r = (T - min_T) / dT; - b = 1 - r; - rgb = [r, 0.0, b]; - - cdata = current_run(iT).data; - f = cdata(:,1); - f_normed = cdata(:,2); - E = cdata(:,3); - E_normed = cdata(:,4); - Qinv = cdata(:,5); - - set(0, 'currentfigure', f1); - subplot(2, 3, 1+(isamp-1)) - hold all - semilogx(f, E, '.', 'color', rgb) - semilogx(VBR.in.SV.f, VBR_G_samp, 'color', rgb) - - ylim([0.25, 2.75]) - - subplot(2, 3, 3+isamp) - hold all - loglog(f, Qinv,'.', 'color', rgb) - loglog(VBR.in.SV.f, VBR_Qinv_samp, 'color', rgb) - - ylim([1e-3, 2]) - - set(0, 'currentfigure', f2); - subplot(2, 3, 1+(isamp-1)) - hold all - semilogx(f_normed, E_normed, '.', 'color', rgb) - - subplot(2, 3, 3+isamp) - hold all - loglog(f_normed, Qinv,'.', 'color', rgb) - - end + combined_data = YT24_load_fig7_combined_data(full_data_dir); + n_exps = numel(combined_data); + + T_sc_min = 0.3; + T_sc_max = 1.01; + dT_rng = T_sc_max - T_sc_min; + Tsol = 43.0; + Tvals = []; + % first plot experimental results + for i_exp = 1:n_exps + data = combined_data(i_exp); + + rgb = get_rgb(data.T/Tsol, T_sc_min, dT_rng); + Tvals = [Tvals, data.T]; + + subplot(2,1,1) + hold all + semilogx(data.f_normed, data.E_normed, '.', 'markersize', 12, 'color', rgb) + subplot(2,1,2) + hold all + loglog(data.f_normed, data.Qinv, '.', 'markersize', 12, 'color', rgb) + end + Tref = 8.2; + eta_ref = 1433 * 1e12; % sample 41 + H41 = 147*1e3; + % now get VBRc results + VBRc_results = struct(); + for i_exp = 1:n_exps + data = combined_data(i_exp); + + T = data.T; % celcius + dg = data.dg_um; + phi = data.phi; + rho = data.rho_kgm3; + VBR.in.elastic.methods_list={'anharmonic';'anh_poro'}; + VBR.in.viscous.methods_list={'xfit_premelt'}; + VBR.in.anelastic.methods_list={'xfit_premelt'}; + VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1.0; + + + VBR.in.viscous.xfit_premelt=setBorneolParams(); +% VBR.in.viscous.xfit_premelt.dg_um_r=34.2; +% VBR.in.viscous.xfit_premelt.Tr_K=Tref+273; +% VBR.in.viscous.xfit_premelt.eta_r=eta_ref; +% VBR.in.viscous.xfit_premelt.H=H41; + + % set anharmonic conditions + VBR.in.elastic.anharmonic=Params_Elastic('anharmonic'); + [Gu_o,dGdT,dGdT_ave]= YT16_E(T); + Gu_o=(Gu_o-0.05)*1e9; + + % Gu_o is for a given T, specify at elevated TP to skip anharmonic scaling + VBR.in.elastic.Gu_TP = Gu_o; + + % adjust some anelastic settings + VBR.in.anelastic.xfit_premelt.tau_pp=2*1e-5; % why? i dont remember... + + % set experimental conditions + VBR.in.SV.T_K = T+273 ; + sz=size(VBR.in.SV.T_K); + VBR.in.SV.dg_um= dg.* ones(sz); + VBR.in.SV.P_GPa = 1.0132e-04 .* ones(sz); % pressure [GPa] + VBR.in.SV.rho =rho .* ones(sz); % density [kg m^-3] + VBR.in.SV.sig_MPa =1000 .* ones(sz)./1e6; % differential stress [MPa] + VBR.in.SV.Tsolidus_K = Tsol + 273 ; + VBR.in.SV.phi = phi * ones(sz); % melt fraction + VBR.in.SV.Ch2o_0=zeros(sz); + + VBR.in.SV.f=logspace(-4,7,75); + [VBR_bysamp] = VBR_spine(VBR); + results.Qinv=VBR_bysamp.out.anelastic.xfit_premelt.Qinv; + results.E=VBR_bysamp.out.anelastic.xfit_premelt.M; + results.f = VBR.in.SV.f; + results.f_normed = VBR_bysamp.out.anelastic.xfit_premelt.f_norm; + results.E_normed = results.E / Gu_o; + results.T = T; + results.VBR = VBR_bysamp; + VBRc_results(i_exp) = results; end + for i_exp = 1:n_exps -end + results = VBRc_results(i_exp); + rgb = get_rgb(results.T/Tsol, T_sc_min, dT_rng); + % and plot + subplot(2,1,1) + hold all + semilogx(results.f_normed, results.E_normed ,'color', rgb) + subplot(2,1,2) + hold all + loglog(results.f_normed, results.Qinv , 'color', rgb) + end -function run_data = load_sample_data(sample_number, full_data_dir) + subplot(2,1,1) + xlim([1e-2,1e9]) + ylim([0,1.1]) - sample_str = num2str(sample_number); - sample_file = fullfile(full_data_dir, ['anela',sample_str,'.mat']); - struct_name = ['anela',sample_str]; - sample_data = load(sample_file); % e.g., sample_data.anela42 - data = getfield(sample_data, struct_name); % e.g., anela42 - run_data = data.run; + subplot(2,1,2) + xlim([1e-2,1e9]) + ylim([1e-3,2]) end -function sample_data = get_sample_info(sample_number) - if sample_number == 50 - sample_data.dg_um = 47.9; - sample_data.rho_kgm3 = 1.0111; - sample_data.phi = 0.0368; - sample_data.eta_r = 1061*1e12; - elseif sample_number == 42 - sample_data.dg_um = 46.3; - sample_data.rho_kgm3 = 1.0111; - sample_data.phi = 0.016; - sample_data.eta_r = 132 * 1e12; - elseif sample_number == 41 - sample_data.dg_um = 34.2; - sample_data.rho_kgm3 = 1.0111; - sample_data.phi = 0.004; - sample_data.eta_r = 1433 * 1e12; - end - -end function unzipped_data_dir = download_YT24(datadir) diff --git a/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m new file mode 100644 index 0000000..47e2c19 --- /dev/null +++ b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m @@ -0,0 +1,91 @@ +function combined_data = YT24_load_fig7_combined_data(full_data_dir) + + combined_data = struct(); + % pull all data for sample 41 first T cycle + sample_id= 41; + [current_run, sample_info] = load_sample_data(sample_id, full_data_dir); + + start_end = sample_info.first_Tcycle_index_start_stop; + i_Tstart = start_end(1); + i_Tend = start_end(2); + + i_data = 1; + Tsol = 43; + for iT = i_Tstart: i_Tend + combined_data(i_data) = extract_single_experiment(current_run, sample_info, iT, Tsol, sample_id); + i_data = i_data + 1; + end + + for sample_id = 42:8:50 % 42, 50 + [current_run, sample_info] = load_sample_data(sample_id, full_data_dir); + start_end = sample_info.first_Tcycle_index_start_stop; + i_Tstart = start_end(1); + i_Tend = start_end(2); + for iT = i_Tstart: i_Tend + if current_run(iT).T >= Tsol + combined_data(i_data) = extract_single_experiment(current_run, sample_info, iT, Tsol, sample_id); + i_data = i_data + 1; + end + end + end + +end + +function single_exp = extract_single_experiment(current_run, sample_info, iT, Tsol, sample_id) + T = current_run(iT).T; % celcius + cdata = current_run(iT).data; + single_exp.T = T; + single_exp.f = cdata(:,1); + single_exp.f_normed = cdata(:,2); + single_exp.E = cdata(:,3); + single_exp.E_normed = cdata(:,4); + single_exp.Qinv = cdata(:,5); + + + phi = sample_info.phi * (T >= Tsol); + single_exp.phi = phi; + single_exp.dg_um = sample_info.dg_um; + single_exp.sample_id = sample_id; + single_exp.rho_kgm3 = sample_info.rho_kgm3; +end + +function [run_data, sample_info] = load_sample_data(sample_number, full_data_dir) + + sample_str = num2str(sample_number); + sample_file = fullfile(full_data_dir, ['anela',sample_str,'.mat']); + struct_name = ['anela',sample_str]; + sample_data = load(sample_file); % e.g., sample_data.anela42 + data = getfield(sample_data, struct_name); % e.g., anela42 + + run_data = data.run; + sample_info = get_sample_info(sample_number, data); +end + + + +function sample_data = get_sample_info(sample_number) + + if sample_number == 50 + sample_data.dg_um = 47.9; + sample_data.rho_kgm3 = 1.0111; + sample_data.phi = 0.0368; + sample_data.eta_r = 1061*1e12; + sample_data.first_Tcycle_index_start_stop = [2, 9]; + sample_data.nT = 8; + elseif sample_number == 42 + sample_data.dg_um = 46.3; + sample_data.rho_kgm3 = 1.0111; + sample_data.phi = 0.016; + sample_data.eta_r = 132 * 1e12; + sample_data.first_Tcycle_index_start_stop = [2, 8]; + sample_data.nT = 7; + elseif sample_number == 41 + sample_data.dg_um = 34.2; + sample_data.rho_kgm3 = 1.0111; + sample_data.phi = 0.004; + sample_data.eta_r = 1433 * 1e12; + sample_data.first_Tcycle_index_start_stop = [3, 10]; + sample_data.nT = 8; + end + +end \ No newline at end of file diff --git a/vbr/vbrCore/functions/Q_xfit_premelt.m b/vbr/vbrCore/functions/Q_xfit_premelt.m index 6b13542..0a3b070 100644 --- a/vbr/vbrCore/functions/Q_xfit_premelt.m +++ b/vbr/vbrCore/functions/Q_xfit_premelt.m @@ -51,7 +51,7 @@ % poroelastic J1 effect if applicable if params.include_direct_melt_effect == 1 % poroelastic effect added to J1 - poro_elastic_factor = params.poro_Lambda * phi.*(Tn >= 1); + poro_elastic_factor = params.poro_Lambda * phi; else % no poroelastic effects outside of incoming unrelaxed modulus poro_elastic_factor = 0.0; @@ -70,14 +70,15 @@ n_freq = numel(VBR.in.SV.f); sz = size(Gu_in); J1 = proc_add_freq_indeces(zeros(sz),n_freq); - J2 = J1; V = J1; + J2 = J1; V = J1; f_norm_glob=J1; n_SVs=numel(Tn); % total elements in state variables % loop over frequencies, calculate J1,J2 for i = 1:n_freq + sv_i0=(i-1)*n_SVs + 1; % starting linear index of this freq sv_i1=sv_i0+n_SVs-1; % ending linear index of this freq - + f_norm_glob(sv_i0:sv_i1)=tau_m*VBR.in.SV.f(i); p_p=period_vec(i)./(2*pi*tau_m); % tau_eta^S= tau_s / (2 pi tau_m);, tau_s = seismic wave period, tau_m = ss maxwell time ABppa=A_B_plus_Beta_B .* (p_p.^alpha_B); @@ -102,6 +103,7 @@ VBRout.Qinv = J2./J1.*(J2_J1_frac.^-1); VBRout.Q = 1./VBRout.Qinv; VBRout.M=1./sqrt(J1.^2+J2.^2); + VBRout.f_norm = f_norm_glob; % calculate mean velocity along frequency dimension VBRout.Vave = Q_aveVoverf(VBRout.V,VBR.in.SV.f); @@ -109,6 +111,7 @@ VBRout.units = Q_method_units(); VBRout.units.M1 = 'Pa'; VBRout.units.M2 = 'Pa'; + VBRout.units.f_norm = ''; % store the output structure VBR.out.anelastic.xfit_premelt=VBRout; From 85715140c96c5803125e877f5676d32ec2f38d32 Mon Sep 17 00:00:00 2001 From: chrishavlin Date: Mon, 15 Apr 2024 11:20:45 -0500 Subject: [PATCH 10/20] mantle conditions look correct, fix Tn==1 --- .../1_LabData/1_Attenuation/FitData_YT16.m | 2 +- .../1_LabData/1_Attenuation/FitData_YT24.m | 28 ++++---- .../functions/YT24_load_fig7_combined_data.m | 1 + ...BorneolParams.m => setBorneolViscParams.m} | 2 +- .../CB_014_xfit_premelt_extended.m | 65 ++++++++++--------- release_notes.md | 6 +- vbr/testing/test_utilities_full_nd.m | 32 +++++++++ vbr/testing/test_vbrcore_008_premelt_Tn_1.m | 53 +++++++++++++++ vbr/vbrCore/functions/el_ModUnrlx_dTdP_f.m | 16 ++++- vbr/vbrCore/functions/full_nd.m | 23 +++++++ .../functions/visc_calc_xfit_premelt.m | 2 +- 11 files changed, 176 insertions(+), 54 deletions(-) rename Projects/1_LabData/1_Attenuation/functions/{setBorneolParams.m => setBorneolViscParams.m} (93%) create mode 100644 vbr/testing/test_utilities_full_nd.m create mode 100644 vbr/testing/test_vbrcore_008_premelt_Tn_1.m create mode 100644 vbr/vbrCore/functions/full_nd.m diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT16.m b/Projects/1_LabData/1_Attenuation/FitData_YT16.m index 9c3a136..dcfb73b 100644 --- a/Projects/1_LabData/1_Attenuation/FitData_YT16.m +++ b/Projects/1_LabData/1_Attenuation/FitData_YT16.m @@ -63,7 +63,7 @@ function plot_Q() [T_Cvisc,I]=sort(T_Cvisc); eta=eta(I); % set this sample's viscosity parameters - VBR.in.viscous.xfit_premelt=setBorneolParams(); + VBR.in.viscous.xfit_premelt=setBorneolViscParams(); VBR.in.viscous.xfit_premelt.dg_um_r=dg; VBR.in.viscous.xfit_premelt.Tr_K=T_Cvisc(1)+273; VBR.in.viscous.xfit_premelt.eta_r=eta(1); diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT24.m b/Projects/1_LabData/1_Attenuation/FitData_YT24.m index b2d9647..c48347f 100644 --- a/Projects/1_LabData/1_Attenuation/FitData_YT24.m +++ b/Projects/1_LabData/1_Attenuation/FitData_YT24.m @@ -52,6 +52,7 @@ combined_data = YT24_load_fig7_combined_data(full_data_dir); n_exps = numel(combined_data); + freq_range = logspace(-4,9,100); T_sc_min = 0.3; T_sc_max = 1.01; dT_rng = T_sc_max - T_sc_min; @@ -71,9 +72,7 @@ hold all loglog(data.f_normed, data.Qinv, '.', 'markersize', 12, 'color', rgb) end - Tref = 8.2; - eta_ref = 1433 * 1e12; % sample 41 - H41 = 147*1e3; + % now get VBRc results VBRc_results = struct(); for i_exp = 1:n_exps @@ -88,23 +87,19 @@ VBR.in.anelastic.methods_list={'xfit_premelt'}; VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1.0; - - VBR.in.viscous.xfit_premelt=setBorneolParams(); -% VBR.in.viscous.xfit_premelt.dg_um_r=34.2; -% VBR.in.viscous.xfit_premelt.Tr_K=Tref+273; -% VBR.in.viscous.xfit_premelt.eta_r=eta_ref; -% VBR.in.viscous.xfit_premelt.H=H41; + VBR.in.viscous.xfit_premelt=setBorneolViscParams(); + VBR.in.viscous.xfit_premelt.dg_um_r = dg; %47.9; + VBR.in.viscous.xfit_premelt.Tr_K = 46.3 + 273.; + VBR.in.viscous.xfit_premelt.eta_r = 0.173 * 1e12; + VBR.in.viscous.xfit_premelt.H = 147*1e3; % set anharmonic conditions VBR.in.elastic.anharmonic=Params_Elastic('anharmonic'); - [Gu_o,dGdT,dGdT_ave]= YT16_E(T); - Gu_o=(Gu_o-0.05)*1e9; - + % extract reference modulus (E_normed = E / E_u) + Gu_o = mean(data.E ./ data.E_normed)*1e9; % Gu_o is for a given T, specify at elevated TP to skip anharmonic scaling VBR.in.elastic.Gu_TP = Gu_o; - - % adjust some anelastic settings - VBR.in.anelastic.xfit_premelt.tau_pp=2*1e-5; % why? i dont remember... + VBR.in.elastic.quiet = 1; % not bothering with K, avoid printing the poisson warning % set experimental conditions VBR.in.SV.T_K = T+273 ; @@ -114,10 +109,11 @@ VBR.in.SV.rho =rho .* ones(sz); % density [kg m^-3] VBR.in.SV.sig_MPa =1000 .* ones(sz)./1e6; % differential stress [MPa] VBR.in.SV.Tsolidus_K = Tsol + 273 ; + disp(T/Tsol) VBR.in.SV.phi = phi * ones(sz); % melt fraction VBR.in.SV.Ch2o_0=zeros(sz); - VBR.in.SV.f=logspace(-4,7,75); + VBR.in.SV.f=freq_range; [VBR_bysamp] = VBR_spine(VBR); results.Qinv=VBR_bysamp.out.anelastic.xfit_premelt.Qinv; results.E=VBR_bysamp.out.anelastic.xfit_premelt.M; diff --git a/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m index 47e2c19..eaf2c52 100644 --- a/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m +++ b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m @@ -35,6 +35,7 @@ T = current_run(iT).T; % celcius cdata = current_run(iT).data; single_exp.T = T; + single_exp.Tn = T / 43; single_exp.f = cdata(:,1); single_exp.f_normed = cdata(:,2); single_exp.E = cdata(:,3); diff --git a/Projects/1_LabData/1_Attenuation/functions/setBorneolParams.m b/Projects/1_LabData/1_Attenuation/functions/setBorneolViscParams.m similarity index 93% rename from Projects/1_LabData/1_Attenuation/functions/setBorneolParams.m rename to Projects/1_LabData/1_Attenuation/functions/setBorneolViscParams.m index 2f31ca8..7101555 100644 --- a/Projects/1_LabData/1_Attenuation/functions/setBorneolParams.m +++ b/Projects/1_LabData/1_Attenuation/functions/setBorneolViscParams.m @@ -1,4 +1,4 @@ -function params = setBorneolParams() +function params = setBorneolViscParams() % set the general viscous parameters for borneol. % near-solidus and melt effects params.alpha=25; diff --git a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m index eec2f25..6cd2c34 100644 --- a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m +++ b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m @@ -23,43 +23,46 @@ VBR.in.elastic.anharmonic.dG_dP = 1.987; % GPa / GPa -%% Define the Thermodynamic State %% - - VBR.in.SV.T_K=700:50:1200; + %% Define the Thermodynamic State %% + VBR.in.SV.T_K=1200:5:1500; VBR.in.SV.T_K=VBR.in.SV.T_K+273; sz=size(VBR.in.SV.T_K); % temperature [K] - VBR.in.SV.P_GPa = 0.2 * ones(sz); % pressure [GPa] + VBR.in.SV.P_GPa = full_nd(2.5, sz); % pressure [GPa] - % this method requires the solidus. - % you should write your own function for the solidus that takes all the other - % state variables as input. This is just for illustration - dTdz=0.5 ; % solidus slope [C/km] - dTdP=dTdz / 3300 / 9.8 / 1000 * 1e9; % [C/GPa ] - VBR.in.SV.Tsolidus_K=1000+dTdP*VBR.in.SV.P_GPa; + Tn_cases = [.96, .98, 1.0, 1.1, 1.1, 1.1, 1.1]; + phi_cases = [0., 0., 0., 0.1, 1, 2, 4]*0.01; % remaining state variables (ISV) - VBR.in.SV.dg_um=3.1 * ones(sz); % grain size [um] - VBR.in.SV.rho = 3300 * ones(sz); % density [kg m^-3] - VBR.in.SV.sig_MPa = 10 * ones(sz); % differential stress [MPa] - VBR.in.SV.phi = 0.01 * (VBR.in.SV.T_K >VBR.in.SV.Tsolidus_K); % melt fraction - VBR.in.SV.f = 1./logspace(-2,4,100); % frequency range + VBR.in.SV.dg_um=full_nd(.004*1e6, sz); % grain size [um] + VBR.in.SV.rho = full_nd(3300, sz); % density [kg m^-3] + VBR.in.SV.sig_MPa = full_nd(1, sz); % differential stress [MPa] + VBR.in.SV.f = 1; % 1 Hz + + + f1=figure(); + nTn = numel(Tn_cases); + VBR_results = struct(); + + for iTn = 1:nTn + VBRi = VBR; + VBRi.in.SV.phi = full_nd(phi_cases(iTn), sz); + VBRi.in.SV.Tsolidus_K = VBR.in.SV.T_K / Tn_cases(iTn); + [VBRi] = VBR_spine(VBRi) ; + + results.Q = VBRi.out.anelastic.xfit_premelt.Q; + VBR_results(iTn) = results; -%% CALL THE VBR CALCULATOR %% - [VBR] = VBR_spine(VBR) ; + dname = [num2str(Tn_cases(iTn)), ', ', num2str(phi_cases(iTn))]; + figure(f1) + if iTn > 1 + hold all + end + plot(VBR.in.SV.T_K - 273, results.Q, 'displayname', dname, 'linewidth', 1.5) + legend('Location','eastoutside','title', '(Tn, phi)') + xlabel('Temperature [C]', 'fontsize', 12) + ylabel('Qs', 'fontsize', 12) + ylim([0, 200]) -%% plot frequency dependence %% - figure; - subplot(1,3,1) - semilogx(1./VBR.in.SV.f,squeeze(VBR.out.anelastic.xfit_premelt.M(1,:,:)/1e9)); - ylabel('M [GPa]'); xlabel('period [s]') - ylim([0,80]) - subplot(1,3,2) - loglog(1./VBR.in.SV.f,squeeze(VBR.out.anelastic.xfit_premelt.Qinv(1,:,:))); - ylabel('Q^-1'); xlabel('period [s]') - ylim([1e-3,.1]) + end - subplot(1,3,3) - semilogx(1./VBR.in.SV.f,1e-3*squeeze(VBR.out.anelastic.xfit_premelt.V(1,:,:))); - ylabel('V_s [km/s]'); xlabel('period [s]') - saveas(gcf,'./figures/CB_004_xfit_premelt.png') diff --git a/release_notes.md b/release_notes.md index 6c7badb..eefed02 100644 --- a/release_notes.md +++ b/release_notes.md @@ -2,4 +2,8 @@ ## New Features * add a `VBR_save` function for saving `VBR` structures -* add framework for handling temporary files in test suite \ No newline at end of file +* add framework for handling temporary files in test suite +* add convenience function, `full_nd`, to create filled arrays + +## Bug fix +* fix for undefined behavior of pre-melt scaling at Tn == 1.0 \ No newline at end of file diff --git a/vbr/testing/test_utilities_full_nd.m b/vbr/testing/test_utilities_full_nd.m new file mode 100644 index 0000000..fc8b7ee --- /dev/null +++ b/vbr/testing/test_utilities_full_nd.m @@ -0,0 +1,32 @@ +function TestResult = test_utilities_full_nd() +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TestResult = test_utilities_full_nd() +% +% test full_nd +% +% Parameters +% ---------- +% none +% +% Output +% ------ +% TestResult struct with fields: +% .passed True if passed, False otherwise. +% .fail_message Message to display if false +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + x = full_nd(1.0, 2); + if all(size(x)==2) + msg = 'full_nd failed full_nd(1.0, 2) check.'; + TestResult.passed = false; + TestResult.fail_message = msg; + end + + x = full_nd(1.0, 2, 4, 3); + sh = size(x); + if sh(1) ~= 2 or sh(2) ~= 4 or sh(3) ~= 3 + msg = 'full_nd failed full_nd(1.0, 2, 4, 3) check.'; + TestResult.passed = false; + TestResult.fail_message = msg; + end + +end \ No newline at end of file diff --git a/vbr/testing/test_vbrcore_008_premelt_Tn_1.m b/vbr/testing/test_vbrcore_008_premelt_Tn_1.m new file mode 100644 index 0000000..9c35b0e --- /dev/null +++ b/vbr/testing/test_vbrcore_008_premelt_Tn_1.m @@ -0,0 +1,53 @@ +function TestResult = test_vbrcore_008_premelt_Tn_1() +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TestResult = test_vbrcore_008_premelt_Tn_1() +% +% test for undefined behavior at Tn == 1.0 +% +% Parameters +% ---------- +% none +% +% Output +% ------ +% TestResult struct with fields: +% .passed True if passed, False otherwise. +% .fail_message Message to display if false +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + TestResult.passed=true; + TestResult.fail_message = ''; + + %% write method list %% + VBR.in.elastic.methods_list={'anharmonic'}; + VBR.in.anelastic.methods_list={'xfit_premelt'}; + VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 0; + + % load anharmonic parameters, adjust Gu_0_ol and derivatives to match YT2016 + VBR.in.elastic.anharmonic.Gu_0_ol=72.45; %[GPa] + VBR.in.elastic.anharmonic.dG_dT = -10.94*1e6; % Pa/C (equivalent ot Pa/K) + VBR.in.elastic.anharmonic.dG_dP = 1.987; % GPa / GPa + + %% Define the Thermodynamic State %% + VBR.in.SV.T_K=1200:25:1500; + VBR.in.SV.T_K=VBR.in.SV.T_K+273; + VBR.in.SV.Tsolidus_K = VBR.in.SV.T_K; + sz=size(VBR.in.SV.T_K); % temperature [K] + VBR.in.SV.P_GPa = full_nd(2.5, sz); % pressure [GPa] + VBR.in.SV.dg_um=full_nd(0.01 * 1e6, sz); % grain size [um] + VBR.in.SV.rho = full_nd(3300, sz); % density [kg m^-3] + VBR.in.SV.sig_MPa = full_nd(.1, sz); % differential stress [MPa] + VBR.in.SV.phi = full_nd(0.0, sz); + VBR.in.SV.f = 1 ; % 1 Hz + + [VBR] = VBR_spine(VBR); + + if sum(VBR.out.viscous.xfit_premelt.diff.eta == 0.0) > 0 + msg = 'xfit_premelt.diff.eta contains 0.0 values'; + TestResult.passed = false; + TestResult.fail_message = msg; + end + +end + + diff --git a/vbr/vbrCore/functions/el_ModUnrlx_dTdP_f.m b/vbr/vbrCore/functions/el_ModUnrlx_dTdP_f.m index fdb7a2d..5d8f338 100644 --- a/vbr/vbrCore/functions/el_ModUnrlx_dTdP_f.m +++ b/vbr/vbrCore/functions/el_ModUnrlx_dTdP_f.m @@ -37,9 +37,19 @@ Gu_TP = VBR.in.elastic.Gu_TP; % Pa % calculate bulk modulus -disp(['Unrelaxed shear modulus was provided without an unrelaxed bulk modulus.', ... - ' Calculating bulk modulus assuming nu=', num2str(nu), ... - '. Set VBR.in.elastic.Ku_TP to specify a value.']); + if isfield(VBR.in.elastic,'quiet') + quiet_mode = VBR.in.elastic.quiet; + else + quiet_mode = 0; + end + + if quiet_mode == 0 + msg = ['Unrelaxed shear modulus was provided without an unrelaxed ', ... + 'bulk modulus. Calculating bulk modulus assuming nu=', num2str(nu), ... + '. Set VBR.in.elastic.Ku_TP to specify a value or set ', ... + 'VBR.in.elastic.quiet = 1 to silence this warning.']; + disp(msg); + end Ku_TP = calc_Ku(Gu_TP,nu); else dT = (VBR.in.SV.T_K-T_K_ref); diff --git a/vbr/vbrCore/functions/full_nd.m b/vbr/vbrCore/functions/full_nd.m new file mode 100644 index 0000000..4abb0bb --- /dev/null +++ b/vbr/vbrCore/functions/full_nd.m @@ -0,0 +1,23 @@ +function X = full_nd(fill_val, varargin) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % X = full_nd(fill_val, N) + % + % returns an N-D array filled with a constant. After fill_val, all arguments + % are forwarded to ones(). + % + % Parameters: + % ---------- + % fill_val + % the number to fill the array (or matrix) with + % + % remaining arguments are forwarded to ones(). + % + % + % Output: + % ------ + % matrix + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + X = ones(varargin{:}) * fill_val; +end \ No newline at end of file diff --git a/vbr/vbrCore/functions/visc_calc_xfit_premelt.m b/vbr/vbrCore/functions/visc_calc_xfit_premelt.m index 295d445..1d8ddcc 100644 --- a/vbr/vbrCore/functions/visc_calc_xfit_premelt.m +++ b/vbr/vbrCore/functions/visc_calc_xfit_premelt.m @@ -138,6 +138,6 @@ msk=(Tn >= T_eta) & (Tn < 1); A_n(msk)=exp(-(Tn(msk)-T_eta)./(Tn(msk)-Tn(msk)*T_eta)*log(gamma)); - msk=(Tn > 1); + msk=(Tn >= 1); A_n(msk)=exp(-lambda*phi(msk))/gamma/B; end From 8a69b0326033d38c1e9e25859dcf244641117d6e Mon Sep 17 00:00:00 2001 From: chavlin Date: Tue, 16 Apr 2024 11:39:13 -0500 Subject: [PATCH 11/20] fix new test --- vbr/testing/test_utilities_full_nd.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vbr/testing/test_utilities_full_nd.m b/vbr/testing/test_utilities_full_nd.m index fc8b7ee..0a73dea 100644 --- a/vbr/testing/test_utilities_full_nd.m +++ b/vbr/testing/test_utilities_full_nd.m @@ -15,7 +15,9 @@ % .fail_message Message to display if false %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x = full_nd(1.0, 2); - if all(size(x)==2) + TestResult.passed = true; + TestResult.fail_message = ''; + if all(size(x)==2) == 0 msg = 'full_nd failed full_nd(1.0, 2) check.'; TestResult.passed = false; TestResult.fail_message = msg; @@ -23,7 +25,7 @@ x = full_nd(1.0, 2, 4, 3); sh = size(x); - if sh(1) ~= 2 or sh(2) ~= 4 or sh(3) ~= 3 + if sh(1) ~= 2 | sh(2) ~= 4 | sh(3) ~= 3 msg = 'full_nd failed full_nd(1.0, 2, 4, 3) check.'; TestResult.passed = false; TestResult.fail_message = msg; From 6309713ad6d5f964d2d8e5c8c0f7b84a69c50f38 Mon Sep 17 00:00:00 2001 From: chavlin Date: Tue, 16 Apr 2024 14:33:51 -0500 Subject: [PATCH 12/20] fig7 looks good --- .../1_LabData/1_Attenuation/FitData_YT24.m | 95 ++++++++++++++----- .../functions/YT24_load_fig7_combined_data.m | 2 +- .../functions/setBorneolViscParams.m | 2 +- vbr/vbrCore/functions/Q_xfit_premelt.m | 12 +-- vbr/vbrCore/params/Params_Anelastic.m | 4 +- 5 files changed, 79 insertions(+), 36 deletions(-) diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT24.m b/Projects/1_LabData/1_Attenuation/FitData_YT24.m index c48347f..7e703c4 100644 --- a/Projects/1_LabData/1_Attenuation/FitData_YT24.m +++ b/Projects/1_LabData/1_Attenuation/FitData_YT24.m @@ -1,4 +1,4 @@ -function VBRc_results = FitData_YT24(use_data) +function VBRc_results = FitData_YT24() %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % FitData_YT24() % @@ -26,6 +26,7 @@ addpath('./functions') % check on data + use_data = 1; full_data_dir = 0; if use_data == 1 full_data_dir = download_YT24('data'); @@ -35,11 +36,31 @@ end -function rgb = get_rgb(Tn, Tn_min, dT) - clr_sc = (Tn - Tn_min) / dT; - clr_sc(clr_sc > 1) = 1.0; - clr_sc(clr_sc < 0) = 0.0; - rgb = [clr_sc, 0., 1-clr_sc]; +function rgb = get_rgb(i_exp, Tn, Tn_min, dT) + + rgba = [ + 0 , 0.4470 , 0.7410; + 0.8500 , 0.3250 , 0.0980; + 0.9290 , 0.6940 , 0.1250; + 0.4940 , 0.1840 , 0.5560; + 0.4660 , 0.6740 , 0.1880; + 0.3010 , 0.7450 , 0.9330; + 0.6350 , 0.0780 , 0.1840; + 0 , 0.4470 , 0.7410; + 0.8500 , 0.3250 , 0.0980; + 0.9290 , 0.6940 , 0.1250; + 0.4940 , 0.1840 , 0.5560; + 0.4660 , 0.6740 , 0.1880; + 0.3010 , 0.7450 , 0.9330; + 0.6350 , 0.0780 , 0.1840; + ]; + rgba(8:end,:) = rgba(8:end,:) * 0.5; + + rgb = rgba(i_exp,:); +% clr_sc = (Tn - Tn_min) / dT; +% clr_sc(clr_sc > 1) = 1.0; +% clr_sc(clr_sc < 0) = 0.0; +% rgb = [clr_sc, 0., 1-clr_sc]; end function VBRc_results = plot_fig7(full_data_dir); @@ -52,26 +73,31 @@ combined_data = YT24_load_fig7_combined_data(full_data_dir); n_exps = numel(combined_data); - freq_range = logspace(-4,9,100); + freq_range = logspace(-6,9,100); T_sc_min = 0.3; T_sc_max = 1.01; dT_rng = T_sc_max - T_sc_min; Tsol = 43.0; Tvals = []; % first plot experimental results + mod_fac = 1 / ( 1 - 0.031); % systematic error correction for i_exp = 1:n_exps data = combined_data(i_exp); - rgb = get_rgb(data.T/Tsol, T_sc_min, dT_rng); + rgb = get_rgb(i_exp, data.T/Tsol, T_sc_min, dT_rng); Tvals = [Tvals, data.T]; - + Tnlab = num2str(data.T/Tsol); subplot(2,1,1) - hold all - semilogx(data.f_normed, data.E_normed, '.', 'markersize', 12, 'color', rgb) + hold_if(i_exp) + semilogx(data.f_normed, data.E_normed * mod_fac, 'o', 'markersize', 3, 'color', rgb, 'displayname', Tnlab) subplot(2,1,2) - hold all - loglog(data.f_normed, data.Qinv, '.', 'markersize', 12, 'color', rgb) + hold_if(i_exp) + loglog(data.f_normed, data.Qinv, 'o', 'markersize', 3, 'color', rgb, 'displayname', Tnlab) end + subplot(2,1,1) + legend('Location', 'eastoutside','AutoUpdate','off') + subplot(2,1,2) + legend('Location', 'eastoutside','AutoUpdate','off') % now get VBRc results VBRc_results = struct(); @@ -82,21 +108,26 @@ dg = data.dg_um; phi = data.phi; rho = data.rho_kgm3; - VBR.in.elastic.methods_list={'anharmonic';'anh_poro'}; + + VBR.in.elastic.methods_list={'anharmonic';}; VBR.in.viscous.methods_list={'xfit_premelt'}; VBR.in.anelastic.methods_list={'xfit_premelt'}; VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1.0; + VBR.in.anelastic.xfit_premelt.tau_pp=2*1e-5; + % plotting with correction for poro-elastic effect applied, so + % set effect to 0 here. + VBR.in.anelastic.xfit_premelt.poro_Lambda = 0.0; - VBR.in.viscous.xfit_premelt=setBorneolViscParams(); - VBR.in.viscous.xfit_premelt.dg_um_r = dg; %47.9; - VBR.in.viscous.xfit_premelt.Tr_K = 46.3 + 273.; - VBR.in.viscous.xfit_premelt.eta_r = 0.173 * 1e12; - VBR.in.viscous.xfit_premelt.H = 147*1e3; + % set viscous params + VBR.in.viscous.xfit_premelt=setBorneolViscParams(); % YT2016 values, sample 41 + VBR.in.viscous.xfit_premelt.alpha = 32; % YT2024 actually fit this % set anharmonic conditions VBR.in.elastic.anharmonic=Params_Elastic('anharmonic'); % extract reference modulus (E_normed = E / E_u) - Gu_o = mean(data.E ./ data.E_normed)*1e9; + [Gu_o,dGdT,dGdT_ave]= YT16_E(T); + Gu_o = Gu_o * 1e9; + % Gu_o is for a given T, specify at elevated TP to skip anharmonic scaling VBR.in.elastic.Gu_TP = Gu_o; VBR.in.elastic.quiet = 1; % not bothering with K, avoid printing the poisson warning @@ -104,12 +135,12 @@ % set experimental conditions VBR.in.SV.T_K = T+273 ; sz=size(VBR.in.SV.T_K); - VBR.in.SV.dg_um= dg.* ones(sz); + VBR.in.SV.dg_um= dg .* ones(sz); %dg.* ones(sz); VBR.in.SV.P_GPa = 1.0132e-04 .* ones(sz); % pressure [GPa] VBR.in.SV.rho =rho .* ones(sz); % density [kg m^-3] - VBR.in.SV.sig_MPa =1000 .* ones(sz)./1e6; % differential stress [MPa] + VBR.in.SV.sig_MPa = 1000 .* ones(sz)./1e6; % differential stress [MPa] VBR.in.SV.Tsolidus_K = Tsol + 273 ; - disp(T/Tsol) + VBR.in.SV.phi = phi * ones(sz); % melt fraction VBR.in.SV.Ch2o_0=zeros(sz); @@ -129,23 +160,29 @@ for i_exp = 1:n_exps results = VBRc_results(i_exp); - rgb = get_rgb(results.T/Tsol, T_sc_min, dT_rng); + rgb = get_rgb(i_exp, results.T/Tsol, T_sc_min, dT_rng); % and plot subplot(2,1,1) - hold all + hold_if(i_exp) + semilogx(results.f_normed, results.E_normed ,'color', rgb) subplot(2,1,2) - hold all + hold_if(i_exp) loglog(results.f_normed, results.Qinv , 'color', rgb) end subplot(2,1,1) xlim([1e-2,1e9]) ylim([0,1.1]) + xlabel('f / f_M') + ylabel("E/E_u") subplot(2,1,2) xlim([1e-2,1e9]) ylim([1e-3,2]) + xlabel('f / f_M') + ylabel("Q^-^1") + end @@ -169,4 +206,10 @@ movefile(zipfilename, unzipped_data_dir) unzip(local_data, unzipped_data_dir) end +end + +function hold_if(iterval) + if iterval > 1 + hold all + end end \ No newline at end of file diff --git a/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m index eaf2c52..8245046 100644 --- a/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m +++ b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m @@ -59,7 +59,7 @@ data = getfield(sample_data, struct_name); % e.g., anela42 run_data = data.run; - sample_info = get_sample_info(sample_number, data); + sample_info = get_sample_info(sample_number); end diff --git a/Projects/1_LabData/1_Attenuation/functions/setBorneolViscParams.m b/Projects/1_LabData/1_Attenuation/functions/setBorneolViscParams.m index 7101555..a1f39da 100644 --- a/Projects/1_LabData/1_Attenuation/functions/setBorneolViscParams.m +++ b/Projects/1_LabData/1_Attenuation/functions/setBorneolViscParams.m @@ -1,5 +1,5 @@ function params = setBorneolViscParams() - % set the general viscous parameters for borneol. + % set the general viscous parameters for borneol for YT2016 % near-solidus and melt effects params.alpha=25; params.T_eta=0.94; % eqn 17,18- T at which homologous T for premelting. diff --git a/vbr/vbrCore/functions/Q_xfit_premelt.m b/vbr/vbrCore/functions/Q_xfit_premelt.m index 0a3b070..c549e2e 100644 --- a/vbr/vbrCore/functions/Q_xfit_premelt.m +++ b/vbr/vbrCore/functions/Q_xfit_premelt.m @@ -50,7 +50,7 @@ % poroelastic J1 effect if applicable if params.include_direct_melt_effect == 1 - % poroelastic effect added to J1 + % poroelastic effect added to J1, Delta_poro poro_elastic_factor = params.poro_Lambda * phi; else % no poroelastic effects outside of incoming unrelaxed modulus @@ -127,14 +127,14 @@ Ap_Tn_pts=params.Ap_Tn_pts; sig_p_Tn_pts=params.sig_p_Tn_pts; if params.include_direct_melt_effect == 1 - Beta = params.Beta; % this depends on melt fraction in YT2024 + Beta_p = params.Beta; % this depends on melt fraction in YT2024 else - Beta = 0; % no direct melt dependence + Beta_p = 0; % no direct melt dependence end A_p=zeros(size(Tn)); - A_p(Tn>=Ap_Tn_pts(3))=params.Ap_fac_3+Beta*phi(Tn>=Ap_Tn_pts(3)); - A_p(Tn= Ap_Tn_pts(3))=params.Ap_fac_3+Beta_p*phi(Tn >= Ap_Tn_pts(3)); + A_p(Tn < Ap_Tn_pts(3))=params.Ap_fac_3; + A_p(Tn < Ap_Tn_pts(2))=params.Ap_fac_1 + params.Ap_fac_2*(Tn(Tn < Ap_Tn_pts(2))-Ap_Tn_pts(1)); A_p(Tn < Ap_Tn_pts(1))=params.Ap_fac_1; sig_p=zeros(size(Tn)); diff --git a/vbr/vbrCore/params/Params_Anelastic.m b/vbr/vbrCore/params/Params_Anelastic.m index 48983d4..dd41324 100644 --- a/vbr/vbrCore/params/Params_Anelastic.m +++ b/vbr/vbrCore/params/Params_Anelastic.m @@ -111,7 +111,7 @@ params.A_B=0.664; % high temp background dissipation strength % pre-melting dissipation peak settings: - params.tau_pp=6*1e-5; % peak center + params.tau_pp=6*1e-5; % peak center, table 4 of YT16, paragraph before eq 10 params.Ap_fac_1=0.01; params.Ap_fac_2=0.4; params.Ap_fac_3=0.03; @@ -133,7 +133,7 @@ params.include_direct_melt_effect = 0; % set to 1 to include YT2024 melt effect params.Beta=1.38; % this is determined in YT2024, named Beta_P in YT2024 eq 5 params.Beta_B=6.94; % YT2024 only - params.poro_Lambda = 4.0; % Table 6 YT2024, + params.poro_Lambda = 4.0; % Table 6 YT2024, params.description='pre-melting scaling'; end From 35de3cacd1214bfc66f4dbb8f8112fb12e7ac365 Mon Sep 17 00:00:00 2001 From: chavlin Date: Tue, 16 Apr 2024 14:36:51 -0500 Subject: [PATCH 13/20] update release notes --- release_notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/release_notes.md b/release_notes.md index eefed02..be178c2 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,6 +1,7 @@ # v1.1.3 ## New Features +* add direct melt effects to xfit_premelt, from Yamauchi and Takei, 2024. The `xfit_premelt` method will use the updated parameter values when `VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1;` (default is 0, a future VBRc version will change the default to 1). * add a `VBR_save` function for saving `VBR` structures * add framework for handling temporary files in test suite * add convenience function, `full_nd`, to create filled arrays From 95a6489ca0dccfcd95d006b0ab950c8937f2dd7c Mon Sep 17 00:00:00 2001 From: chavlin Date: Tue, 16 Apr 2024 17:23:14 -0500 Subject: [PATCH 14/20] change xfit_prement alpha to 30 --- Projects/1_LabData/1_Attenuation/FitData_YT24.m | 2 +- Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m | 1 + release_notes.md | 4 +++- vbr/vbrCore/params/Params_Viscous.m | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT24.m b/Projects/1_LabData/1_Attenuation/FitData_YT24.m index 7e703c4..c05c9ac 100644 --- a/Projects/1_LabData/1_Attenuation/FitData_YT24.m +++ b/Projects/1_LabData/1_Attenuation/FitData_YT24.m @@ -86,7 +86,7 @@ rgb = get_rgb(i_exp, data.T/Tsol, T_sc_min, dT_rng); Tvals = [Tvals, data.T]; - Tnlab = num2str(data.T/Tsol); + Tnlab = num2str((data.T+273)/(Tsol+273)); subplot(2,1,1) hold_if(i_exp) semilogx(data.f_normed, data.E_normed * mod_fac, 'o', 'markersize', 3, 'color', rgb, 'displayname', Tnlab) diff --git a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m index 6cd2c34..e1a29f0 100644 --- a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m +++ b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m @@ -63,6 +63,7 @@ ylabel('Qs', 'fontsize', 12) ylim([0, 200]) + yticks(0:20:200) end diff --git a/release_notes.md b/release_notes.md index be178c2..a82e210 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,7 +1,9 @@ # v1.1.3 ## New Features -* add direct melt effects to xfit_premelt, from Yamauchi and Takei, 2024. The `xfit_premelt` method will use the updated parameter values when `VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1;` (default is 0, a future VBRc version will change the default to 1). +* updates to xfit_premelt: + * add direct melt effects from Yamauchi and Takei, 2024. The `xfit_premelt` method will use the updated parameter values when `VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1;` (default is 0, a future VBRc version will change the default to 1). + * change default exponential melt factor (the alpha in exp(-alpha*phi) in the viscosity relationship) from 25 to 30. * add a `VBR_save` function for saving `VBR` structures * add framework for handling temporary files in test suite * add convenience function, `full_nd`, to create filled arrays diff --git a/vbr/vbrCore/params/Params_Viscous.m b/vbr/vbrCore/params/Params_Viscous.m index c205430..d33c266 100644 --- a/vbr/vbrCore/params/Params_Viscous.m +++ b/vbr/vbrCore/params/Params_Viscous.m @@ -47,7 +47,7 @@ params.citations={'Yamauchi and Takei, 2016, J. Geophys. Res. Solid Earth, https://doi.org/10.1002/2016JB013316'}; params.description='Steady state flow law for pre-melting viscosity drop, flow law parameters from fitting upper mantle.'; % near-solidus and melt effects - params.alpha=25; % taken from diff. creep value of HZK2011. YT2016 call this lambda. + params.alpha=30; % taken from diff. creep value of HZK2011. YT2016 call this lambda. params.T_eta=0.94; params.gamma=5; params.B = 1.0; From ef4223268c5c3a9af178a9ccbb429e93c7dfddfa Mon Sep 17 00:00:00 2001 From: chavlin Date: Wed, 17 Apr 2024 13:01:01 -0500 Subject: [PATCH 15/20] update CB_014 docstring --- .../vbr_core_examples/CB_014_xfit_premelt_extended.m | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m index e1a29f0..d8bd8e5 100644 --- a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m +++ b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m @@ -1,9 +1,10 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% CB_004_xfit_premelt.m +% CB_014_xfit_premelt_extended.m % -% Calls VBR using xfit_premelt method from: -% Hatsuki Yamauchi and Yasuko Takei, JGR 2024, "Effect of Melt on Polycrystal -% Anelasticity", https://doi.org/10.1029/2023JB027738 +% Calls VBR using xfit_premelt method including the direct melt effect, +% from: +% Hatsuki Yamauchi and Yasuko Takei, JGR 2024, "Effect of Melt on +% Polycrystal Anelasticity", https://doi.org/10.1029/2023JB027738 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% put VBR in the path %% From 07d7301b31d325474f4f0a560b18ccd33223b27a Mon Sep 17 00:00:00 2001 From: chavlin Date: Wed, 17 Apr 2024 13:20:43 -0500 Subject: [PATCH 16/20] update docs, add another test --- docs/_pages/vbrmethods/anel/xfitpremelt.md | 27 ++++++++- docs/_pages/vbrmethods/anelastic.md | 7 ++- docs/_pages/vbrmethods/visc/xfit_premelt.md | 6 +- vbr/testing/test_vbrcore_009_premelt_direct.m | 55 +++++++++++++++++++ 4 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 vbr/testing/test_vbrcore_009_premelt_direct.m diff --git a/docs/_pages/vbrmethods/anel/xfitpremelt.md b/docs/_pages/vbrmethods/anel/xfitpremelt.md index 13e6838..333e3ed 100644 --- a/docs/_pages/vbrmethods/anel/xfitpremelt.md +++ b/docs/_pages/vbrmethods/anel/xfitpremelt.md @@ -6,7 +6,9 @@ title: '' # `xfit_premelt` -Master curve maxwell scaling using near-solidus parametrization of Yamauchi and Takei (2016), J. Geophys. Res. Solid Earth, [DOI](https://doi.org/10.1002/2016JB013316). +Master curve maxwell scaling using near-solidus parametrization of Yamauchi and Takei (2016), +J. Geophys. Res. Solid Earth, [DOI](https://doi.org/10.1002/2016JB013316) with optional extension to include direct melt effects +of Yamauchi and Takei (2024), J. Geophys. Res. Solid Earth, [DOI](https://doi.org/10.1029/2023JB027738). ## Requires @@ -21,11 +23,27 @@ VBR.in.SV.sig_MPa % differential stress [MPa] VBR.in.SV.phi % melt fraction / porosity VBR.in.SV.rho % density in kg m-3 ``` + +To use the Yamauchi and Takei (2024) scaling that includes direct melt effects, set the +following flag: + +```matlab +VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1; +``` Additionally, `xfit_premelt` relies on output from the elastic and viscous methods. -**Required Elastic Methods**: `anharmonic` MUST be in the `VBR.in.elastic.methods_list`. If `anh_poro` is in the methods list then `xfit_premelt` will use the unrelaxed moduli from `anh_poro` (which includes the P,T projection of `anharmonic` plus the poroelastic correction). See the section on [elastic methods](/vbr/vbrmethods/elastic/) for more details. +**Required Elastic Methods**: `anharmonic` MUST be in the `VBR.in.elastic.methods_list`. Poroelasticity +is treated differently depending on the value of `include_direct_melt_effect`. +If `include_direct_melt_effect==0` and `anh_poro` is in the methods list then `xfit_premelt` will use the unrelaxed moduli +from `anh_poro` (which includes the P,T projection of `anharmonic` plus the poroelastic correction). See the section +on [elastic methods](/vbr/vbrmethods/elastic/) for more details. If `include_direct_melt_effect==1`, then poroelasticity is incororated within +J1, following Yamauchi and Takei (2024). The current version of the VBRc uses `include_direct_melt_effect=0` as the default, +future versions will set this flag to 1 by default. -**Optional Viscous Methods**: `xfit_premelt` calculates maxwell times using the [viscous xfit_premelt method](/vbr/vbrmethods/visc/xfit_premelt/). If you want to adjust the viscosity calculation used in the maxwell time, you can add `xfit_premelt` to `VBR.in.viscous.methods_list` and adjust the desired parameters. The anelastic calculation will then use the results calculated by the viscous `xfit_premelt` method. This is particularly useful when fitting laboratory measurements of borneol (see [example](/vbr/vbrmethods/anel/xfitpremelt/#example-at-laboratory-conditions) below). +**Optional Viscous Methods**: `xfit_premelt` calculates maxwell times using the [viscous xfit_premelt method](/vbr/vbrmethods/visc/xfit_premelt/). +If you want to adjust the viscosity calculation used in the maxwell time, you can add `xfit_premelt` to `VBR.in.viscous.methods_list` +and adjust the desired parameters. The anelastic calculation will then use the results calculated by the viscous `xfit_premelt` method. +This is particularly useful when fitting laboratory measurements of borneol (see [example](/vbr/vbrmethods/anel/xfitpremelt/#example-at-laboratory-conditions) below). ## Calling Procedure @@ -53,6 +71,9 @@ VBR.in.elastic.methods_list={'anharmonic';'anh_poro'}; % set anelastic methods list VBR.in.anelastic.methods_list={'xfit_premelt'}; +% enable melt effects from Yamauchi and Takei (2024) +VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1; + % call VBR_spine [VBR] = VBR_spine(VBR) ; ``` diff --git a/docs/_pages/vbrmethods/anelastic.md b/docs/_pages/vbrmethods/anelastic.md index bf07170..2d1f1fc 100644 --- a/docs/_pages/vbrmethods/anelastic.md +++ b/docs/_pages/vbrmethods/anelastic.md @@ -11,6 +11,9 @@ The anelastic methods displayed by `vbrListMethods` currently include: * `xfit_mxw` [documentation](/vbr/vbrmethods/anel/xfitmxw/): Master Curve Fit, maxwell scaling * `xfit_premelt` [documentation](/vbr/vbrmethods/anel/xfitpremelt/): Master Curve Fit, pre-melting maxwell scaling -A detailed theoretical description of each is provided in the full VBR Manual document (IN PREP) and so here, we only describe the computational aspects useful to the end user. +A detailed theoretical description of each is provided in the full methods paper ([link](https://doi.org/10.1016/j.pepi.2020.106639)) or +in the papers cited by the methods and so here, we only describe the computational aspects useful to the end user. -All of the anelastic methods require results of an elastic calculation, specifically the unrelaxed elastic moduli. If calculated, the anelastic methods will use moduli from `VBR.out.elastic.anh_poro` and default to those from `VBR.out.elastic.anharmonic`. +All of the anelastic methods require results of an elastic calculation, specifically the unrelaxed elastic moduli. +If calculated, the anelastic methods may also use moduli from `VBR.out.elastic.anh_poro` and default to those from +`VBR.out.elastic.anharmonic`. diff --git a/docs/_pages/vbrmethods/visc/xfit_premelt.md b/docs/_pages/vbrmethods/visc/xfit_premelt.md index 1afe3f2..7cb8d05 100644 --- a/docs/_pages/vbrmethods/visc/xfit_premelt.md +++ b/docs/_pages/vbrmethods/visc/xfit_premelt.md @@ -45,7 +45,11 @@ disp(VBR.in.viscous.xfit_premelt) ### eta_melt_free_method -The parameter, `VBR.in.viscous.xfit_premelt.eta_melt_free_method`, controls what viscosity method is used to calculate the melt free viscosity. By default, this is set to `xfit_premelt`, in which case it uses the upper mantle fit directly from Yamauchi and Takei (2016). If set to one of the other viscosity mtehods, `HK2003` or `HZK2011`, then the melt free viscosity is calculated using those methods with melt fraction set to 0 and then the near-solidus pre-melting effect is then multiplied on. +The parameter, `VBR.in.viscous.xfit_premelt.eta_melt_free_method`, controls what viscosity method is used to calculate +the melt free viscosity. By default, this is set to `xfit_premelt`, in which case it uses the upper mantle fit directly +from Yamauchi and Takei (2016). If set to one of the other viscosity mtehods, `HK2003` or `HZK2011`, then the melt +free viscosity is calculated using those methods with melt fraction set to 0 and then the near-solidus pre-melting +effect is then multiplied on. ## Output Output is stored in `VBR.out.viscous.xfit_premelt`. Unlike the other viscous methods, `xfit_premelt` only returns a diffusion creep viscosity sub-structure: diff --git a/vbr/testing/test_vbrcore_009_premelt_direct.m b/vbr/testing/test_vbrcore_009_premelt_direct.m new file mode 100644 index 0000000..3b9a73f --- /dev/null +++ b/vbr/testing/test_vbrcore_009_premelt_direct.m @@ -0,0 +1,55 @@ +function TestResult = test_vbrcore_009_premelt_direct() +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TestResult = test_vbrcore_009_premelt_direct() +% +% test for when include_direct_melt_effect == 1 +% +% Parameters +% ---------- +% none +% +% Output +% ------ +% TestResult struct with fields: +% .passed True if passed, False otherwise. +% .fail_message Message to display if false +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + TestResult.passed=true; + TestResult.fail_message = ''; + + %% write method list %% + VBR.in.elastic.methods_list={'anharmonic'}; + VBR.in.anelastic.methods_list={'xfit_premelt'}; + VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1; + + % load anharmonic parameters, adjust Gu_0_ol and derivatives to match YT2016 + VBR.in.elastic.anharmonic.Gu_0_ol=72.45; %[GPa] + VBR.in.elastic.anharmonic.dG_dT = -10.94*1e6; % Pa/C (equivalent ot Pa/K) + VBR.in.elastic.anharmonic.dG_dP = 1.987; % GPa / GPa + + %% Define the Thermodynamic State %% + VBR.in.SV.phi = logspace(-8,log10(0.05), 10); + + sz=size(VBR.in.SV.phi); % temperature [K] + VBR.in.SV.T_K = full_nd(1350+273, sz); + VBR.in.SV.Tsolidus_K = full_nd(1300+273., sz); + VBR.in.SV.P_GPa = full_nd(2.5, sz); % pressure [GPa] + VBR.in.SV.dg_um=full_nd(0.01 * 1e6, sz); % grain size [um] + VBR.in.SV.rho = full_nd(3300, sz); % density [kg m^-3] + VBR.in.SV.sig_MPa = full_nd(.1, sz); % differential stress [MPa] + + VBR.in.SV.f = 10.; % 1 Hz + + [VBR] = VBR_spine(VBR); + + Qinv = VBR.out.anelastic.xfit_premelt.Qinv; + phi = VBR.in.SV.phi; + dQdphi = (Qinv(2:end) - Qinv(1:end-1))./ (phi(2:end) - phi(1:end-1)); + if sum(dQdphi>0) > 0 + TestResult.passed=false; + TestResult.fail_message = 'Increasing melt fraction should decrease Qinv.'; + end +end + + From c34091c23b864494ccc0621176809bf84077fc7b Mon Sep 17 00:00:00 2001 From: chavlin Date: Wed, 17 Apr 2024 15:33:12 -0500 Subject: [PATCH 17/20] fix new test --- vbr/testing/test_vbrcore_009_premelt_direct.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vbr/testing/test_vbrcore_009_premelt_direct.m b/vbr/testing/test_vbrcore_009_premelt_direct.m index 3b9a73f..027e29f 100644 --- a/vbr/testing/test_vbrcore_009_premelt_direct.m +++ b/vbr/testing/test_vbrcore_009_premelt_direct.m @@ -46,9 +46,9 @@ Qinv = VBR.out.anelastic.xfit_premelt.Qinv; phi = VBR.in.SV.phi; dQdphi = (Qinv(2:end) - Qinv(1:end-1))./ (phi(2:end) - phi(1:end-1)); - if sum(dQdphi>0) > 0 + if sum(dQdphi<0) > 0 TestResult.passed=false; - TestResult.fail_message = 'Increasing melt fraction should decrease Qinv.'; + TestResult.fail_message = 'Increasing melt fraction should increase Qinv.'; end end From dc7e436dcdd5b3d1cfcc83468a1f13afcc545561 Mon Sep 17 00:00:00 2001 From: chavlin Date: Wed, 17 Apr 2024 16:57:10 -0500 Subject: [PATCH 18/20] improve lab fit plot styles --- .../1_LabData/1_Attenuation/FitData_YT24.m | 101 ++++++++++-------- .../functions/YT24_load_fig7_combined_data.m | 15 ++- 2 files changed, 72 insertions(+), 44 deletions(-) diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT24.m b/Projects/1_LabData/1_Attenuation/FitData_YT24.m index c05c9ac..34b3e3f 100644 --- a/Projects/1_LabData/1_Attenuation/FitData_YT24.m +++ b/Projects/1_LabData/1_Attenuation/FitData_YT24.m @@ -25,79 +25,83 @@ addpath('./functions') - % check on data - use_data = 1; - full_data_dir = 0; - if use_data == 1 - full_data_dir = download_YT24('data'); - end + % check on data, download if needed + full_data_dir = download_YT24('data'); + % get VBRc result and plot along the way VBRc_results = plot_fig7(full_data_dir); end function rgb = get_rgb(i_exp, Tn, Tn_min, dT) - rgba = [ - 0 , 0.4470 , 0.7410; - 0.8500 , 0.3250 , 0.0980; - 0.9290 , 0.6940 , 0.1250; - 0.4940 , 0.1840 , 0.5560; - 0.4660 , 0.6740 , 0.1880; - 0.3010 , 0.7450 , 0.9330; - 0.6350 , 0.0780 , 0.1840; - 0 , 0.4470 , 0.7410; - 0.8500 , 0.3250 , 0.0980; - 0.9290 , 0.6940 , 0.1250; - 0.4940 , 0.1840 , 0.5560; - 0.4660 , 0.6740 , 0.1880; - 0.3010 , 0.7450 , 0.9330; - 0.6350 , 0.0780 , 0.1840; - ]; - rgba(8:end,:) = rgba(8:end,:) * 0.5; - - rgb = rgba(i_exp,:); -% clr_sc = (Tn - Tn_min) / dT; -% clr_sc(clr_sc > 1) = 1.0; -% clr_sc(clr_sc < 0) = 0.0; -% rgb = [clr_sc, 0., 1-clr_sc]; +% rgba = [ +% 0 , 0.4470 , 0.7410; +% 0.8500 , 0.3250 , 0.0980; +% 0.9290 , 0.6940 , 0.1250; +% 0.4940 , 0.1840 , 0.5560; +% 0.4660 , 0.6740 , 0.1880; +% 0.3010 , 0.7450 , 0.9330; +% 0.6350 , 0.0780 , 0.1840; +% 0 , 0.4470 , 0.7410; +% 0.8500 , 0.3250 , 0.0980; +% 0.9290 , 0.6940 , 0.1250; +% 0.4940 , 0.1840 , 0.5560; +% 0.4660 , 0.6740 , 0.1880; +% 0.3010 , 0.7450 , 0.9330; +% 0.6350 , 0.0780 , 0.1840; +% ]; +% rgba(8:end,:) = rgba(8:end,:) * 0.5; +% +% rgb = rgba(i_exp,:); + clr_sc = (Tn - Tn_min) / dT; + clr_sc(clr_sc > 1) = 1.0; + clr_sc(clr_sc < 0) = 0.0; + rgb = [clr_sc, 0., 1-clr_sc]; end function VBRc_results = plot_fig7(full_data_dir); - figure(); + figure('Position', [10 10 500 600],'PaperPosition',[0,0,7,7*6/5],'PaperPositionMode','manual'); + ax_1 = subplot(2,1,1); + ax_2 = subplot(2,1,2); load(fullfile('data','YT16','table3.mat')); visc_data.table3_H=table3_H.table3_H; combined_data = YT24_load_fig7_combined_data(full_data_dir); + n_exps = numel(combined_data); freq_range = logspace(-6,9,100); - T_sc_min = 0.3; - T_sc_max = 1.01; + T_sc_min = 0.889; + T_sc_max = 1.015; dT_rng = T_sc_max - T_sc_min; Tsol = 43.0; - Tvals = []; % first plot experimental results mod_fac = 1 / ( 1 - 0.031); % systematic error correction for i_exp = 1:n_exps data = combined_data(i_exp); - rgb = get_rgb(i_exp, data.T/Tsol, T_sc_min, dT_rng); - Tvals = [Tvals, data.T]; - Tnlab = num2str((data.T+273)/(Tsol+273)); + rgb = get_rgb(i_exp, data.Tn, T_sc_min, dT_rng); + if data.Tn >= 1 + mrkr = 'o'; + mrkr_sz = 3; + else + mrkr = '.'; + mrkr_sz=10; + end + Tnlab = num2str(data.Tn, 3+(data.Tn>=1)); subplot(2,1,1) hold_if(i_exp) - semilogx(data.f_normed, data.E_normed * mod_fac, 'o', 'markersize', 3, 'color', rgb, 'displayname', Tnlab) + semilogx(data.f_normed, data.E_normed * mod_fac, mrkr, 'markersize', mrkr_sz, 'color', rgb, 'displayname', Tnlab) subplot(2,1,2) hold_if(i_exp) - loglog(data.f_normed, data.Qinv, 'o', 'markersize', 3, 'color', rgb, 'displayname', Tnlab) + loglog(data.f_normed, data.Qinv, mrkr, 'markersize', mrkr_sz, 'color', rgb, 'displayname', Tnlab) end - subplot(2,1,1) - legend('Location', 'eastoutside','AutoUpdate','off') subplot(2,1,2) - legend('Location', 'eastoutside','AutoUpdate','off') + leg = legend('Location', 'eastoutside', 'Orientation', 'vertical', ... + 'AutoUpdate','off','title','T_n','NumColumns',1); % now get VBRc results VBRc_results = struct(); @@ -160,7 +164,7 @@ for i_exp = 1:n_exps results = VBRc_results(i_exp); - rgb = get_rgb(i_exp, results.T/Tsol, T_sc_min, dT_rng); + rgb = get_rgb(i_exp, (results.T +273)/(Tsol+273), T_sc_min, dT_rng); % and plot subplot(2,1,1) hold_if(i_exp) @@ -172,6 +176,7 @@ end subplot(2,1,1) + xticklabels([]) xlim([1e-2,1e9]) ylim([0,1.1]) xlabel('f / f_M') @@ -183,6 +188,18 @@ xlabel('f / f_M') ylabel("Q^-^1") + ax2pos = get(ax_2, 'Position'); + ax1pos = get(ax_1, 'Position'); + + ax1pos(2) = ax2pos(2) + ax2pos(4); % use the same x axis + set(ax_1, 'Position', ax1pos) + set(ax_2, 'Position', ax2pos) + + leg_pos = get(leg, 'Position'); + leg_pos(2) = ax2pos(2); + set(leg, 'Position', leg_pos) + + saveas(gcf,'./figures/YT24_MQ.png') end diff --git a/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m index 8245046..27b7f5f 100644 --- a/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m +++ b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m @@ -1,4 +1,4 @@ -function combined_data = YT24_load_fig7_combined_data(full_data_dir) +function combined_data_final = YT24_load_fig7_combined_data(full_data_dir) combined_data = struct(); % pull all data for sample 41 first T cycle @@ -11,8 +11,10 @@ i_data = 1; Tsol = 43; + Tvals = []; for iT = i_Tstart: i_Tend combined_data(i_data) = extract_single_experiment(current_run, sample_info, iT, Tsol, sample_id); + Tvals = [Tvals, combined_data(i_data).Tn]; i_data = i_data + 1; end @@ -24,18 +26,27 @@ for iT = i_Tstart: i_Tend if current_run(iT).T >= Tsol combined_data(i_data) = extract_single_experiment(current_run, sample_info, iT, Tsol, sample_id); + Tvals = [Tvals, combined_data(i_data).Tn]; i_data = i_data + 1; end end end + + + % finally, re-order based on homologous temperature + [sorted_T, idx] = sort(Tvals); + for isamp = 1:numel(combined_data) + combined_data_final(isamp) = combined_data(idx(isamp)); + end + end function single_exp = extract_single_experiment(current_run, sample_info, iT, Tsol, sample_id) T = current_run(iT).T; % celcius cdata = current_run(iT).data; single_exp.T = T; - single_exp.Tn = T / 43; + single_exp.Tn = (T + 273.0) / (Tsol+273); % homologous temperature single_exp.f = cdata(:,1); single_exp.f_normed = cdata(:,2); single_exp.E = cdata(:,3); From ceaae5a5fad844cb4b1018d55ca5db9b2e733bf6 Mon Sep 17 00:00:00 2001 From: chrishavlin Date: Fri, 19 Apr 2024 16:07:24 -0500 Subject: [PATCH 19/20] add vbr_categorical_colormap, update YT24 lab example --- .../1_LabData/1_Attenuation/FitData_YT24.m | 132 ++++++++---------- .../functions/YT24_load_fig7_combined_data.m | 4 + .../CB_014_xfit_premelt_extended.m | 6 +- .../examples/CB_014_xfit_premelt_extended.md | 86 ++++++++++++ docs/_pages/examples/vbrcore.md | 1 + docs/_pages/vbrmethods/anel/xfitpremelt.md | 4 + .../assets/images/CBs/CB_004_xfit_premelt.png | Bin 29559 -> 29325 bytes .../CBs/CB_014_xfit_premelt_extended.png | Bin 0 -> 60271 bytes .../images/xfitpremelt_melt_effects.png | Bin 0 -> 126594 bytes vbr/support/vbr_categorical_cmap_array.m | 39 ++++++ vbr/support/vbr_categorical_color.m | 23 +++ .../test_utilities_vbr_categorical_cmap.m | 36 +++++ vbr/testing/test_vbrcore_007_G_K_TP.m | 1 + 13 files changed, 256 insertions(+), 76 deletions(-) create mode 100644 docs/_pages/examples/CB_014_xfit_premelt_extended.md create mode 100644 docs/assets/images/CBs/CB_014_xfit_premelt_extended.png create mode 100644 docs/assets/images/xfitpremelt_melt_effects.png create mode 100644 vbr/support/vbr_categorical_cmap_array.m create mode 100644 vbr/support/vbr_categorical_color.m create mode 100644 vbr/testing/test_utilities_vbr_categorical_cmap.m diff --git a/Projects/1_LabData/1_Attenuation/FitData_YT24.m b/Projects/1_LabData/1_Attenuation/FitData_YT24.m index 34b3e3f..d0a9461 100644 --- a/Projects/1_LabData/1_Attenuation/FitData_YT24.m +++ b/Projects/1_LabData/1_Attenuation/FitData_YT24.m @@ -33,38 +33,18 @@ end -function rgb = get_rgb(i_exp, Tn, Tn_min, dT) - -% rgba = [ -% 0 , 0.4470 , 0.7410; -% 0.8500 , 0.3250 , 0.0980; -% 0.9290 , 0.6940 , 0.1250; -% 0.4940 , 0.1840 , 0.5560; -% 0.4660 , 0.6740 , 0.1880; -% 0.3010 , 0.7450 , 0.9330; -% 0.6350 , 0.0780 , 0.1840; -% 0 , 0.4470 , 0.7410; -% 0.8500 , 0.3250 , 0.0980; -% 0.9290 , 0.6940 , 0.1250; -% 0.4940 , 0.1840 , 0.5560; -% 0.4660 , 0.6740 , 0.1880; -% 0.3010 , 0.7450 , 0.9330; -% 0.6350 , 0.0780 , 0.1840; -% ]; -% rgba(8:end,:) = rgba(8:end,:) * 0.5; -% -% rgb = rgba(i_exp,:); - clr_sc = (Tn - Tn_min) / dT; - clr_sc(clr_sc > 1) = 1.0; - clr_sc(clr_sc < 0) = 0.0; - rgb = [clr_sc, 0., 1-clr_sc]; -end function VBRc_results = plot_fig7(full_data_dir); figure('Position', [10 10 500 600],'PaperPosition',[0,0,7,7*6/5],'PaperPositionMode','manual'); - ax_1 = subplot(2,1,1); - ax_2 = subplot(2,1,2); + yheight = 0.4; + xpos = 0.1; + ypos = 0.1; + xwidth = 0.6; + ax_Q = axes('position', [xpos, ypos, xwidth, yheight]); + ax_E = axes('position', [xpos, ypos + yheight, xwidth, yheight]); + leg_pos = [xpos+xwidth+0.05, ypos, 0.2, yheight]; + load(fullfile('data','YT16','table3.mat')); visc_data.table3_H=table3_H.table3_H; @@ -74,36 +54,9 @@ n_exps = numel(combined_data); freq_range = logspace(-6,9,100); - T_sc_min = 0.889; - T_sc_max = 1.015; - dT_rng = T_sc_max - T_sc_min; Tsol = 43.0; - % first plot experimental results - mod_fac = 1 / ( 1 - 0.031); % systematic error correction - for i_exp = 1:n_exps - data = combined_data(i_exp); - - rgb = get_rgb(i_exp, data.Tn, T_sc_min, dT_rng); - if data.Tn >= 1 - mrkr = 'o'; - mrkr_sz = 3; - else - mrkr = '.'; - mrkr_sz=10; - end - Tnlab = num2str(data.Tn, 3+(data.Tn>=1)); - subplot(2,1,1) - hold_if(i_exp) - semilogx(data.f_normed, data.E_normed * mod_fac, mrkr, 'markersize', mrkr_sz, 'color', rgb, 'displayname', Tnlab) - subplot(2,1,2) - hold_if(i_exp) - loglog(data.f_normed, data.Qinv, mrkr, 'markersize', mrkr_sz, 'color', rgb, 'displayname', Tnlab) - end - subplot(2,1,2) - leg = legend('Location', 'eastoutside', 'Orientation', 'vertical', ... - 'AutoUpdate','off','title','T_n','NumColumns',1); - % now get VBRc results + % get VBRc results VBRc_results = struct(); for i_exp = 1:n_exps data = combined_data(i_exp); @@ -117,7 +70,7 @@ VBR.in.viscous.methods_list={'xfit_premelt'}; VBR.in.anelastic.methods_list={'xfit_premelt'}; VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1.0; - VBR.in.anelastic.xfit_premelt.tau_pp=2*1e-5; + % VBR.in.anelastic.xfit_premelt.tau_pp=2*1e-5; % plotting with correction for poro-elastic effect applied, so % set effect to 0 here. VBR.in.anelastic.xfit_premelt.poro_Lambda = 0.0; @@ -156,47 +109,76 @@ results.f_normed = VBR_bysamp.out.anelastic.xfit_premelt.f_norm; results.E_normed = results.E / Gu_o; results.T = T; + results.Tn = VBR.in.SV.T_K / VBR.in.SV.Tsolidus_K ; results.VBR = VBR_bysamp; VBRc_results(i_exp) = results; end for i_exp = 1:n_exps - + if i_exp == 2 + linesty = '--'; + else + linesty = '-'; + end results = VBRc_results(i_exp); - rgb = get_rgb(i_exp, (results.T +273)/(Tsol+273), T_sc_min, dT_rng); - % and plot - subplot(2,1,1) + rgb = vbr_categorical_color(i_exp); + Tnlab = num2str(results.Tn, 3+(results.Tn>=1)); + axes(ax_E) + hold_if(i_exp) + semilogx(results.f_normed, results.E_normed ,'color', rgb, ... + 'linewidth', 1.5, 'linestyle', linesty) + axes(ax_Q) hold_if(i_exp) + loglog(results.f_normed, results.Qinv , 'color', rgb, ... + 'linewidth', 1.5, 'displayname', Tnlab, 'linestyle', linesty) + end - semilogx(results.f_normed, results.E_normed ,'color', rgb) - subplot(2,1,2) + % plot experimental results + delta_systematic = 0.031; + + for i_exp = 1:n_exps + data = combined_data(i_exp); + dporo = data.dporo * data.phi; + mod_fac = 1 / ( 1 - delta_systematic) / (1 - dporo); % correction factor + rgb = vbr_categorical_color(i_exp); + if data.Tn >= 1 + mrkr = 'o'; + mrkr_sz = 5; + mkr_fc = 'w'; + else + mrkr = '.'; + mrkr_sz=15; + mkr_fc = rgb; + end + Tnlab = num2str(data.Tn, 3+(data.Tn>=1)); + axes(ax_E) + hold_if(i_exp) + semilogx(data.f_normed, data.E_normed * mod_fac, mrkr, ... + 'markersize', mrkr_sz, 'color', rgb, 'displayname', Tnlab, ... + 'MarkerFaceColor', mkr_fc) + axes(ax_Q) hold_if(i_exp) - loglog(results.f_normed, results.Qinv , 'color', rgb) + loglog(data.f_normed, data.Qinv, mrkr, 'markersize', mrkr_sz, .... + 'color', rgb, 'displayname', Tnlab, 'MarkerFaceColor', mkr_fc) end + axes(ax_Q) + leg = legend('Location', 'eastoutside', 'Orientation', 'vertical', ... + 'AutoUpdate','off','title','T_n','NumColumns',1); - subplot(2,1,1) + axes(ax_E) xticklabels([]) xlim([1e-2,1e9]) ylim([0,1.1]) xlabel('f / f_M') ylabel("E/E_u") - subplot(2,1,2) + axes(ax_Q) xlim([1e-2,1e9]) ylim([1e-3,2]) xlabel('f / f_M') ylabel("Q^-^1") - ax2pos = get(ax_2, 'Position'); - ax1pos = get(ax_1, 'Position'); - - ax1pos(2) = ax2pos(2) + ax2pos(4); % use the same x axis - set(ax_1, 'Position', ax1pos) - set(ax_2, 'Position', ax2pos) - - leg_pos = get(leg, 'Position'); - leg_pos(2) = ax2pos(2); set(leg, 'Position', leg_pos) saveas(gcf,'./figures/YT24_MQ.png') diff --git a/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m index 27b7f5f..43cc2f1 100644 --- a/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m +++ b/Projects/1_LabData/1_Attenuation/functions/YT24_load_fig7_combined_data.m @@ -59,6 +59,7 @@ single_exp.dg_um = sample_info.dg_um; single_exp.sample_id = sample_id; single_exp.rho_kgm3 = sample_info.rho_kgm3; + single_exp.dporo = (phi > 0) * sample_info.dporo; end function [run_data, sample_info] = load_sample_data(sample_number, full_data_dir) @@ -84,6 +85,7 @@ sample_data.eta_r = 1061*1e12; sample_data.first_Tcycle_index_start_stop = [2, 9]; sample_data.nT = 8; + sample_data.dporo = 0.135; elseif sample_number == 42 sample_data.dg_um = 46.3; sample_data.rho_kgm3 = 1.0111; @@ -91,6 +93,7 @@ sample_data.eta_r = 132 * 1e12; sample_data.first_Tcycle_index_start_stop = [2, 8]; sample_data.nT = 7; + sample_data.dporo = 0.0585; elseif sample_number == 41 sample_data.dg_um = 34.2; sample_data.rho_kgm3 = 1.0111; @@ -98,6 +101,7 @@ sample_data.eta_r = 1433 * 1e12; sample_data.first_Tcycle_index_start_stop = [3, 10]; sample_data.nT = 8; + sample_data.dporo = 0.0178; end end \ No newline at end of file diff --git a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m index d8bd8e5..a9451ba 100644 --- a/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m +++ b/Projects/vbr_core_examples/CB_014_xfit_premelt_extended.m @@ -40,7 +40,7 @@ VBR.in.SV.f = 1; % 1 Hz - f1=figure(); + f1=figure('PaperPosition',[0,0,6,4],'PaperPositionMode','manual'); nTn = numel(Tn_cases); VBR_results = struct(); @@ -68,3 +68,7 @@ end + + saveas(gcf,'./figures/CB_014_xfit_premelt_extended.png') + + diff --git a/docs/_pages/examples/CB_014_xfit_premelt_extended.md b/docs/_pages/examples/CB_014_xfit_premelt_extended.md new file mode 100644 index 0000000..bf84e72 --- /dev/null +++ b/docs/_pages/examples/CB_014_xfit_premelt_extended.md @@ -0,0 +1,86 @@ +--- +permalink: /examples/CB_014_xfit_premelt_extended/ +title: "" +--- + +# CB_014_xfit_premelt_extended.m +## output figures + +!['CB_014_xfit_premelt_extended'](/vbr/assets/images/CBs/CB_014_xfit_premelt_extended.png){:class="img-responsive"} +## contents +```matlab +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% CB_014_xfit_premelt_extended.m +% +% Calls VBR using xfit_premelt method including the direct melt effect, +% from: +% Hatsuki Yamauchi and Yasuko Takei, JGR 2024, "Effect of Melt on +% Polycrystal Anelasticity", https://doi.org/10.1029/2023JB027738 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% put VBR in the path %% + clear; close all + path_to_top_level_vbr='../../'; + addpath(path_to_top_level_vbr) + vbr_init + +%% write method list %% + VBR.in.elastic.methods_list={'anharmonic'}; + VBR.in.anelastic.methods_list={'xfit_premelt'}; + VBR.in.anelastic.xfit_premelt.include_direct_melt_effect = 1; + + % load anharmonic parameters, adjust Gu_0_ol and derivatives to match YT2016 + VBR.in.elastic.anharmonic.Gu_0_ol=72.45; %[GPa] + VBR.in.elastic.anharmonic.dG_dT = -10.94*1e6; % Pa/C (equivalent ot Pa/K) + VBR.in.elastic.anharmonic.dG_dP = 1.987; % GPa / GPa + + + %% Define the Thermodynamic State %% + VBR.in.SV.T_K=1200:5:1500; + VBR.in.SV.T_K=VBR.in.SV.T_K+273; + sz=size(VBR.in.SV.T_K); % temperature [K] + VBR.in.SV.P_GPa = full_nd(2.5, sz); % pressure [GPa] + + Tn_cases = [.96, .98, 1.0, 1.1, 1.1, 1.1, 1.1]; + phi_cases = [0., 0., 0., 0.1, 1, 2, 4]*0.01; + + % remaining state variables (ISV) + VBR.in.SV.dg_um=full_nd(.004*1e6, sz); % grain size [um] + VBR.in.SV.rho = full_nd(3300, sz); % density [kg m^-3] + VBR.in.SV.sig_MPa = full_nd(1, sz); % differential stress [MPa] + VBR.in.SV.f = 1; % 1 Hz + + + f1=figure('PaperPosition',[0,0,6,4],'PaperPositionMode','manual'); + nTn = numel(Tn_cases); + VBR_results = struct(); + + for iTn = 1:nTn + VBRi = VBR; + VBRi.in.SV.phi = full_nd(phi_cases(iTn), sz); + VBRi.in.SV.Tsolidus_K = VBR.in.SV.T_K / Tn_cases(iTn); + [VBRi] = VBR_spine(VBRi) ; + + results.Q = VBRi.out.anelastic.xfit_premelt.Q; + VBR_results(iTn) = results; + + dname = [num2str(Tn_cases(iTn)), ', ', num2str(phi_cases(iTn))]; + figure(f1) + if iTn > 1 + hold all + end + plot(VBR.in.SV.T_K - 273, results.Q, 'displayname', dname, 'linewidth', 1.5) + legend('Location','eastoutside','title', '(Tn, phi)') + xlabel('Temperature [C]', 'fontsize', 12) + ylabel('Qs', 'fontsize', 12) + ylim([0, 200]) + + yticks(0:20:200) + + end + + + saveas(gcf,'./figures/CB_014_xfit_premelt_extended.png') + + +``` diff --git a/docs/_pages/examples/vbrcore.md b/docs/_pages/examples/vbrcore.md index d2e9e27..03b44e0 100644 --- a/docs/_pages/examples/vbrcore.md +++ b/docs/_pages/examples/vbrcore.md @@ -18,3 +18,4 @@ Simple "Cookbook" (CB) scripts demonstrating various use cases of the VBR Calcul * `CB_011_meltEffects.m` [link](/vbr/examples/CB_011_meltEffects/) * `CB_012_simplecrust.m` [link](/vbr/examples/CB_012_simplecrust/) * `CB_013_G_K_inputs.m` [link](/vbr/examples/CB_013_G_K_inputs/) +* `CB_014_xfit_premelt_extended.m` [link](/vbr/examples/CB_014_xfit_premelt_extended/) diff --git a/docs/_pages/vbrmethods/anel/xfitpremelt.md b/docs/_pages/vbrmethods/anel/xfitpremelt.md index 333e3ed..4bdfd82 100644 --- a/docs/_pages/vbrmethods/anel/xfitpremelt.md +++ b/docs/_pages/vbrmethods/anel/xfitpremelt.md @@ -116,3 +116,7 @@ The Project script, `Projects/1_LabData/1_Attenuation/FitData_YT16.m` calculates !['mxwPMLab'](/vbr/assets/images/xfitpremelt1.png){:class="img-responsive"} Data are from figure 10 of Yamauchi and Takei (2016) and are not included in the repository at present. + +The Project script, `Projects/1_LabData/1_Attenuation/FitData_YT24.m` reproduces figure 7 from Yamauchi and Takei (2024). + +!['mxwPMLab'](/vbr/assets/images/xfitpremelt_melt_effects.png){:class="img-responsive"} diff --git a/docs/assets/images/CBs/CB_004_xfit_premelt.png b/docs/assets/images/CBs/CB_004_xfit_premelt.png index 5121429f3d6fb9f7f1f743c82974ebfe79b9c8d7..a0d3d4cde3c5bdd42c135a27cfa9cae03f77474d 100644 GIT binary patch literal 29325 zcmdqJ_dnJD8$YhHQbdt?%*e>zJHkO^hLF7?du7XLh$AH4$dVz9Gr_N z!i(^UF@2sK4vw3yih`W(v*Fb-zfX~#=dGLT^mGFqhI#IRw`>Z`DUAkPwK%`MBOlV$ z&Pj3-S9s;2qrl$!%AVEfTbLfZ6H}`}^DnWo2XkE(qA$k|PhH2x zvlJH(`Y(K3@2cM4mNvfNRBi;%#R;(VbEL6gdlR{LykcgvcV+V>Y)wl+33{Ts*|$G%U*x8yrhLm0e;Rj|dSy>G?$sDwu$y{)JNaNP-qdZBij1t# zXWOPG34f8de%0&W82)E#8ymJ;w^oKrziMZwdj1=z@mT6XAtWzex+HskvYn7X)jh_h z{!z$%zU$AQKT1(F8JU@9NB{D7m;3Llsa?H%8FNgHLo-zBpkMAZrmd~LxK~hcyjHb7 z|0}6K_hDzC@e_cYp#>`QBk^arJMXKe#@3yY-|q__@?s8$9v#`II%Htab9yBAF%h? znr-(j$KzwZ+4|~nmDgpaA)(i9&(dUSfU`(7JO zYSH$V$=uxht6pA5M+f$nK9asW*}Y4n#kLyBvX85uxyJK6PD7)UL>whN7XRFj=UEyv zxf|3P%|IzX%Px9xgHbFZf`W^PNs3yFaLTKS*R+<7ifZxoyPio;W8+T?GIDZq+=e9; zE>j_~k{2$06m>QUl>I35q-SHQDVk3F`i&bpMON+U>FMz%zU{@v65`@RhgtVtk}RD{ z;jE@-W)d;w>gDBn-@^&D$ToxlF!A%db|vt$s>Z&Gi1-0}1pBLzEOpqYqw#_Bp(=I= z*BE4sGu09WtUIjE6<;0oA&hdkkCt2STsk3U!k1$c`2V|QsOw` zweb6M&*yvh?(GK32YaPY9*j8G?Ji<0&(BWbN!dDC57x(P{tf2md-vkp`!db`>A?aR zB#&wB$*6m`qM{<0rTyk~^X1EzS&*pMwYSO1$%%=NV0d(OR5x$3otfm~Ml#CC)cWnO z9cCy^HTS)loSc+ABd5yV&HCAvtuj7wIK5RBAbr+woAVHp8+_s4Nubhphf=#Z6Jn5y z?~R$VcF9SovcK9hJYM^8zx^F+IH~@3V~!oBPY<%j zyRQ$sRvI6Pn86Z@I*pRb`)@W=%AOrqu1U^{?!ux`RC%px=Z37Amao(F_?fqKh5t@8 z84v1wmcn4C__%I(!2Cr}x7|VWTa2}U((y6V1h;WA-O zQycSM-Lmc{NYr`!vu%UQbIIeFVg}6yrTK$v#L1q41VVkq1I-2IO>`tkRaMnJ+Tx-j z`@!#H=_>E(yw471q7fvmJsJ0}h)rt9p3b_6_4M}E_;{R~AdjIOo z;N#fyZv?!rwU-~+20f1)TJ7IBJ6@NhLv_oZSO4+rI7!eh7^&)C&j@7Dtg&?*(eUFQ z3dlZ!EyP-t7P;r%mnrA+qaQ&XImQ^7|Tpc6pUr%Z(%rn133dni*vekO6jA&HPZ%phNWM=d;uR( zc^-&|crq;?MI)RZRQ9BoO;FGszLqRmF}6lbD-!ndB@)RcGDr94E;!#y7cchoy2pJ< zf1`Qd6FE~=ak3_Wh(6rmB1p-eHE7CuDz&KpNev~H#=iF0@H3Lm+uNv10?DS*475qVk>aJ&bB&(CSJ z#&3VL(w*yJ?#`ck*Pcw=a`*IWqSwr@9KP{2w|NnRPI)%{dZ{<-_U+q)IXVlC;a6l& zcXagh2EYfeS1!;m$$;ym5wiPJ;W{JXwelBSTVG!v7@?AqQtiR?8(&d|jYo%DbKqD% z#l^9$>T-&Ett9NQtd7h$uovE|B=e=_w+QoSAHutGQ#aq_v@b`8gM$Mc=d<;i{R#z1 z#%wVnCT3>lckkbu1|H5q{5(HdkiD&u{B)>j4!qV6@Ac$UCuzUEPkiQ$W8M>=KYj8C zZyFXB_Vee@QLd{vGlIK)S9H>qGCHE%_>@;u3`^|;cKh|CrT6|GZZGKPn_%shSvRE@zzfUHKP&T^l_FX6!Ut;p$s{k&iuu#Z0m#(YJw77$@OM16ct&S=tZ2u4UDBhCp@AZYEd|5%y6$3>j*jfL|R56D&3VrZz-@y)Qfk*3guok{p& z0WJKA+rar8ktuSqfC+x-e*||$R+0r%lhIwEdc&d3655Be@_Lf+?&Frx(wM$QIeXkm zX}FMr+G|j$E{5j9U+M<3V8d^s@JGV>c^HZ=1{_agWa7AK^WUu;%)3tyZd2ysKV`+@ zw}Q-YYQe`m@$udwf%dW8@8*=2SlJ{m?#VTi1^@ov_;BQ0aKG?sqvMsMa3X`@!J_F( zywu{tCdPr~A;?Q+E-?HfMq%If$sEk&$n6W7H{tmt%26iF!Wa3-VPttRG&Ksaph9rr zM`mH)*D$VN7+1+X`Lr-MOmZ+=;Y$BqK!9B-3jzv?&`&(^ok@~{Ia+LwUu1oLkQEY5 zSby-}*R8F{)$C){^HrjH?yLFZu7tu0Xq*viTwxPFd#w_MQ=$N)q^-LW6`~R)Psk>G z@edu`RfZ}#?zOZxj$Jfd?qFjq&3#8&Np^K!qJ_gn|N;f8ltGU=t%ir@-u)@F1x;@LE@X;#ctG$1s^?|A@26z%ERvu ziT~omeUc4uXUx+IpVZ~^k<_oi_&l2ami+Xv>{U>zFT?&i>75$m*&Ckrhw!d6b`LGa zN(d}_2izfY<-Gj&d;RnF^AH$zcJq=45mQlqp3PH3i^Reww>vG)eiv?0n2O%ee9e6L zVdwQIc17Q@2oUw6)VZjr!%JH-GvX5t?CwTb$?*2xKJ3xMUSR#a@ChCZ+UzOK{M6h? zS+KuKW(hsmQE5Rx>ZNr{=JQdaXVDAs9G7F~6|r*;Mc5?l`}Vd(M~29=bTQUldp`R7 z9s84;Fw|U^Z~lt@liQpZ{za+Zpng8;)~b+}{s?k2s*9Gr;TBJ6ZtB^^-a^vg!aDqp z0%P2haRjD77_D0?ErhbRJBnl7dr?y%W3RlYJK8u$${(ipdx32P5e8X+= z6)pz@jP(aqG7nX_($|jl*&FOp!T%@pj64g`L%Z17QoT@eYL2_}FDD7>?}817 z_GMRb&p7AqA4M3e@cW@=GxTrbwVhxWFdSwRGWF#C8-#A(oSO=7$x9LJ3SB39D-M7D zpD{>Py(jM?$-(%BgI`f15jR;}foq;j}wOcjL@n-SBt|x6LB@JE<8D2**RnDf1 zNDZM3cHLjj>9E{4pS+==k9qds*5&K}efS)q%@VG3fXo+wPsSPHGMXHWbGlMh`{Nh4 z9OeLN>Iq|Meos-SptT&!+5){){~dzqgutL;7C%8wkj02bT!KHh9L+%rOcZzW8wc z7M`*s3&at!94!)UH0zTTMvlAka_}U3CgBb_`x2>N*h|=7f%#GVPBc=93SFTuCRn(~L|t4(W3{`FQZ^A}L*rP6LLo&Oqf$*jx;a<07PVo12?} zKj>uxt2OEt+u!8gWPBa{hrWTVww;%8o+MU5<)EW&PDvY0TsgMZ5K3TL<)!{xu80z@ z8X{v*kC-I1o<+TetHSyS(T6L=-H;l5Z%cg@eaIy95!TtBLrnELa||MfOv!!mPpZm$ zHb~O{)jz+aiqPp_ivEeT1E;(Sr%`-4W)>D#xY5pOqV}|f))_$MHEMy`%7tW|y-7~> zpj$HXw7AGc7Nqvhtn&5rvA=@Cjgydl76qN3Rk|<4K~7qO)Ut$$5|)zDnG+^gx4D#k z5c~XqDU9p<$~78s;oJ@ZY>X^Rh>eXMDz?3S>lS3kRui=W0^P5_7F=<@&aiD&e_+=> zz6N|zBy0E7)9dLf6ek~^Z1lA;mWrmw|5Y{3rlzKLuHIAv9EX3EigDr7LBv7A?R(9w zbot*t{HW0&MDcwewN}1@Oh9)*; z6Nl)F5Abp@7I%7A7rIl3T)J9qDDfMPRQW-J>2NeP$(b_K~H=^w5QI9@3S-ov^#QynH2fkJ)POqEYXy6ifw zxK)xzM(Z-T3- zqcNBp$Bd@g#CYg`E^PlnZNwzjNW^|uUIsrW^^Wi~dWpxd?FaQg_*DBpQ&O^=bz{jP za zg2@MV+n$1v#z`~{WCN`SrL|X+X*fjXEjx|ENBoC`Sq3weT*4lcGQ`m4kp18rEOJo# z9)oBg+mrY2ONi-=N>@_Ey=t)Vr;3=(I?j49(wIdugk`1e217e4SHR6aj5%F2#y#VN zWhj1g@E4z36a?7<-hF~R4(Z&i-YV9}Pw=otOw%#t%R`2__e$S0meJbjF%CIL+20^L^2v?nbiE_Knj_Qb zjAbv^MGR7UmyEUc?e~mUw)-uZBXk)Y{f3T5VBU_mgJJ6kb{u%W3ol{!&cBv!q#DkHo9M zdch64R_xMVM@Jfu5I1Ns;LR#a6xKpicZ{V?eQx_ZgI(KKsQD*y0RDWh|9rcXx6U7^ zgX6tbU?)EIF0G7|ub=Kuq|C^?q2x6wvBOL?y}TdGjw!P4lnccVf9bbtvzPNl{gn{m z`83**fYN~fW%)c*ydvdpnOYnnZb6sShO)zZPDqN3%2JR`8G zUrD0-Kn}G;Qs)_+?@oz5=}Au%w0-g7Ma$2hKv}V|vLYlr*!lVSZ{1QDYOz|c3R6b# zyXEoX=S02s4%0|)W0#c?aLfDECOlDW;yN-u*BMVMY_D4vc=}n=TeTcWfrW9ub;q7` z6&ssOkIv_p2<-cF`yne6wEeAI9!W1fJmpfo{abQe3iyq;6A$zkB6`kuWX#K0j)HiP zg4X9gQ~2cN$<60bX$7SftyXS$3V%q>$s7ORQ%kwHN00X@;^(WQ2q^_f!HGnkZMe_Ac`CV$|V zBHql*B&!x%L^NgX_e?qeoq4CS)xE0^-!KFoFflSt7PiuN2F@I>*PR1_;&)bQ*@~*K zudk>O>*oF+m1t0C(fs{!6^*ccx^<{@sYmx+k$z9&0y`zatJ<_TLi@I;{bz@btHRwg zsB1{+nt@PiYHH%r%`O1uXspWHwAQ~;FVFCr)JCxFR@%s_jQ@cPmMe_qcz;TXAbCkT z4FnqvL2Dh&-H^VU#q`4UiWX)*aGXno2j_qM7A~gWwb-A0wmtvrtA74Kw${vQ`GiS< z+4F@x&WE{bz(m5 zr^!c)TIb)`uuI!_tu<^e_kWdt1@v!vyd8Gu4y!x`WQ#A-x5U4ZdFf z6(rGgbw)*2Doj5iTO|sJ1xzLJ`S(hBcFBtr+?=SDrU7x2M{STY^2g9TwD{YD=Ii&0 zeoFD3zlxw0`11Sb{9Y>t-Sd(GM?2yHM;_YRJ)#r-+dpq;#KNE%85yOe7s9>sA6K!R zeUrR-$4e6f4^TbNTei`q2e>!(*fogQ=={_f$1Qz=D*c5tb-@n1E>)$7-;&nG_w)B- zp_X=bc96sa?E=~QhtoX*`e%$B97_;mJ8jE)*~=D6B6GyD8W4+Prb>*vZ1(iNQoPXCw5-QBzF-T=K z9v8?q9_Z zvL|meexz#JviUUJsXruB6m+pI1t+g9jXHJo8}jw^h%`|@+t+M~f0(kAJ>1rF6(C>L z)YR0~iLYJDH!26T6#z6@;*1QJ-Zz7?r$ev~#&Ga~8U|K7um>d-zJ>P7k!}|ym_}s%BL}_=lZ4TTS5_nZntA#;E--4$9~TZjn6La`??3sUnr(@ zg;PDXzi8qHLygtQQcop?3#Y*iOSM2G^^cmD8d;5v$GZs@&5>{SG3MZ^n=wC2zF{$l zs`*=*w+2-^b|>Zza!VMe1y{Q9#`-HVt6t($ zddG{!eJVSCIBtG5mX<=UQcEr{h)*>GnRB$rkh8-MSYjiVe(t?$wDztRSu(Fq2FYUT z5M}ldc4Fe0e{#LeS+D(KbJX_(irHA_jP+=avJH?@jm9BiZ;?_bq!lCcWpqp=!bN!sOe`+WOFt|!{0X6#;P%)d|# zU5i;7!?e+CLj0V5mW5CZu(}%lJKcf{+ESZZBv1Yt#>D(9{Os)qrqf4Tw)Yb`d)K8e zarg#!Gt3>D>y)U=em|eIyYn&1 z`0J@c!Y-j;+9=_}M^6UO%(s7fB<->X8VE9r(U4>y4PL+Qh$>T!`tt^$wm?d_qkdNb z2F)l&a})lC<6v?1jT^ew$_9Cufqap7+Eh>qe@e8;K$fNuW+2(a-B|A2n`h{MK~tue zyVF)s%0WsO^&qqd9p@*Vd&AAQy6 z9`O}H8&1EwFh7Xk#9TIReD}RdxI@rS4A5{xVH}6;8J#}H3}m9l=w#DCZs7CbH?+%8 z10bSzR5*Q|TejCY*xx6Oa4H{J_453l-GH{!7#bYziuw)O; zleO>Pe^bnPC@1DSTPU0YFxk?O$JPd}F;iFHQq8%iLVj|w6pO^{WQJqu`vY(GA*Q6g zPF_?VNC%^pmoV!#f=`K^N$J#8LLWsBUo{e(BRjJ2V$o%`T@z~>7~+5G2rOX~`?2Wz zpBK4o61HB+7qa2cvu5pNuSZZj5wlm=^sNdrcfc8kJ*BKWC$#-5LGU6E zIGb!l^S{;WT*O9Sk4X7gz%KA#&pv6bN@(f8m4~Uw%(w z#8uRZF6y+NWoQjuG2jb9Yw`oz|{uK z-8R%AljJbboKnI^28K$v7kP{>I+0#>b3WOPx@)jIV3GJ;mf`rEOzp0lR&W*umM zdn@F$#Z226!oJR)4L)4C0%*Sw;X!S}$CF3=X~ z#}jX!Q@Tk;N37n@5zSee=;({XDCy1}AG57ST+wHE<|@^OI!EstRC2eaTuyC?Mefc^ z{^Uk#D$5GuN`k;0PvcE(;hZlA2g}p|umn>|8S2Q1YpB0%s{~Ot?dsY(kWc z#g93GJEdjfS-ndh61z@#x8o!=a70&9ThS*u z+Sbg@pXQjsT}x8N*i%RRo&|B99JlSR|7yG$ecifF!f|9ZN6fwfin-b&I+rPUzTGNp z(RO&qa1kdqZL{AxTau_>X?5krWHuRIdDgqP2zM6Ak7UKP9~xJbdYL4BqgU+caFMIn z2ZyaB&<>FWzdk6h!W+^eDMG8^BJ&biB|my6(HEg#YdYzI#ccPuCD9|w32sXo;x}j! zz%=chd(ka1(rqZ5F2&9jcH1||A{H=HO?Zyo-;XPVa+PEUk~&W}mA!Bqv_vCpk?!g~ zv+o9iwW+eot`?!=+fWkBV$1FG_w!2IQL*$^3}>?6*QRuqfh zTSO@=l#MH3W~jbbK^0X?OA89NlOPWX+*#DBq1~mNu|-t!g{(9zV_=*Ah%|~C`h<90)`t)bTHvjQ( z{>^Q;pGF>($+E1Wdy??(imATNQX4(i<1_r6a>*WhP}~;C+2?mi?$h6;xN~l@&Nge6 z;Uw$3WB0O&-*wuQ!CFN{h2-T-PFAwOaL&fe_CTF?+Qhm*V!*>Q{VZ+Mk3NBq4Rc10 z!y?c(mEzkq(>ETBVW+9-jay*d8Ta<>TYVFsX7|pSXjzj~`EaP1g3f1oOd>$j+p1nd zG6by@`>{mMOLwM?9`F%er$wJ06l)>P2jW2LI0`Fx@PSk>Np#m~Y~t@!n!r{Jf&%H% zM>3=(Q-r22yo1lS)l6xs_DPKYm|N0oMJ({-nXay`vhu6(yw3K6_Xul&K6z?oLexiQ z$qu9!?w99~fly{YA-OFE~tiie9E3-Tn}?qm(=-9E_8A^WheG14X7m3jIh z?O2|g9pWVIe};)egw+WpIoDPKX+c*G5)C3IsI{WKFHzW(hYP5A>B8~U=&(U%OtTE} z6BMC?$|CD>v@0<$*hTHpx;fe)F;Z7m?QlKboM{aw^`6LEQW6O?E3!-_??P=|v(Uyx zepYe5r1*X5yV+9AO2VZfjOJ6Z2gHuCyr$zz9!?;08T(P!_zPH*`R)``5Ep@VtA^G< z4DL`tlM24(RN9@VIk;)SsugUzHUcrb%Bfo~rW8$&prbqK;L7({9rm28e=hC2^9<5& zSaL{-D9FfCz5i8P9Ig-sK=aZa=%bkND<1KX$S#(yBvFm^+o=dy z8JpANlbvH0tq#=L>67$6Z&rUr7a?YF$KagaVF`2Z8)`~5(T`Z(osr=6B$lyBOZ&*0UymQC9?=pN; z_v*t_L`LCNj5*beXp(02a%>aw#NS`Pja4gsvSAlK*B=snQ8c7Qm^!XNM=WzDRj4%Y z;KA83wg$;65Z*;5HNF^(gt7Wxu`Fg$Q(4Q?#m#{6PY+5T71HmQiL)I;`QGW@X2!;Gr1{r@4PxVAY zCM@DM+ZG&*Q!`?xHxGg6SArP|jb~E=$v?CEMS^XFwM8vUSGcpLGpJc+fKHconY^o~ z7e_i>cYeAK^iE@AV{+ipQq|fI2jJv~c*Ti-u}L1O|F%Mw;SNS(LMI!G&bM^m8El_dts@ z;kRB>4j!(D8{{M4Oe@A6h3I&0>+tCrPI0+D!nDMe=6X;=O)x z|D&ZWkn}{ne(eMCEdAOmG8U!k{c%5V&QCQpH9?oA6iJopO?#y^p){VV7+*6uAt9kN zo>wDLU=DOHI+X}%ip_a+m(O;69b-g zFwaPTxN5Wgb_yMo#Yoe@8T*!FB-C~i+c~KpCf*S{+Z%BPatLHVv7~7rtpNorM41nP zeHr)TH#Rmvzoxq`;`?T0k+lfz$p0WJWub-a*MRfj4_X-h_o5W|3$QF+i?_Bub z@Nwr_Lf{B5AMO4da?W{FJP+(rwRzJEargOA&%wt%Q4moSj!d}YLPb#sc`7anwL0DlNun&V9ya1V>WFiz~E%;nzWK3P!2%CFw)0Bs(a z(5HzpPW|tnYJTG2B`#iizmk3ZeN8F-v&rX?k&zGxKqRO@h{@JM&$LE650|JAx}KdJ zrUV}4xXpFI8roVRd1DY4l16}Hhh1F%@$Wl_P9{|0uw}mEtxn$VWa+QoRcetJ91g$; z3$f;&`w&Q~&qAA(if?X$dKXyKC2--bC`4~>??|abmN)IG9CpBDH(SI!Q$a-xH2Di+ z+OojYBhYLO=9`|s;jINjZ`J{;fIXcZpP;lis~?_+Wnf`uhR_A7$aC0vA|{xbl>fm7 z5N}T7)rX+oavUz=+1|sng9?22kLpdEeWba}leq&RRUL>1tJt%+6O%0zISd#?`AP z*E1$DqfYx!9QYvpr8PYNYx|++x~W6wdv{Lb&s@u6{)o1qO7joo|wbki!S+c{A_oR5mEo<4mF zv2WMu)x~VU(Ld1PL&c+QVx|62^jpTDTVYp39EW#$?(<^HDojjr>q?K}S}qN^@tNh_ zamQ^1sozyY=o zubm3{zwA7mO2Weq6x%3Tn7|>^y%&pPLe5awjPIQ5&1csR)Py9W!=y-O=-;C&Onp_; zxj}=)do!hFoOK%E#9SyFUeV=|RXF+2z`>l=tR__Hb&rJL%FvAT=B&<%kF%yUkQuu+A+Ke zgfrJ3Lh1G{;U>tF0|3N;Fd2(BVI={i@P--u@W>g@(}`#P;G>u+C168b9}F2lD8O6- zJiPvVQ&}FK?+;COoY3tBd6pLvmJVcn^M7+FfS$W)s={MQdyf_bUQJVWgWo@o=WWM* zVoi&peu%_}|4`!JD=%IDdc*8E1a$#^WX^-n z5=%=RoVLa(VDGm6@C3*cu|i-lWTY zhfF@3?@C-;v|D$cs4;3MOv6tc(rTj}*Ip*R=M~EDa|0b(2n zsXhpWp+eW#L{atN!mZ`icS)ZoOkYK;c&(JrQdzPK-c=lJ?I`&@ z+7~PAFGGf0f4(B)tvhj(mv02bZ3?B%wXrI$5#9P>z<}85DK;#FR1#CgJuv$(D?5lG zTA+^f^d1J|taJ^asm%E^pc#>v!>rEg`kUo+K@_Qg~R{>|d`AO^^TxKt*f4 z_W1Xzm#BT89adue-5|p36HOpi#R@GQP|j1Z7b52-__oU}F&sZmt1>KqVI*w1O0
Pz}z5UzqOGZ~%=_69pddBQcGLbP`( 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 Q|4D7$xXtLEfo;(L0Hp!X7ytkO literal 29559 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

_4*dIL|I~@FO1r;=`btb__^D8MO5t4K7 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/xfitpremelt_melt_effects.png b/docs/assets/images/xfitpremelt_melt_effects.png new file mode 100644 index 0000000000000000000000000000000000000000..059f5c0dcd4acdd6d7355cb2f9152f1aefd1b41b GIT binary patch literal 126594 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

vg|%lfeR*^x!9!yw&KljgGe%zgr3-f~fe#n3Ag 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 )n_wli?9Jhvu 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%0Dl2+G^G!UOGto9mXDUU0MJAL5*i?T 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 H|M`Cacit>X literal 0 HcmV?d00001 diff --git a/vbr/support/vbr_categorical_cmap_array.m b/vbr/support/vbr_categorical_cmap_array.m new file mode 100644 index 0000000..0b9c193 --- /dev/null +++ b/vbr/support/vbr_categorical_cmap_array.m @@ -0,0 +1,39 @@ +function x = vbr_categorical_cmap_array() + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % x = vbr_categorical_cmap_array() + % + % return an array of rgb values for a categorical colormap. + % + % colormap was generated with http://vrl.cs.brown.edu/color , see: + % Gramazio et al., 2017, IEEE Transactions on Visualization and Computer + % Graphics, "Colorgorical: creating discriminable and preferable color + % palettes for information visualization" + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + x = [get_cat_rgb(88,181,225); ... + get_cat_rgb(55,9,35); ... + get_cat_rgb(65,210,107); ... + get_cat_rgb(177,20,120); ... + get_cat_rgb(175,211,90); ... + get_cat_rgb(46,14,186); ... + get_cat_rgb(120,140,59); ... + get_cat_rgb(67,70,171); ... + get_cat_rgb(46,236,230); ... + get_cat_rgb(0,42,51); ... + get_cat_rgb(253,199,204); ... + get_cat_rgb(104,60,0); ... + get_cat_rgb(192,104,252); ... + get_cat_rgb(250,209,57); ... + get_cat_rgb(64,96,135); ... + get_cat_rgb(35,137,16); ... + get_cat_rgb(242,49,252); ... + get_cat_rgb(55,78,7); ... + get_cat_rgb(161,143,248); ... + get_cat_rgb(247,147,2)]; + +end + +function rgb = get_cat_rgb(r, g, b) + rgb = [r, g, b] / 255; +end \ No newline at end of file diff --git a/vbr/support/vbr_categorical_color.m b/vbr/support/vbr_categorical_color.m new file mode 100644 index 0000000..ab72fb9 --- /dev/null +++ b/vbr/support/vbr_categorical_color.m @@ -0,0 +1,23 @@ +function rgb = vbr_categorical_color(iclr) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % rgb = vbr_categorical_color(iclr) + % + % return a single rgb value from the vbr_categorical_cmap_array. + % + % Parameters + % ---------- + % iclr + % the index to sample from the colormap. Will be wrapped to be within + % the bounds of the colormap. + % + % Output + % ------ + % rgb + % 3-element array of floating point rgb values in (0,1) range + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + rgbs = vbr_categorical_cmap_array(); + ncolors = size(rgbs)(1); + iclr = ncolors - mod(iclr, ncolors); + rgb = rgbs(iclr, :); +end \ No newline at end of file diff --git a/vbr/testing/test_utilities_vbr_categorical_cmap.m b/vbr/testing/test_utilities_vbr_categorical_cmap.m new file mode 100644 index 0000000..261f964 --- /dev/null +++ b/vbr/testing/test_utilities_vbr_categorical_cmap.m @@ -0,0 +1,36 @@ +function TestResult = test_utilities_vbr_categorical_cmap() +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TestResult = test_utilities_vbr_categorical_cmap() +% +% test the categorical colormap +% +% Parameters +% ---------- +% none +% +% Output +% ------ +% TestResult struct with fields: +% .passed True if passed, False otherwise. +% .fail_message Message to display if false +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + TestResult.passed = true; + TestResult.fail_message = ''; + + x = vbr_categorical_cmap_array(); + if max(x) > 1 + msg = 'colormap rgb values contain value > 1'; + TestResult.passed = false; + TestResult.fail_message = msg; + end + + rgb_1 = vbr_categorical_color(1); + rgb_n1 = vbr_categorical_color(numel(x)+1); + if all(rgb_1==rgb_n1) == 0 + msg = 'categorical colormap sample incorrectly wrapped'; + TestResult.passed = false; + TestResult.fail_message = msg; + end + +end \ No newline at end of file diff --git a/vbr/testing/test_vbrcore_007_G_K_TP.m b/vbr/testing/test_vbrcore_007_G_K_TP.m index 71d73c2..587c2c6 100644 --- a/vbr/testing/test_vbrcore_007_G_K_TP.m +++ b/vbr/testing/test_vbrcore_007_G_K_TP.m @@ -70,4 +70,5 @@ VBR.in.elastic.methods_list={'anharmonic';'anh_poro';}; VBR.in.anelastic.methods_list={'eburgers_psp';'andrade_psp';'xfit_mxw'}; VBR.in.viscous.methods_list={'HZK2011'}; + VBR.in.elastic.quiet = 1; end From 879aebe6abd37269d23cff3ffb50ea223035880b Mon Sep 17 00:00:00 2001 From: chrishavlin Date: Fri, 19 Apr 2024 16:11:29 -0500 Subject: [PATCH 20/20] fix test --- vbr/support/vbr_categorical_color.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vbr/support/vbr_categorical_color.m b/vbr/support/vbr_categorical_color.m index ab72fb9..29e09ef 100644 --- a/vbr/support/vbr_categorical_color.m +++ b/vbr/support/vbr_categorical_color.m @@ -17,7 +17,8 @@ % 3-element array of floating point rgb values in (0,1) range %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% rgbs = vbr_categorical_cmap_array(); - ncolors = size(rgbs)(1); + ncolors = size(rgbs); + ncolors = ncolors(1); iclr = ncolors - mod(iclr, ncolors); rgb = rgbs(iclr, :); end \ No newline at end of file