Skip to main content

A python package to simulate seawater cadmium isotopes

Project description

CdBURY

Introduction

Cadmium is a trace nutrient in seawater. Of particular interest are its two stable isotopes, 114Cd and 110Cd. Cadmium enters the ocean primarily through riverine input and is removed via burial in association with five key compounds:

  • organic carbon
  • sulphide
  • oxyhydroxide
  • clay
  • carbonate

Some of these fluxes remove cadmium without bias toward either isotope, while others exhibit a preference. For instance, organic carbon burial preferentially remove 114Cd over 110Cd (leaving the ocean with a greater fraction of 110Cd). The ratio of the two isotopes of cadmium in seawater can be changed if either the input flux or output fluxes are: large and isotopically distinct from seawater.

Of the burial fluxes, carbonate, oxyhydroxide, and clay are relatively minor, collectively accounting for less than 5% of total cadmium burial. The flux of cadmium associated with sulphide is the dominant output, comprising approximately 80% of cadmium burial. Whether one isotope is favoured during sulphide burial depends on the burial environment: in euxinic conditions (oxygen depleted but sulphide rich), there is no isotopic bias, whereas in other environments, a preference may exist. The flux of cadmium associated with organic carbon accounts for about 20% of cadmium burial, and preferentially removes 114Cd with an isotopic offset from seawater of up to -0.8‰.

About CdBURY

CdBURY is a single-box model designed to simulate the fluxes of cadmium in the ocean as described above. It supports forward simulations, allowing users to perturb parameters at specific times, as well as inverse simulations. In the inverse mode, the model is provided with a record of δ114Cd changes in seawater over time and adjusts the prescribed fluxes to match the observed data. Currently, the model supports inversion for organic carbon burial fluxes.

Example Usage

Here is an example which starts with a steady state system for seawater cadmium, estimates how this changes over one million years, with a perturbation which turns cadmium burial in organic carbon off 500,000 years into the run.

from CdBURY.classes import Time,CadmiumMassIsotope,CadmiumFluxes,Perturbation,FluxType
from CdBURY import CdBURY

initial_seawater = CadmiumMassIsotope(1.0*8.36e11,-0.1)

isotope_offsets = CadmiumFluxes(-0.1,
                                0.0,
                                -0.55,
                                0.0,
                                -0.80,
                                0.0)

flux_proportions = CadmiumFluxes(1.0,
                            0.01,
                            0.03,
                            0.01,
                            0.11125,
                            0.84875)
flux_proportions.sulphide = flux_proportions.input-(flux_proportions.oxyhydroxide+flux_proportions.carbonate+flux_proportions.clay+flux_proportions.organic)
input_flux = 30000000.0
initial_fluxes = CadmiumFluxes(input_flux*flux_proportions.input,
                                input_flux*flux_proportions.oxyhydroxide,
                                input_flux*flux_proportions.carbonate,
                                input_flux*flux_proportions.clay,
                                input_flux*flux_proportions.organic,
                                input_flux*flux_proportions.sulphide)

input_balanced = CdBURY.Model.calculate_balanced_input(initial_seawater,
                                                                initial_fluxes,
                                                                isotope_offsets)

adjusted_isotope_offsets = CadmiumFluxes(input_balanced.isotope_delta,
                                            isotope_offsets.oxyhydroxide,
                                            isotope_offsets.carbonate,
                                            isotope_offsets.clay,
                                            isotope_offsets.organic,
                                            isotope_offsets.sulphide)


time_configuration = Time(1.0,0.001,0.0,units="Myr")
model = CdBURY.Model(time_configuration,
                    initial_seawater,
                    initial_fluxes,
                    adjusted_isotope_offsets,
                    dynamic_mass=True)


model.change_flux(Perturbation(0.50,
                               FluxType.organic,
                               CadmiumMassIsotope(0.0,-0.8)))

model.solve()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdbury-0.1.0.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdbury-0.1.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file cdbury-0.1.0.tar.gz.

File metadata

  • Download URL: cdbury-0.1.0.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for cdbury-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c5950a73b9b80857f0728309c407b0cb4466ab54bd5daaa8df92f38b62ca9df3
MD5 9de912ef76eb79b7bf87f0791bf8fce3
BLAKE2b-256 397871d837c55ef858cac87830c129c55b25e2d41df2e6f6e4ef3ce10bafd9b4

See more details on using hashes here.

File details

Details for the file cdbury-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cdbury-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for cdbury-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3a46a0261e5c9b3bab98069b55d423eecefb0a8baeccf524867d08fc98cc7de
MD5 414d6930e5e5fe02f16b2bbf2bae32b4
BLAKE2b-256 8c91bf22c8773ab244032a706da8c6d61043520bdaa30ec1f220628ebe40d0c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page