Skip to content

Releases

Update to v0.7.3

Choose a tag to compare

@uliw uliw released this 11 Nov 16:11

Added type hinting and mypy testing

Update to v0.7.1

Choose a tag to compare

@uliw uliw released this 10 Nov 20:12

MANTIS 0.7.1 introduces official Sphinx and Read the Docs documentation integration alongside comprehensive docstring cleanups across the codebase. This release reorganizes the tutorial suite into two modular guides (Tutorial_1 for fundamentals and setup, and Tutorial_2 for advanced multi-element isotopes and carbonate chemistry), adds $^{13}\text{C}$ carbon isotope tracking to the calcite dissolution benchmark model, updates CI actions to v6, and includes full regression benchmark datasets and tests for the Luff & Wallmann (2003) model.

Update to v0.7.0

Choose a tag to compare

@uliw uliw released this 05 Nov 20:54

MANTIS 0.7.0 introduces multi-element isotope tracking with automated element grouping (derive_isotope_species_maps), allowing concurrent tracking of multi-isotope systems (e.g., $^{13}\text{C}$ and $^{34}\text{S}$) within combined reaction cascades. This release replaces iterative fixed-point speciation with a vectorized 1D Newton-Raphson solver in $\ln([\text{H}^+])$ for robust and rapid carbonate speciation convergence, adds explicit zero-, first-, and second-order reaction kinetic support, and expands declarative plotting with composite species evaluation (e.g. $\text{CaCO}_3$ and $\text{POC}$) and custom styling for measured benchmark data (measured_data_as). Furthermore, MANTIS 0.7.0 adds the Luff & Wallmann (2003) carbonate dissolution benchmark, coupled C–S isotope models, and updates core dependencies with scipy >= 1.18.1 and official Python 3.15 CI support.

Update to 0.6.0

Choose a tag to compare

@uliw uliw released this 31 Oct 19:28

MANTIS 0.6.0 introduces mixed-phase sorption modeling with dynamic partitioning ($f_{\text{dis}}$) across solid, dissolved, and bio-irrigated pools, alongside sediment age-dependent reaction rate scaling. This release significantly expands declarative plotting capabilities with automated Pint-based unit conversions for concentrations, reaction rates, and solid-phase metrics ($\text{wt}%$ and $\mu\text{mol}/\text{g}_{\text{dry}}$), as well as unit-mapped measured data comparison. It also delivers numerical stability enhancements to carbonate and sulfide speciation loops via under-relaxation, adds the new SimpleFe diagenesis benchmark model (Du et al., 2023) and irrigation examples with regression tests, and includes a rewritten comprehensive tutorial (docs/Tutorial_new.md).

Update to 0.5.0

Choose a tag to compare

@uliw uliw released this 27 Oct 19:38

MANTIS 0.5.0 streamlines model setup with automatic reaction isotope species mapping (derive_isotope_species_map), removing the need to manually declare isotope dictionaries in reaction files. This release centralizes and automates rate constant unit conversions in diff_lib via pint with clear filename and line-number error reporting. Additionally, it introduces full support for reaction-free, purely diffusive simulations (reactions=None) with context-aware pH validation, equilibrium isotope fractionation in declarative speciation blocks, a new mantis_create_examples CLI scaffolding command, a minimal basic_transport_and_reaction starter template, and enhanced depth-scale customization in declarative plotting.

Update to v0.4.0

Choose a tag to compare

@uliw uliw released this 25 Oct 15:22

MANTIS 0.4.0 introduces a fully declarative plotting layout engine with automatic shared color palettes and solid weight-percent conversions, a unified speciation framework and strict schema validator (species_parser.py) supporting flexible alkalinity contributions (include_in_TA), and a multi-section spatial grid generator (grid_setup). This release also brings steady-state sediment age modeling (compute_sediment_age()), exponential biodiffusion profiles, Free vs. Total pH scale conversions, fractional trust-region Newton step limiting with line search safeguards.

maintenance release to 0.3.1

Choose a tag to compare

@uliw uliw released this 19 Oct 20:23

Fixed CI issues

v0.3.0

Choose a tag to compare

@uliw uliw released this 19 Oct 19:59

MANTIS 0.3.0 Release Notes

MANTIS 0.3.0 introduces preliminary support marine carbonate equilibrium chemistry calculations, species-agnostic equation and analytical SymPy Jacobian generation, multi-isotope companion cross-derivatives, and calcite precipitation/dissolution dynamics.

Highlights

  • Marine Carbonate Equilibrium Chemistry (seawater_carbonate.py):
    • Implements consensus oceanographic formulations (Lueker et al. 2000, Mucci 1983, Millero 1995, Ingle 1975, UNESCO 1981 density) calculating stoichiometric constants ($K_1^, K_2^, K_{\text{sp}}'$) and calcite saturation state ($\Omega$) as functions of temperature, salinity, and pressure.
    • Complete thermodynamic speciation ($[\text{CO}_2^*], [\text{HCO}_3^-], [\text{CO}_3^{2-}]$) from any parameter pair: pH & DIC, pH & TA, or DIC & TA.
    • Automatic boundary condition checking and porewater equilibrium initialization (adjust_omega=True) with solid calcite ($\text{CaCO}_3$).
    • Gated behind carbonate_equilibrium_chemistry in model.configure() to keep non-carbonate models isolated from side effects.
  • Species-Agnostic SymPy Analytical Jacobian Generator:
    • Replaced hardcoded species logic with generalized phase permutations (liquid_to_liquid, solid_to_liquid, liquid_to_solid, solid_transformation) and automated SymPy differentiation for chemical Jacobians.
    • Speciation factors and equilibrium partitioning are now dynamically inferred from species.py metadata.
  • Multi-Isotope Cross-Derivatives & Coupling:
    • Full analytical cross-derivatives for companion isotope species scaled by reactant isotope ratios, preventing numerical ratio divergence at sharp fronts across all isotope systems (S, C, N, O).
    • Added multi-species pooled delta calculations via get_total_delta().
  • Calcite Reactions & Diagnostics:
    • Added dedicated calcite precipitation and dissolution kinetics with smooth saturation transitions, coupled to TA and DIC in the chemical Jacobian.
    • Added prefill=True species option to initialize porewater profiles directly from boundary concentrations.
  • Smart Timestamp-Aware Equation Rebuilding:
    • Automatic cache invalidation and equation regeneration when any core MANTIS library source file is updated.