diff --git a/include/aspect/material_model/reactive_fluid_transport.h b/include/aspect/material_model/reactive_fluid_transport.h index 599b3f1bf21..4b72839e4f5 100644 --- a/include/aspect/material_model/reactive_fluid_transport.h +++ b/include/aspect/material_model/reactive_fluid_transport.h @@ -179,6 +179,11 @@ namespace aspect std::vector csat_sediment_poly_coeffs {-0.150662, 0.301807, 1.01867}; std::vector Td_sediment_poly_coeffs {2.83277, -24.7593, 85.9090, 524.898}; + // The polynomials breakdown above certain pressures, 10 GPa for peridotite, 26 GPa for gabbro, 16 GPa for MORB, + // and 50 GPa for sediment. These cutoff pressures were determined by extending the pressure range in Tian et al. (2019) + // and observing where the maximum allowed water contents jump towards infinite values. + const std::vector pressure_cutoffs {10, 26, 16, 50}; + std::vector> devolatilization_enthalpy_changes {LR_peridotite_poly_coeffs, LR_gabbro_poly_coeffs, \ LR_MORB_poly_coeffs, LR_sediment_poly_coeffs }; diff --git a/source/material_model/reactive_fluid_transport.cc b/source/material_model/reactive_fluid_transport.cc index da5a7622253..b384cf909fa 100644 --- a/source/material_model/reactive_fluid_transport.cc +++ b/source/material_model/reactive_fluid_transport.cc @@ -56,10 +56,6 @@ namespace aspect tian_equilibrium_bound_water_content (const MaterialModel::MaterialModelInputs &in, unsigned int q) const { - // Pressure, which must be in GPa for the parametrization, or GPa^-1 - const double pressure = in.pressure[q]<=0 ? 1e-12 : in.pressure[q]/1.e9; - const double inverse_pressure = std::pow(pressure, -1); - // Create arrays that will store the values of the polynomials at the current pressure std::vector LR_values(4); std::vector csat_values(4); @@ -71,6 +67,12 @@ namespace aspect // Td polynomials are defined in equations 15, B3, B11, and B19. for (unsigned int i = 0; i