PALEOsediment Reactions

Sediment transport

PALEOsediment.Sediment.SedimentGrid.ReactionSedimentGridn1DType
ReactionSedimentGridn1D

Sediment grid for n x 1D sediment columns.

A grid with n columns is created in a Domain sediment, bounded at the top by Domain oceanfloor and at the base by Domain sedimentfloor. Boundary cells at the sediment surface are therefore in subdomain sediment.oceanfloor.

The number of columns, and column area are set by oceanfloor Variables.

Parameters

  • L[Float64]=0.15 (m), default_value=0.15, description="depth of sediment column"
  • ncellspercol[Int64]=60, default_value=60, description="number of cells per column"
  • f_grid[String]="linear", default_value="linear", allowed_values=["linear", "quadratic"], description="vertical grid transformation"
  • grid_eta[Float64]=NaN (m), default_value=NaN, description="length scale for vertical grid transformation"
  • rho_ref[Float64]=1027.0 (kg m-3), default_value=1027.0, description="assumed constant sw density conversion factor"

Methods and Variables for default Parameters

source
PALEOsediment.Sediment.SedimentPhys.ReactionSedimentPhysType
ReactionSedimentPhys

Calculate sediment physical parameters: porosity, advection velociy, salinity, temperature.

The sediment grid is defined by eg PALEOsediment.Sediment.SedimentGrid.ReactionSedimentGridn1D.

Porosity is set to a prescribed time-independent functional form defined by f_porosity parameter.

Advection velocity may calculated in two ways:

  • as a time-independent function of depth calculated from oceanfloor.w_accum, and assuming no volume changes in solid phase.
  • calculated from solid-phase volume changes accumulated into volume_change_sms variable.

Physical environment

Per-column environment is defined by oceanfloor variables.

Parameters for prescribed time-independent porosity are set by oceanfloor.phi and optionally oceanfloor.phimin

Prescribed accumulation rate is set by oceanfloor.w_accum (omit or set to zero to calculate accumulation rate from solid-phase volume changes).

Temperature and salinity are set by oceanfloor.sal, oceanfloor.temp.

Parameters

  • f_porosity[String]="Const", default_value="Const", allowed_values=["Const", "ExpAtten"], description="functional form for porosity vs depth"
  • zpor[Float64]=0.1 (m), default_value=0.1, description="lengthscale for porosity if f_porosity=ExpAtten"
  • w_solute[Bool]=false, default_value=false, description="true to assume w_solute = w_solid at base of column, false to set w_solute=0.0 (ie zero solute velocity at great depth)"

