backstress_linear
The backstress_linear
anelastic method is an implementation of the linearized backstress model of dislocation-based dissipation from Hein et al., 2025, https://doi.org/10.22541/essoar.174326672.28941810/v1 . Note that the current implementation is based on the pre-print, and the model here will be updated pending pre-print review.
Note: this method is new in VBRc 2.0.0 and still needs a bit of work to verify it is working correctly. Feel free to try it out and please report any issues!
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_dc_MPa % bias stress [MPa]
VBR.in.SV.rho % density in kg m<sup>-3</sup>
Calling Procedure
% set required state variables
clear
% set up methods
VBR.in.anelastic.methods_list = {'backstress_linear'};
VBR.in.elastic.methods_list = {'anharmonic'};
% use the same anharmonic scaling as Hein et al., 2025
VBR.in.elastic.anharmonic = Params_Elastic('anharmonic');
VBR.in.elastic.anharmonic.temperature_scaling = 'isaak';
VBR.in.elastic.anharmonic.pressure_scaling = 'abramson';
% set state variables
VBR.in.SV.T_K = [1300, 1400, 1500] + 273;
sz = size(VBR.in.SV.T_K);
VBR.in.SV.sig_dc_MPa = full_nd(3., sz);
VBR.in.SV.dg_um = full_nd(0.001 * 1e6, sz);
% following are needed for anharmonic calculation
VBR.in.SV.P_GPa = full_nd(5., sz);
VBR.in.SV.rho = full_nd(3300, sz);
VBR.in.SV.f = logspace(-8, 0, 500);%[0.001, 0.01];
% calculations
VBR = VBR_spine(VBR);
Output
Output is stored in VBR.out.anelastic.backstress_linear
:
>> disp(fieldnames(VBR.out.anelastic.backstress_linear))
{
[1,1] = Qinv
[2,1] = J1
[3,1] = J2
[4,1] = M
[5,1] = V
[6,1] = Vave
[7,1] = valid_f
[8,1] = omega_o
[9,1] = units
}
The following fields are frequency dependent: J1
,J2
,Q
,Qinv
,M
, V
and valid_f
. For this method, M
is the relaxed Young’s modulus (and J1
, J2
are the real and complex portion of the complex Young’s modulus). To calculate seismic velocities, the VBRc assumes that anelastic effects on bulk modulus are negligible, so the relaxed shear modulus can be calculated from the relaxed young’s modulus and the unrelaxed bulk modulus using standard relationships for isotropic linear elastic materials.
In addition to the usual outputs, the linear backstress model includes a calculation of the model’s characteristic angular frequency, omega_o
, for each thermodynamic state. The corresponding output, valid_f
, is a boolean matrix of the same shape as the frequency-dependent variables where the value is 1 if when the frequency is greater than omega_o / 10
, indicating the regions where the linearized model is expected to be a good fit for the full backstress model (see Hein et al., 2025). This allows you to plot or highlight just the regions that are valid, e.g., see the cookbook example, CB_017_backstress_model.m
:
Parameters
To view the full list of parameters,
VBR.in.anelastic.backstress_linear = Params_Anelastic('backstress_linear');
disp(VBR.in.anelastic.backstress_linear)
copying only relevant ones:
func_name = Q_backstress_linear
citations =
{
[1,1] = Hein et al., 2025, ESS Open Archive (Submitted to JGR Solid Earth ), https://doi.org/10.22541/essoar.174326672.28941810/v1
}
description = Linearized backstress model.
sig_p_sig_dc_factor = 0.8000
burgers_vector_nm = 0.5000
Beta = 2
Q_J_per_mol = 450000
A = 8.7096e+06
pierls_barrier_GPa = 3.1000
G_UR = 65
M_GPa = 135
SV_required =
{
[1,1] = T_K
[2,1] = sig_dc_MPa
[3,1] = dg_um
}
Some notes on the above fields (see Hein et al, 2025 for more details):
sig_p_sig_dc_factor
: the stress ratio of Taylor stress to bias stressM_GPa
: the hardening modulusQ_J_per_mol
: activation energy,dF
used by Hein et al.Beta
: geometric factorA
: arrhensious pre-exponentional factor for low-temperature plasticityG_UR
: is the fixed shear modulus, not actually used by the VBRc but included here for reference. The VBRc uses output from the anharmonic calculation.