Global Types
The following type and type constructors are declared for optimizing numerical routines, for using multiple dispatch of functions with different specified input forms and for passing arguments between inner / outer loop steps of the DA twin experiment. Type constructors are designed to be flexible enough to handle multiple dispatch for automatic code differentiation, though seek to ensure type consistency within methods for improved performance.
DataAssimilationBenchmarks.ParamSample — TypeParamSample = Dict{String, Vector{UnitRange{Int64}}}Dictionary containing key and index pairs to subset the state vector and then merge a statistical sample of parameters that govern the equations of motion with the ParamDict dx_params in parameter estimation problems.
DataAssimilationBenchmarks.StepKwargs — TypeStepKwargs = Dict{String,Any}Key word arguments for twin experiment time stepping. Arguments are given as:
REQUIRED:
dx_dt- time derivative function with arguments x and dx_paramsdx_params- parameters necessary to resolve dx_dt, not including parameters to be estimated in the extended state vector;h- numerical time discretization step size
OPTIONAL:
diffusion- tunes the standard deviation of the Wiener process, equal tosqrt(h) * diffusion;diff_mat- structure matrix for the diffusion coefficients, replaces the default uniform scaling;s_infl- ensemble anomalies of state components are scaled by this parameter for calculation of emperical covariance;p_infl- ensemble anomalies of extended-state components for parameter sample replicates are scaled by this parameter for calculation of emperical covariance,state_dimmust be defined below;state_dim- keyword for parameter estimation, specifying the dimension of the dynamic state, less than the dimension of full extended state;param_sample-ParamSampledictionary for merging extended state withdx_params;ξ- random array sizestate_dim, can be defined inkwargsto provide a particular realization for method validation;γ- controls nonlinearity of the alternatingobsoperatori.
See DataAssimilationBenchmarks.ObsOperators.alternating_obs_operator for a discusssion of the γ parameter.
DataAssimilationBenchmarks.ArView — Methodfunction ArView(type)
Union{Array{T, 2}, SubArray{T, 2}} where T <: type
endType constructor for union of Arrays and SubArrays for use within ensemble conditioning operations, integration schemes and other array operations.
DataAssimilationBenchmarks.ConM — Methodfunction ConM(type)
Union{UniformScaling{T}, Symmetric{T}} where T <: type
endType union of conditioning matrix types, which are used for optimization routines in the transform method.
DataAssimilationBenchmarks.CovM — Methodfunction CovM(type)
Union{UniformScaling{T}, Diagonal{T, Vector{T}},
Symmetric{T, Matrix{T}}} where T <: type
endType constructor for union of covariance matrix types, for multiple dispatch based on their special characteristics as symmetric, positive definite operators.
DataAssimilationBenchmarks.ParamDict — Methodfunction ParamDict(type)
Union{Dict{String, Array{T}}, Dict{String, Vector{T}}} where T <: type
endType constructor for Dictionary of model parameters to be passed to derivative functions by name. This allows one to pass both vector parameters (and scalars written as vectors), as well as matrix valued parameters such as diffusion arrays.
DataAssimilationBenchmarks.TransM — Methodfunction TransM(type)
Union{Tuple{Symmetric{T,Array{T,2}},Array{T,1},Array{T,2}},
Tuple{Symmetric{T,Array{T,2}},Array{T,2},Array{T,2}}} where T <: type
endType union constructor for tuples representing the ensemble update step with a right ensemble anomaly transformation, mean update weights and mean-preserving orthogonal transformation.
DataAssimilationBenchmarks.VecA — Methodfunction VecA(type)
Union{Vector{T}, SubArray{T, 1}} where T <: type
endType constructor for union of Vectors and 1-D SubArrays. This is utilzed in order to pass columns of an ensemble maxtrix into integration schemes and related array operations.