Methods and Variables for default Parameters

  • do_sediment_phys
    • volume (m^3), VT_ReactDependency, description="volume of sediment cells"
    • volume_total (m^3), VT_ReactDependency, description="total volume of sediment cells"
    • Abox (m^2), VT_ReactDependency, description="horizontal area of box"
    • zupper (m), VT_ReactDependency, description="depth of upper surface of box (m) 0 is surface, -100 is depth of 100 m"
    • zlower (m), VT_ReactDependency, description="depth of lower surface of box (m)"
    • zmid (m), VT_ReactDependency, description="mean depth of box"
    • pressure (dbar), VT_ReactDependency, description="sediment pressure"
    • rho_ref (kg m^-3), VT_ReactDependency, description="density conversion factor"
    • oceanfloor_temp –> oceanfloor.temp (K), VT_ReactDependency, description="oceanfloor temperature"
    • oceanfloor_sal –> oceanfloor.sal (psu), VT_ReactDependency, description="oceanfloor salinity"
    • oceanfloor_phi –> oceanfloor.phi (), VT_ReactDependency, description="sediment surface porosity"
    • [oceanfloor_phimin] –> oceanfloor.phimin (), VT_ReactDependency, description="sediment porosity at infinite depth"
    • [oceanfloor_w_accum] –> oceanfloor.w_accum (m yr-1), VT_ReactDependency, description="sediment accumulation rate (+ve)"
    • phi (), VT_ReactProperty, description="cell mean porosity (volume fraction of solute phase)"
    • phi_solid (), VT_ReactProperty, description="1.0 - cell mean porosity (volume fraction of solid phase)"
    • phi_upper (), VT_ReactProperty, description="porosity (volume fraction of solute phase) at cell upper face"
    • phi_solid_upper (), VT_ReactProperty, description="1.0 - porosity (volume fraction of solid phase) at cell upper face"
    • phi_lower (), VT_ReactProperty, description="porosity (volume fraction of solute phase) at cell lower face"
    • phi_solid_lower (), VT_ReactProperty, description="1.0 - porosity (volume fraction of solid phase) at cell lower face"
    • volume_solute (m^3), VT_ReactProperty, description="solute volume of sediment cells"
    • volume_solid (m^3), VT_ReactProperty, description="solid volume of sediment cells"
    • temp (Kelvin), VT_ReactProperty, description="sediment temperature"
    • sal (psu), VT_ReactProperty, description="sediment salinity"
    • Dfac (), VT_ReactProperty, description="tortuoisity-dependent multiplier for solute diffusivity"
  • do_sediment_w
    • volume (m^3), VT_ReactDependency, description="volume of sediment cells"
    • volume_total (m^3), VT_ReactDependency, description="total volume of sediment cells"
    • Abox (m^2), VT_ReactDependency, description="horizontal area of box"
    • zupper (m), VT_ReactDependency, description="depth of upper surface of box (m) 0 is surface, -100 is depth of 100 m"
    • zlower (m), VT_ReactDependency, description="depth of lower surface of box (m)"
    • zmid (m), VT_ReactDependency, description="mean depth of box"
    • pressure (dbar), VT_ReactDependency, description="sediment pressure"
    • rho_ref (kg m^-3), VT_ReactDependency, description="density conversion factor"
    • oceanfloor_temp –> oceanfloor.temp (K), VT_ReactDependency, description="oceanfloor temperature"
    • oceanfloor_sal –> oceanfloor.sal (psu), VT_ReactDependency, description="oceanfloor salinity"
    • oceanfloor_phi –> oceanfloor.phi (), VT_ReactDependency, description="sediment surface porosity"
    • [oceanfloor_phimin] –> oceanfloor.phimin (), VT_ReactDependency, description="sediment porosity at infinite depth"
    • [oceanfloor_w_accum] –> oceanfloor.w_accum (m yr-1), VT_ReactDependency, description="sediment accumulation rate (+ve)"
    • phi (), VT_ReactDependency, description="cell mean porosity (volume fraction of solute phase)"
    • phi_solid (), VT_ReactDependency, description="1.0 - cell mean porosity (volume fraction of solid phase)"
    • phi_upper (), VT_ReactDependency, description="porosity (volume fraction of solute phase) at cell upper face"
    • phi_solid_upper (), VT_ReactDependency, description="1.0 - porosity (volume fraction of solid phase) at cell upper face"
    • phi_lower (), VT_ReactDependency, description="porosity (volume fraction of solute phase) at cell lower face"
    • phi_solid_lower (), VT_ReactDependency, description="1.0 - porosity (volume fraction of solid phase) at cell lower face"
    • volume_solute (m^3), VT_ReactDependency, description="solute volume of sediment cells"
    • volume_solid (m^3), VT_ReactDependency, description="solid volume of sediment cells"
    • temp (Kelvin), VT_ReactDependency, description="sediment temperature"
    • sal (psu), VT_ReactDependency, description="sediment salinity"
    • Dfac (), VT_ReactDependency, description="tortuoisity-dependent multiplier for solute diffusivity"
    • volume_change_sms (m^3 yr-1), VT_ReactTarget, description="change in volume due to production and consumption of solid phase components"
    • w_solid_upper (m yr-1), VT_ReactProperty, description="solid phase advection velocity (downwards is -ve) across upper cell face"
    • w_solid_lower (m yr-1), VT_ReactProperty, description="solid phase advection velocity (downwards is -ve) across lower cell face"
    • w_solute_upper (m yr-1), VT_ReactProperty, description="solute phase advection velocity (downwards is -ve) across upper cell face"
    • w_solute_lower (m yr-1), VT_ReactProperty, description="solute phase advection velocity (downwards is -ve) across lower cell face"
