FESDIAsolve {FESDIA} | R Documentation |
FESDIAsolve
finds the steady-state solution of the FESDIA model; pH can be calculated afterwards, ie ignoring carbonate dynamics.
FESDIAsolve (parms = list(), yini = NULL, gridtype = 1, Grid = NULL, porosity = NULL, bioturbation = NULL, irrigation = NULL, surface = NULL, diffusionfactor = NULL, dynamicbottomwater = FALSE, ratefactor = NULL, calcpH = FALSE, verbose = FALSE, method = NULL, times = c(0, 1e+06), ...)
parms |
A list with parameter values.Available parameters can be listed using function FESDIAparms. See details of FESDIAparms. |
gridtype |
Type of grid: |
Grid |
If specified: either an object, as returned by |
porosity |
If specified, either an object with porosities ([-]) as returned by |
bioturbation |
If specified, either an object with bioturbation rates (units [cm2/d]) as returned by |
irrigation |
If specified, either an object with irrigation rates (units [/d]) as returned by |
surface |
If specified, either an object with surface areas (units [cm2]) as returned by Note that the surface values should be consistent with the |
diffusionfactor |
The multiplication factor necessary to go from molecular diffusion to effective sediment diffusion, i.e. that takes into account tortuosity.
If specified, either an object with these factors ([-]) as returned by |
yini |
Initial guess of the steady-state solution. |
dynamicbottomwater |
If |
ratefactor |
|
method |
The method to be used for estimating steady-state, will be passed as argument to the solver steady.1D. The default is to use the "stode" method. Other options are to use "stodes", "runsteady" or "mix". The last option combines runsteady with stode, i.e. the model is first dynamically run for the times specified in argument |
times |
start and end time of the dynamic run - only if |
verbose |
If TRUE, will write progession to the screen . |
calcpH |
if TRUE, the pH will be calculated - note that this will not include the effects of calcium carbonate precipitation or dissolution on pH. Note also that the pH can be estimated afterwards by running FESDIApH. See examples. |
... |
Any argument passed to the steady-state solver. |
To solve the model, a steady-state solver from package rootSolve
(here we used steady.1D
) is
used.
FESDIAsolve
returns an object of class FESDIAstd
or PHDIAstd
, and of class steady1D
, as generated by the solvers from R-package rootSolve
(steady.1D[rootSolve]).
It contains a.o. the elements:
y
, with the state variables at steady-state (FDET, SDET
,O2, NO3, NH3
, PO4, FeP, CaP
, DIC, Fe, FeOH3
, H2S, SO4, CH4, ALK
).
O2flux, O2deepflux, NO3flux, NO3deepflux, ...
,
FDETflux, FDETdeepflux, SDETflux, SDETdeepflux, FePdeepflux, CaPdeepflux, FeOH3deepflux, OrgCflux, OrgNflux, OrgPflux
, the sediment-water and burial fluxes, in nmol/cm2/d.
DINDIPflux, DINDIPmean, DINDIPdeep
, the dissolved nitrogen to phosphorus ratio of flux, sediment concentrations and deep (burial) concentration.
TotMin, TotOxic, TotDenit, TotFered TotBSR, TotMeth
, total mineralisation, total oxic mineralisation, denitrification, iron reduction, biological sulphate reduction, and methanogenesis, in nmol/cm2/d.
PartOxic, PartDenit, PartFered, PartBSR, PartMethano
, the fraction of mineralisation due to oxic, denitrification, iron reduction, biological sulphate reduction, and methanogenesis.
TotNitri, TotFeoxid, TotH2Soxid, TotCH4oxid, TotAOM, TotFePprod, TotCaPprod, TotFePdesorp, TotCaPdiss, TotNprod, TotPprod, TotNH3ads
, integrated rates, nmol/cm2/d.
PartPremoved, PartNremoved
, the total P and N removed, relative to its production.
TOC
, the Total organic carbon concentration profile, %.
Cprod, Nprod, Pprod, Oxicmin, Denitrific, Feredmin, BSRmin, Methmin, nitri,Feoxid, H2Soxid, CH4oxid, AOM, FeSprod, FePadsorp, CaPprod
, rate profiles, nm/cm3 liquid/d.
FePdesorp, CaPdiss
, rate profiles, nm/cm3 solid/d.
The meaning and units of these columns can be assessed via the R-functions:
FESDIAsvar()
, FESDIA1D()
, FESDIA0D()
. See FESDIA0D.
Karline Soetaert
Soetaert K, PMJ Herman and JJ Middelburg, 1996a. A model of early diagenetic processes from the shelf to abyssal depths. Geochimica Cosmochimica Acta, 60(6):1019-1040.
Soetaert K, PMJ Herman and JJ Middelburg, 1996b. Dynamic response of deep-sea sediments to seasonal variation: a model. Limnol. Oceanogr. 41(8): 1651-1668.
#=========================================== # Show parameter values #=========================================== FESDIAparms() #=========================================== # Runs with different carbon fluxes #=========================================== out <- FESDIAsolve(parms = list(Cflux = 2*1e5/12/365), calcpH = TRUE) out2 <- FESDIAsolve(parms = list(Cflux = 20*1e5/12/365), calcpH = TRUE) out3 <- FESDIAsolve(parms = list(Cflux = 200*1e5/12/365), calcpH = TRUE) par(mar = c(3,3,3,2)) plot(out, out2, out3, ylim = c(20, 0), mfrow = c(4, 4), which = c(1:14,16), lwd = 2, lty = 1) plot(out, out2, out3, which = "pH", ylim = c(20,0)) #=========================================== # Runs that are difficult to solve #=========================================== # simple run out1 <- FESDIAsolve(parms = c(por0 = 0.5, MPBprod = 0)) # simple run used as initial condition for second run out2 <- FESDIAsolve(parms = c(por0 = 0.5, MPBprod = 1e3), yini = out1$y) # second run used as initial condition for third run # use mixed method: first dynamic run, then steady-state solver out3 <- FESDIAsolve(parms = c(por0 = 0.5, MPBprod = 1e4), yini = out2$y, method = "mixed") out4 <- FESDIAsolve(parms = c(por0 = 0.5, MPBprod = 5e4), yini = out3$y, method = "runsteady", times = c(0, 1e6)) FESDIAbudgetO2(out1, out2, out3, out4, which = "Rates")