Description Arguments Details Author(s) Examples
This method implements R's initialize generic for objects of class Model_14
and is not intended as part of the public interface to SoilR.
It may change in the future as the classes implementing SoilR may.
It is called whenever a new object of this class is created by a call to new
with the first argument Model_14
.
It performs some sanity checks of its arguments and in case those tests pass returns an object of class Model_14
The checks can be turned off.( see arguments)
.Object |
the Model_14 object itself |
times |
The points in time where the solution is sought |
mat |
A decomposition Operator of some kind |
initialValues |
|
initialValF |
An object of class ConstFc containing a vector with the initial values of the radiocarbon fraction for each pool and a format string describing in which format the values are given. |
inputFluxes |
|
c14Fraction |
|
c14DecayRate |
|
solverfunc |
|
pass |
Due to the mechanism of S4 object initialization (package "methods")
new
always calls initialize
.
(see the help pages for initialize and initialize-methods for details)
Carlos A. Sierra, Markus Mueller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | require(RUnit)
# We present three possible scenarios:
# 1.) create an object from valid input
# 2.) try to build an Model_14 object with unsound parameters and
# show the savety net in action.
# 3.) force an unsound model to be created that would be rejected by default
#1.)
# create the ingredients and assemble them to a Model_14 in the final step
t_start=1960
t_end=2010
tn=220
timestep=(t_end-t_start)/tn
## the time
t=seq(t_start,t_end,timestep)
## some Decomposition Operator
n=3
At=new(Class="BoundLinDecompOp",
t_start,
t_end,
function(t0){
matrix(nrow=n,ncol=n,byrow=TRUE,
c(-1, 0.1, 0,
0.5 , -0.4, 0,
0, 0.2, -0.1)
)
}
)
c0=c(100, 100, 100)
## Atmospheric C_14
F0=ConstFc(c(0,10,10),"Delta14C")
## constant inputrate
inputFluxes=new(
"TimeMap",
t_start,
t_end,
function(t0){matrix(nrow=n,ncol=1,c(10,10,10))}
)
# we have a dataframe representing the C_14 fraction
# note that the time unit is in years and the fraction is given in
# the Absolute Fraction Modern format.
# This means that all the other data provided are assumed to have the same value
# This is especially true for the decay constants to be specified later
Fc=BoundFc(C14Atm_NH,format="Delta14C")
# add the C14 decay to the matrix which is done by a diagonal
# matrix which does not vary over time
# we assume a half life th=5730 years
th=5730
k=log(0.5)/th #note that k is negative and has the unit y^-1
mod=new("Model_14",t,At,c0,F0,inputFluxes,Fc,k)
#2.) provoke failure by demanding extrapolation to times where
# the model ingredienst are not specified (10 years later than the input e.g)
t_toLong=seq(t_start,t_end+10,timestep)
checkException(new("Model_14",t_toLong,At,c0,F0,inputFluxes,Fc,k),
"initialize must throw an exception because it is asked to build
an unvalid model"
)
#3.) force an unsound model by settign pass to TRUE
new("Model_14",t_toLong,At,c0,F0,inputFluxes,Fc,k,pass=TRUE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.