source
PALEOsediment.Sediment.SedimentBioRates.ReactionSedimentBioRatesType
ReactionSedimentBioRates

Calculate sediment bioturbation and bioirrigation rates (for use by sediment transport).

Literature compilation of functional forms for dependency on oceanfloor oxygen, Corg flux, and depth within sediment, from (Boudreau, 1996), (Archer, 2002), (Arndt et al., 2011), (Dale et al., 2015)

Parameters

  • f_bioTurbRate[String]="Prescribed", default_value="Prescribed", allowed_values=["Prescribed", "CorgArcher2002"], description="functional form for bioturbation max rate"
  • f_bioTurbDepth[String]="ConstCutoff", default_value="ConstCutoff", allowed_values=["ConstCutoff", "ErfcCutoff", "Exp1Cutoff", "Exp2Cutoff"], description="functional form of bioturbation rate with depth in sediment"
  • f_bioIrrigDepth[String]="ConstCutoff", default_value="ConstCutoff", allowed_values=["ConstCutoff", "ErfcCutoff", "Exp1Cutoff", "Exp2Cutoff"], description="functional form of bioirrigation rate with depth in sediment"
  • f_bioO2[String]="None", default_value="None", allowed_values=["None", "MM", "Dale2015"], description="functional form of bioturbation and bioirrigation sensitivity to oceanfloor oxygen"
  • bioO2halfmax[Float64]=0.02 (mol m-3), default_value=0.02, description="oceanfloor [O2] for 50% decrease in bioturbation/bioirrigation"
  • bioO2decreaserate[Float64]=0.012 (mol m-3), default_value=0.012, description="oceanfloor [O2] sharpness of decrease in bioturbation/bioirrigation"
  • separate_zbio[Bool]=false, default_value=false, description="true to use zbioturb, zbioirrig variables, false to use zbio for both bioturbation and bioirrigation"

Methods and Variables for default Parameters

METHODS PALEOboxes.DocStrings.Methods(:methods_do) exception: ErrorException("PALEOsediment.Sediment.SedimentBioRates.ReactionSedimentBioRates register_methods! not implemented")

source
PALEOsediment.Sediment.SedimentTransport.ReactionSedimentTransportSolidType
ReactionSedimentTransportSolid

Sediment solid-phase transport for n x 1D sediment columns.

The sediment grid is defined by eg PALEOsediment.Sediment.SedimentGrid.ReactionSedimentGridn1D.

Physical parameters (porosity, advection velocity) are defined by eg `PALEOsediment.Sediment.SedimentPhys.ReactionSedimentPhys.

Physical environment

Bioturbation rates should be supplied on the sediment grid by eg PALEOsediment.Sediment.SedimentBioRates.ReactionSedimentBioRates.

Transport fluxes

The variable name suffix for transport source-minus-sink flux can be set by the trspt_sms_ext parameter:

  • "_sms" (default value) adds transport fluxes to the same "_sms` variable used for biogeochemical fluxes, for use with a sediment configuration that prescribes advection velocity.
  • "_trspt_sms" adds transport fluxes to a separate variable provided by eg a PALEOsediment.Sediment.SedimentReservoirs.ReactionSedSolidReservoir for use with a sediment or mat configuration that calculates advection velocity from solid-phase volume changes due to non-transport processes. NB: this is consistent with bioturbation exchanging equal volumes of material so it doesn't result in advection.

Transport components and species

Each component <totalname> to be transported should be defined by a source-minus-sink flux <totalname>_<trspt_sms_ext>, and one or more concentration Variables with names of form <speciesname>_conc

Solid concentration Variables are identified by attributes vphase == VP_Solid and advect == true, and are transported by bioturbation and advection.

