HK2003
Steady state olivine flow law from Hirth and Kohlstedt, 2003, In Inside the Subduction Factory, J. Eiler (Ed.). DOI.
Requires
The following state variable arrays are required:
VBR.in.SV.T_K % temperature [K]
VBR.in.SV.P_GPa % pressure [GPa]
VBR.in.SV.dg_um % grain size [um]
VBR.in.SV.sig_MPa % differential stress [MPa]
VBR.in.SV.phi % melt fraction / porosity
Calling Procedure
% set required state variables
clear
VBR.in.SV.T_K = linspace(800,1200,10)+273; % temperature [K]
VBR.in.SV.P_GPa = 2 * ones(size(VBR.in.SV.T_K)); % pressure [GPa]
VBR.in.SV.dg_um = 4 * ones(size(VBR.in.SV.T_K)); % grain size [um]
VBR.in.SV.sig_MPa = 10 * ones(size(VBR.in.SV.T_K)); % differential stress [MPa]
VBR.in.SV.phi = 0.01 * ones(size(VBR.in.SV.T_K)); % melt fraction / porosity
% add to viscous methods list
VBR.in.viscous.methods_list={'HK2003'};
% call VBR_spine
[VBR] = VBR_spine(VBR) ;
Parameters
Parameters, including flow law parameters can be explored by loading them into the workspace with
VBR.in.viscous.HK2003 = Params_Viscous('HK2003');
disp(VBR.in.viscous.HK2003)
Setting the top-level values within VBR.in.viscous.HK2003
can be done directly before calling VBR_spine
, but to overwrite flow law parameters, you must first load the full parameter structure into the workspace and then modify the parameters within the substructure for each deformation mechanism. For example, to change the diffusion creep activation energy:
clear
VBR.in.SV.T_K = linspace(800,1200,10)+273; % temperature [K]
VBR.in.SV.P_GPa = 2 * ones(size(VBR.in.SV.T_K)); % pressure [GPa]
VBR.in.SV.dg_um = 4 * ones(size(VBR.in.SV.T_K)); % grain size [um]
VBR.in.SV.sig_MPa = 10 * ones(size(VBR.in.SV.T_K)); % differential stress [MPa]
VBR.in.SV.phi = 0.01 * ones(size(VBR.in.SV.T_K)); % melt fraction / porosity
% add to viscous methods list
VBR.in.viscous.methods_list={'HK2003'};
% adjust activation energy of diffusion creep
VBR.in.viscous.HK2003 = Params_Viscous('HK2003');
VBR.in.viscous.HK2003.diff.Q = 400000;
% call VBR_spine
[VBR] = VBR_spine(VBR) ;
Output
Output is stored in VBR.out.viscous.HK2003
.
>> disp(fieldnames(VBR.out.viscous.HK2003))
{
[1,1] = diff
[2,1] = disl
[3,1] = gbs
[4,1] = sr_tot
[5,1] = eta_total
}
sr_tot
andeta_total
are the total strain rate and effective viscosity for all deformation mechanisms.- each deformation mechanism has its own substructure,
diff
,disl
andgbs
with the strain rate and effective viscosity calculated just for that mechanism:
>> disp(fieldnames(VBR.out.viscous.HK2003.diff))
{
[1,1] = sr
[2,1] = eta
}
Small-melt effects
See the documentation on the Small Melt Effect for relevant discussion and parameters.