Release Notes

v2.1.0

This release features a number of new methods (a steady state viscosity for the dislocation-based backstress model, an implementation of the Warren & Hirth 2006 grain size piezometer and a new analytical maxwell anelastic model) as well a new reference anharmonic scaling for the upper mantle.

New Features

New Methods!

  • Viscous backstress by @Diede-Hein in https://github.com/vbr-calc/vbr/pull/206 . link to docs.
  • Adding the Warren & Hirth (2006) Piezometer function by @Diede-Hein in https://github.com/vbr-calc/vbr/pull/221 . See the link to docs for details.
  • add analytical maxwell model by @chrishavlin in https://github.com/vbr-calc/vbr/pull/216 link to docs

Upper mantle anharmonic reference

The following contributions are all related to the new upper_mantle reference scaling, see the anharmonic docs for details:

  • some accumulated changes that are nice by @eilonzach in https://github.com/vbr-calc/vbr/pull/202
  • Custom anharmonic scaling structures and preserving nested paramater structures by @chrishavlin in https://github.com/vbr-calc/vbr/pull/209
  • adding upper_mantle ref value switches, density helper functions by @chrishavlin in https://github.com/vbr-calc/vbr/pull/203

Other new features

  • add a Qinv function, use it everywhere by @chrishavlin in https://github.com/vbr-calc/vbr/pull/205

Changes

A couple of updates to the linearized backstress model:

  • replace sig_dc_MPa with sig_MPa: its the same! by @chrishavlin in https://github.com/vbr-calc/vbr/pull/197
  • backstress_linear: calculate and output values for shear modulus by @chrishavlin in https://github.com/vbr-calc/vbr/pull/199
  • use shear modulus for backstress Q too by @chrishavlin in https://github.com/vbr-calc/vbr/pull/200

Bug fixes

  • BUG: fix default behavior for density_from_vbrc by @chrishavlin in https://github.com/vbr-calc/vbr/pull/224

Documentation

Supporting methods

The following changes are related to the new supporting methods page, where you can check out all the functions that are available in the VBRc but until now were not obviously documented.

  • Documenting extra funcs by @chrishavlin in https://github.com/vbr-calc/vbr/pull/211
  • fix formatting, links on new supporting func page by @chrishavlin in https://github.com/vbr-calc/vbr/pull/212
  • fix header levels on support page by @chrishavlin in https://github.com/vbr-calc/vbr/pull/213
  • Add the fitting/stats functions to documented functions. by @chrishavlin in https://github.com/vbr-calc/vbr/pull/214
  • fix docstring for probability_distributions by @chrishavlin in https://github.com/vbr-calc/vbr/pull/215

Other documentation improvements

  • Linearized Backstress: add an example at lab conditions, update citation by @chrishavlin in https://github.com/vbr-calc/vbr/pull/225

Deprecations

None

Infrastructure improvements

  • update test_vbrcore_001: test all anelastic methods always by @chrishavlin in https://github.com/vbr-calc/vbr/pull/218

Other changes

  • Reduce code duplication in anelastic methods by @chrishavlin in https://github.com/vbr-calc/vbr/pull/217
  • fix link to maxwell method by @chrishavlin in https://github.com/vbr-calc/vbr/pull/220
  • fix typo in sr_tot units for viscous methods by @chrishavlin in https://github.com/vbr-calc/vbr/pull/223

New Contributors

  • @Diede-Hein made their first contributions in https://github.com/vbr-calc/vbr/pull/221 and https://github.com/vbr-calc/vbr/pull/206

Full Changelog: https://github.com/vbr-calc/vbr/compare/v2.0.4…v2.1.0

v2.0.4

Another quick release to address more octave/matlab compatibility issues and fix a cookbook.

Bug fixes

  • fix CB_014 and fix test env check 189 by @chrishavlin

v2.0.3

Bug fix release to fix some matlab/octave compatibility issues with the cookbooks and test suite.

Bug fixes

  • Fix some matlab/octave compatibility errors #185 by @chrishavlin

Infrastructure improvements

  • remove unneeded function added in 2.0.2 #185 by @chrishavlin

v2.0.2

A bug fix release to address issues with calculation of elastic moduli when using the chi-mixing for moduli that were introduced in VBRc version 2.0.0 (prior versions were unaffected). This work also includes a bunch of updates to testing infrastructure to automatically run the cookbook examples in the test suite.

Bug fixes

  • Bug: fix the calculation of elastic moduli for crustal values that gets used in the chi-mixing for anharmonic properties (units of moduli were wrong) #181 by @chrishavlin
  • replace pound with percent in generate_parameter_sweep for bayes Project #179 by @chrishavlin

Documentation

  • Release history is rendered on the website at https://vbr-calc.github.io/vbr/history/ #177 by @chrishavlin
  • All cookbook examples in Projects/vbr_core_examples are now functions and their formatting has been updated slightly #181 by @chrishavlin