Transport fluxes are then accumulated into vectors <totalname>_<trspt_sms_ext>:

  • If the totalnames attribute is not set on a variable <speciesname>_conc, then totalname is assumed to be the same as speciesname and transport fluxes are accumulated into <speciesname>_<trspt_sms_ext>.
  • If the totalnames attribute is set to a Vector of strings ["mult_1*totalname_1", ... "mult_n*totalname_n"], then this is used to define the appropriate vector of [<totalname_n>_sms] fluxes (allowing multiple species concentrations with different transport properties or phases for each <totalname>_<trspt_sms_ext>, and each species to contribute to multiple <totalname_n>_<trspt_sms_ext> with a stoichiometry multiplier mult_n).

Boundary conditions

Input particulate fluxes should be added by the fluxOceanfloor flux coupler to the surface sediment cells by linking to Variables in the sediment.oceanfloor subdomain, ie to sediment.oceanfloor.<totalname>_sms.

Burial fluxes are the base of the sediment columns are defined in the Domain fluxOceanBurial.

Parameters

  • trspt_sms_ext[String]="_sms", default_value="_sms", allowed_values=["sms", "trspt_sms"], description="extension to use to accumulate advective transport contributions"

Methods and Variables for default Parameters

source
PALEOsediment.Sediment.SedimentTransport.ReactionSedimentTransportSoluteType
SedimentTransportSolute

Sediment solute transport for n x 1D sediment columns.

The sediment grid is defined by eg PALEOsediment.Sediment.SedimentGrid.ReactionSedimentGridn1D.

Physical parameters (porosity, advection velocity) are defined by eg `PALEOsediment.Sediment.SedimentPhys.ReactionSedimentPhys.

Physical environment

Bioturbation and bioirrigation rates should be supplied on the sediment grid by eg PALEOsediment.Sediment.SedimentBioRates.ReactionSedimentBioRates.

Transport components and species

Each component <totalname> to be transported should be defined by a source-minus-sink flux <totalname>_sms, and one or more concentration Variables with names of form <speciesname>_conc

Solute concentration Variables are identified by attributes vphase == VP_Solute and advect == true, and are transported by diffusion, bioturbation and bioirrigation, and advection. Species-specific solute diffusivities are calculated either based on the attribute diffusivity_speciesname of the <speciesname>_conc solute Variables, which should be one of the names available from PALEOaqchem.MolecularDiffusion.create_solute_diffusivity_func, or (if diffusivity_speciesname is not set ie an empty string) by the attribute diffusivity (units cm^2 s-1).

Transport fluxes are then accumulated into vectors <totalname>_sms:

  • If the totalnames attribute is not set on a variable <speciesname>_conc, then totalname is assumed to be the same as speciesname and transport fluxes are accumulated into <speciesname>_sms.
  • If the totalnames attribute is set to a Vector of strings ["mult_1*totalname_1", ... "mult_n*totalname_n"], then this is used to define the appropriate vector of [<totalname_n>_sms] fluxes (allowing multiple species concentrations with different transport properties or phases for each <totalname>_sms, and each species to contribute to multiple <totalname_n>_sms with a stoichiometry multiplier mult_n).

Boundary conditions

Oceanfloor solute fluxes should be defined in the Domain fluxOceanfloor, with names fluxOceanfloor.soluteflux_<totalname>.

Burial fluxes are the base of the sediment columns are defined in the Domain fluxOceanBurial.

Parameters

  • zdbl[Float64]=0.0004 (m), default_value=0.0004, description="diffusive boundary layer thickness at sediment - water column interface"
  • solute_burial_flux[Bool]=false, default_value=false, description="true to include solute burial flux terms"

Methods and Variables for default Parameters

source

Sediment reservoirs

PALEOsediment.Sediment.SedimentReservoirs.ReactionSedSolidReservoirType
ReactionSedSolidReservoir, ReactionSedSolidReservoirTotal

A single (vector) reservoir (state variable) representing a solid phase biogeochemical tracer in a sediment

Parameter molar_volume defines density, used to calculate R_volume_frac (fraction of solid phase volume) and add a contribution to volume_change_sms (m^3 yr-1) calculated from R_sms

Creates R_conc (mol m-3) and R_conc_sms (mol m-3 yr-1) as state variable and source-sink provided to the solver, and calculates R (mol).

Accumulation of fluxes into _sms is split into R_sms and R_trspt_sms to allow calculation of advective velocity from volume_change_sms:

  • biogeochemical transformations and diffusive transport (bioturbation) should be added to R_sms (mol yr-1) (these are included in volume_change_sms)
  • advective transport should be added to R_trspt_sms (not included in volume_change_sms).
  • R_conc_sms adds up contributions from R_sms and R_trspt_sms for use by the numerical solver.

Isotopes:

  • if parameter field_data <: AbstractIsotopeScalar (eg IsotopeLinear), a Property R_delta is created.
  • ReactionSedSolidReservoirTotal also calculates the Domain total R_total (units mol), eg to check budgets.

Local name prefix R should then be renamed using variable_links: in the configuration file.

Initialisation

Initial value is set using variable_attributes: in the configuration file, using R_conc:initial_value (mol m-3 solid phase) and R_conc:initial_delta.

Example configuration in .yaml file

            reservoir_Corg:  # sediment Corg
                class: ReactionSedSolidReservoirTotal       # include _total (mol)
                parameters:
                    molar_volume:                   12e-6 # m^3 / mol M  (Cx 30 g mol,  density 2.5 g / cm3  = 30 / 2.5 * 1e-6 )
                variable_links:
                    R*:                             Corg*
                    volume:                         volume_solid
                variable_attributes:
                    R_conc:vphase:                  VP_Solid                        
                    R_conc:initial_value:           0.0  # concentration m-3 solid phase
                    R_conc:norm_value:              8.3e4  # mol m-3 solid  (~ 1 / molar_volume)

See also

ReactionReservoir

Parameters

  • field_data[DataType]=PALEOboxes.ScalarData, default_value=PALEOboxes.ScalarData, allowed_values=Type[PALEOboxes.ScalarData, PALEOboxes.IsotopeLinear], description="disable / enable isotopes and specify isotope type"
  • total[Bool]=false, default_value=false, description="true to calculate R_total"
  • molar_volume[Float64]=1000.0 (m^3 mol-1), default_value=1000.0, description="molar volume"
  • limit_delta_conc[Float64]=0.0 (mol m-3), default_value=0.0, description="**EXPERIMENTAL** attempt to limit delta for low/-ve concentrations (0.0 to disable)"

Methods and Variables for default Parameters

  • do_reactionsedsolidreservoir
    • R (mol), VT_ReactProperty, description="vector reservoir"
    • R_volume_frac (), VT_ReactProperty, description="fraction of solid phase volume"
    • R_conc (mol m-3), VT_ReactDependency, VF_StateExplicit, description="concentration"
    • volume (m3), VT_ReactDependency, description="cell volume (or cell phase volume eg for a sediment with solid and liquid phases)"
  • do_reactionsedsolidreservoir_volume_change
    • R_sms (mol yr-1), VT_ReactTarget, description="vector reservoir biogeochemical source-sinks"
    • volume_change_sms (m^3 yr-1), VT_ReactContributor, description="change in volume due to production and consumption of solid phase components"
  • do_reactionsedsolidreservoirconc_sms
    • volume (m3), VT_ReactDependency, description="cell volume (or cell phase volume eg for a sediment with solid and liquid phases)"
    • R_conc_sms (mol m-3 yr-1), VT_ReactContributor, VF_Deriv, description="vector reservoir source-sinks"
    • R_sms (mol yr-1), VT_ReactDependency, description="vector reservoir biogeochemical source-sinks"
    • R_trspt_sms (mol yr-1), VT_ReactTarget, description="vector reservoir transport source-sinks"
source