Infrastructure improvements

  • #181 added an automated test that runs all cookbook examples, which included some updates to testing and support functions:
    • a new environment variable VBRcTesting that gets set to '1' when tests are running in order to suppress plotting in the cookbook examples
    • some minimal field value validation for many fields in the output VBR structure
    • a new function, get_nested_field_from_struct let’s you get a nested structure field by supplying a cell string “path” to the field: Q = get_nested_field_from_struct(VBR, {'out'; 'anelastic'; 'andrade_psp'; 'Q'}).
    • a new function, concat_cell_strs concatenates all the strings in a cell array of strings, concat_cell_strs({'hello'; 'there'}, '_') will result in hello_there.

v2.0.1

Bugfix release to improve velocity calculations from the new linearized backstress anelastic method (backstress_model)

Bug fixes

  • BUG: fix the velocity calculation for backstress model by @chrishavlin in https://github.com/vbr-calc/vbr/pull/171

Documentation

  • adding a citation from Hua et al 2025 by @chrishavlin in https://github.com/vbr-calc/vbr/pull/172

Other changes

  • remove some uses of i in for loops by @chrishavlin in https://github.com/vbr-calc/vbr/pull/174

v2.0.0

This release of the VBRc introduces a few small but potentially breaking changes with the anharmonic calculation and also introduces a new anelastic method, the backstress_linear method for dislocation-based dissipation. See below for more details.

New Features

  • updates to the anharmonic calculation (PR166)[https://github.com/vbr-calc/vbr/pull/166]. Check out the updated docs page: https://vbr-calc.github.io/vbr/vbrmethods/el/anharmonic/ but here’s an overview of the changes:
    • adds new flags for specifying the temperature and pressure scaling to use
    • removes the fixed poisson ratio and instead calculates a bulk modulus following the shear modulus method: there are now fields for reference bulk modulus and temperature, pressure derivatives.
    • adds a pressure scaling from Abramson et al 1997
  • new anelastic method! backstress_linear implements the linearized backstress model of dislocation-based dissipation from Hein et al., 2025. See the docs and new example: docs, cookbook example.

Documentation

  • add VBRc workshop links to readme in 162

Infrastructure improvements

  • update to matlab-actions in 156

v1.2.1

This is a maintenance release to fix an issue with filename clashes with git on mac in zsh. No changes in VBRc behavior.

New Features

Bug fixes

  • move deprecated funcs to avoid case insensitive git clash by @chrishavlin in https://github.com/vbr-calc/vbr/pull/152

Documentation

  • Add notes on installing specific versions @chrishavlin #149

Deprecations

Infrastructure improvements

  • Update release instructions, fix release action @chrishavlin #148

Full Changelog: https://github.com/vbr-calc/vbr/compare/v1.2.0…v1.2.1

v1.2.0

New Features

  • new method: analytical_andrade, see documentation for detials.
  • 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 convenience function, full_nd, to create filled arrays

Bug fixes

  • fix for undefined behavior of pre-melt scaling at Tn == 1.0

Deprecations

  • vbrListMethods has been renamed to VBR_list_methods
  • Density_Thermal_Expansion has been renamed to density_thermal_expansion
  • Density_Adiabatic_Compression has been renamed to density_adiabatic_compression

Infrastructure improvements

  • add new function for printing deprecation messages, print_func_deprecation_warning
  • add framework for handling temporary files in test suite
  • add a development tag to version structure
  • add weekly test runs

v1.1.2

Minor bug fix release

bug fixes

  • some CI fixes

v1.1.1

Minor bug fix release

bug fixes

  • fix for zenodo sync

v1.1.0

new features

  • allow user-specified unrelaxed shear and bulk moduli #63
  • updates to documentation #68, #57

bug fixes

no bugs

changes

  • improved error messages in test framework #65

v1.0.1

Bug fix release.

bug fixes

  • rename Project/bayesian_fitting/run.m to run_bayes.m to avoid name conflict.

v1.0.0

This is the first series-1 release! It is backwards compatible.

new features

  • units metadata: VBR.in.SV as well as all output methods now contain a units structure that contains the units for each field. You can also call SV_input_units() to get a structure that lists the expected units for each VBR.in.SV field.
  • version tracking: after calling VBR_spine, all VBR structures will have a field, VBR.version_used with info on the VBR version that you used.
  • a new function for calculating density as a function of pressure, using an interpolation of experimental measurements on F90 San Carlos olivine, san_carlos_density_from_pressure, following Abramson et al., JGR, 1997. Useful for quickly calculating olivine density for a given pressure.

bug fixes

(add bug fixes)

changes

  • some of the functions related to non-seismic material properties used in the forward models directory have been moved and renamed. No change in usage, but it is now easier to use those functions in a piecemeal fashion if desired. See functions in the density and thermal_properties subdirectories within vbr/vbrCore/fucntions/ for available functions.

v0.99.4

maintenance updates (testing, github CI, documentation)

new features

  • vbr_version() function, returns the version of the VBRc that you are using

v <= 0.99.3

release_history.md covers v>0.99.3.