A Modular Arbitrary-Order Ocean-Atmosphere Model -- Stochastic implementation
doc/sto_doc.md
Go to the documentation of this file.
1 # Modular arbitrary-order ocean-atmosphere model: The MTV and WL parameterizations #
2 
3 ## The stochastic version of MAOOAM ##
4 
5 The stochastic version of MAOOAM is given by
6 
7 \f[ \frac{d \boldsymbol{z}}{dt} = f(\boldsymbol{z})+ \boldsymbol{q} \cdot \boldsymbol{dW} (t)\f]
8 
9 where \f$\boldsymbol{dW}\f$ is a vector of standard Gaussian White noise and where several choice for \f$f(\boldsymbol{z})\f$ are available.
10 For instance, the default choice is to use the full dynamics:
11 \f[ f(\boldsymbol{z}) = \sum_{j,k=0}^{ndim} \, \mathcal{T}_{i,j,k} \, z_k \; z_j . \f]
12 The implementation uses thus the tensorial framework of MAOOAM and add some noise to it. To study parameterization methods in MAOOAM, the models variables \f$\boldsymbol z\f$ is divised in two components: the resolved component \f$\boldsymbol x\f$ and the unresolved component \f$\boldsymbol y\f$ (see below for more details).
13 
14  Since MAOOAM is a ocean-atmosphere model, it can be decomposed further into oceanic and atmospheric components:
15 \f[ \boldsymbol z = \{ \boldsymbol{x}_{\text{a}}, \boldsymbol{x}_{\text{o}}, \boldsymbol{y}_{\text{a}}, \boldsymbol{y}_{\text{o}}\} \f]
16 and in the present implementation, the noise amplitude can be set in each component:
17 \f[ \frac{d \boldsymbol{x}_{\text{a}}}{dt} = f_{x,\text{a}}(\boldsymbol{z})+ \boldsymbol{q}_{x,\text{a}} \cdot \boldsymbol{dW}_{x,\text{a}} (t)\f]
18 \f[ \frac{d \boldsymbol{x}_{\text{o}}}{dt} = f_{x,\text{o}}(\boldsymbol{z})+ \boldsymbol{q}_{x,\text{o}} \cdot \boldsymbol{dW}_{x,\text{o}} (t)\f]
19 \f[ \frac{d \boldsymbol{y}_{\text{a}}}{dt} = f_{y,\text{a}}(\boldsymbol{z})+ \boldsymbol{q}_{y,\text{a}} \cdot \boldsymbol{dW}_{y,\text{a}} (t)\f]
20 \f[ \frac{d \boldsymbol{y}_{\text{o}}}{dt} = f_{y,\text{o}}(\boldsymbol{z})+ \boldsymbol{q}_{y,\text{o}} \cdot \boldsymbol{dW}_{y,\text{o}} (t)\f]
21 through the parameters stoch_params::q_ar, stoch_params::q_au, stoch_params::q_or and stoch_params::q_ou.
22 
23 ------------------------------------------------------------------------
24 
25 ## The resolved-unresolved components ##
26 
27 Due to the decomposition into resoved variables \f$ \boldsymbol x\f$ and unresolved variables \f$ \boldsymbol y\f$, the equation of the MAOOAM model can be rewritten:
28 
29 \f[ \frac{d \boldsymbol x}{dt} = \boldsymbol{H}^x + \boldsymbol{L}^{xx}\cdot\boldsymbol{x} + \boldsymbol{L}^{xy}\cdot\boldsymbol{y} + \boldsymbol{B}^{xxx} : \boldsymbol{x} \otimes \boldsymbol{x} + \boldsymbol{B}^{xxy} : \boldsymbol{x} \otimes \boldsymbol{y} + \boldsymbol{B}^{xyy} : \boldsymbol{y} \otimes \boldsymbol{y} + \boldsymbol{q}_{x} \cdot \boldsymbol{dW}_x \f]
30 \f[ \frac{d \boldsymbol y}{dt} = \boldsymbol{H}^y + \boldsymbol{L}^{yx}\cdot\boldsymbol{x} + \boldsymbol{L}^{yy}\cdot\boldsymbol{y} + \boldsymbol{B}^{yxx} : \boldsymbol{x} \otimes \boldsymbol{x} + \boldsymbol{B}^{yxy} : \boldsymbol{x} \otimes \boldsymbol{y} + \boldsymbol{B}^{yyy} : \boldsymbol{y} \otimes \boldsymbol{y} + \boldsymbol{q}_{y} \cdot \boldsymbol{dW}_y \f]
31 
32 where \f$\boldsymbol{q}_x= \{\boldsymbol{q}_{x,\text{a}},\boldsymbol{q}_{x,\text{o}}\}\f$ and \f$\boldsymbol{q}_y= \{\boldsymbol{q}_{y,\text{a}},\boldsymbol{q}_{y,\text{o}}\}\f$. We have thus also \f$\boldsymbol{dW}_x=\{\boldsymbol{dW}_{x,\text{a}},\boldsymbol{dW}_{x,\text{o}}\}\f$ and \f$\boldsymbol{dW}_y= \{\boldsymbol{dW}_{y,\text{a}},\boldsymbol{dW}_{y,\text{o}}\}\f$. The various terms of the equations above are accessible in the dec_tensor module. To specify which variables belong to the resolved (unresolved) component, the user must fill the SF.nml namelist file by setting the component of the vector sf_def::sf to 0 (1). This file must be filled before starting any of the stochastic and parameterization codes. If this file is not present, launch one of the programs. It will generate a new SF.nml file and then abort.
33 
34 The purpose of the parameterization is to reduce the \f$\boldsymbol x\f$ equation by closing it while keeping the statisical properies of the full system. To apply the parameterizations proposed in this implementation, we consider a modified version of the equation above:
35 
36 \f[ \frac{d \boldsymbol x}{dt} = F_x(\boldsymbol{x}) + \boldsymbol{q}_{x} \cdot \boldsymbol{dW}_x + \frac{\varepsilon}{\delta} \, \Psi_x(\boldsymbol{x},\boldsymbol{y}) \f]
37 \f[ \frac{d \boldsymbol y}{dt} = \frac{1}{\delta^2}\, \Big( F_y(\boldsymbol{y}) + \delta \, \boldsymbol{q}_{y} \cdot \boldsymbol{dW}_y \Big) + \frac{\varepsilon}{\delta} \, \Psi_y(\boldsymbol{x},\boldsymbol{y}) \f]
38 
39 where \f$\varepsilon\f$ is the resolved-unresolved components coupling strength given by the parameter stoch_params::eps_pert. \f$\delta\f$ is the timescale separation parameter given by the parameter stoch_params::tdelta. By setting those to 1, one recover the first equations above.
40 
41 The function \f$\Psi_x\f$ includes all the \f$\boldsymbol x\f$ terms, and thus \f$F_x\f$ and \f$\Psi_x\f$ are unequivocally defined.
42 On the other hand, depending on the value of the parameter stoch_params::mode, the terms regrouped in the function \f$F_y\f$ can be different.
43 Indeed, if stoch_params::mode is set to
44  - 'qfst', then:
45  \f[ F_y(\boldsymbol{y})= \boldsymbol{B}^{yyy} : \boldsymbol{y} \otimes \boldsymbol{y} \f]
46  - 'ures', then:
47  \f[ F_y(\boldsymbol{y})= \boldsymbol{H}^y + \boldsymbol{L}^{yy}\cdot\boldsymbol{y} + \boldsymbol{B}^{yyy} : \boldsymbol{y} \otimes \boldsymbol{y} \f]
48  However, for the WL parameterization, this parameter must be set to 'ures' by definition. See the article accompagnying this code for more details.
49 
50 ------------------------------------------------------------------------
51 
52 ## The MTV parameterization ##
53 
54 This parameterization is also called homogenization. Its acronym comes from the names of
55 the authors that proposed this approach for climate modes: Majda, Timofeyev and Vanden Eijnden
56 (Majda et al., 2001). It is given by
57 
58 \f[ \frac{d\boldsymbol{x}}{dt} = F_X(\boldsymbol{x}) + \frac{1}{\delta} R(\boldsymbol{x}) + G(\boldsymbol{x}) + \sqrt{2} \,\, \boldsymbol{\sigma}(\boldsymbol{x}) \cdot \boldsymbol{dW} \f]
59 
60 where \f$\boldsymbol{x}\f$ is the set of resolved variables and \f$\boldsymbol{dW}\f$ is a vector of standard Gaussian White noise.
61 \f$F_x\f$ is the set of tendencies of resolved system alone and \f$\delta\f$ is the timescale separation parameter.
62 
63 ### Correlations specification ###
64 
65 The ingredients needed to compute the terms\f$R,G,\boldsymbol\sigma\f$ of this parametrization are the unresolved variables covariance matrix and the integrated correlation matrices.
66 The unresolved variables covariance matrix is given by
67 \f[\boldsymbol\sigma_y = \langle \boldsymbol y \otimes \boldsymbol y \rangle \f]
68 and is present in the implementation through the matrices corrmod::corr_i and corrmod::corr_i_full.
69 Their inverses are also available through corrmod::inv_corr_i and corrmod::inv_corr_i_full .
70 The integrated correlation matrices are given by
71 \f[ \boldsymbol\Sigma = \int_0^\infty \, ds \langle \, \boldsymbol y \otimes \boldsymbol y^s \rangle \f]
72 \f[ \boldsymbol\Sigma_2 = \int_0^\infty ds \, \left(\langle \boldsymbol y \otimes \boldsymbol y^s \rangle \otimes \langle \boldsymbol y \otimes \boldsymbol y^s \rangle\right) \f]
73 and is present in the implementation through the matrices int_corr::corrint and int_corr::corr2int .
74 
75 These matrices are computed from the correlation matrix \f$\langle \boldsymbol y \otimes \boldsymbol y^s \rangle\f$ which is accessible
76 through the function corrmod::corrcomp.
77 For instance, the covariance matrix \f$\boldsymbol\sigma_y\f$ is then simply the correlation matrix at the lagtime 0,
78 and \f$\boldsymbol\Sigma\f$ and \f$\boldsymbol\Sigma_2\f$ can be computed via integration over the lagtime.
79 
80 There exists three different ways to load the correlation matrix, specified by the value
81 of the parameters stoch_params::load_mode and stoch_params::int_corr_mode .
82 The stoch_params::load_mode specify how the correlation matrix is loaded can take three different values:
83  - 'defi': from an analytical definition encoded in the corrmod module function corrmod::corrcomp_from_def .
84  - 'spli': from a spline definition file 'corrspline.def' .
85  - 'expo': from a fit with exponentials definition file 'correxpo.def'
86 
87 The stoch_params::int_corr_mode specify how the correlation are integrated and can take two different values:
88  - 'file': Integration results provided by files 'corrint.def' and 'corr2int.def'
89  - 'prog': Integration computed directly by the program with the correlation matrix. Write 'corrint.def' and 'corr2int.def' files to be reused later.
90 
91 These parameters can be set up in the namelist file stoch_params.nml .
92 Examples of the ".def" files specifying the integrals are provided with the code.
93 
94 ### Other MTV setup parameters ###
95 
96 Some additional parameters complete the options possible for the MTV parameters :
97  - stoch_params::mnuti : Multiplicative noise update time interval -- Time interval over which the matrix \f$\boldsymbol\sigma(\boldsymbol x)\f$ is updated.
98  - stoch_params::t_trans_stoch : Transient period of the stochastic model.
99  - stoch_params::maxint : Specify the upper limit of the numerical integration if stoch_params::int_corr_mode is set to 'prog'.
100 
101 ### Definition files ###
102 
103 The following definition files are needed by the parameterization, depending on the value of the parameters described above.
104 Examples of those files are joined to the code. The files include:
105  - 'mean.def' : Mean \f$\langle \boldsymbol y \rangle\f$ of the unresolved variables.
106  - 'correxpo.def': Coefficients \f$a_k\f$ of the fit of the elements of the correlations matrix \f$\langle \boldsymbol y \otimes \boldsymbol y^s \rangle\f$ with the function \f[ a_4+a_0 \, \exp\left(-\frac{s}{a_1}\right) \, \cos(a_2 \, s + a_3) \f]
107  where \f$t\f$ is the lag-time and \f$\tau\f$ is the decorrelation time. Used if stoch_params::load_mode is set to 'expo'.
108  - 'corrspline.def': Coefficients \f$b_k\f$ of the spline used to model the elements of the correlation matrix \f$\langle \boldsymbol y \otimes \boldsymbol y^s \rangle\f$. Used if stoch_params::load_mode is set to 'spli'.
109  - 'corrint.def': File holding the matrix \f$\boldsymbol\Sigma\f$. Used if stoch_params::int_corr_mode is set to 'file'.
110  - 'corr2int.def': File holding the matrix \f$\boldsymbol\Sigma_2\f$.
111 
112 The various terms are then constructed according to these definition files.
113 More details on the format of the definition files can be found [here](def_doc.md).
114 
115 ------------------------------------------------------------------------
116 
117 ## The WL parameterization ##
118 
119 This parameterization is based on the Ruelle response theory. Its acronym comes from the names of
120 the authors that proposed this approach: Wouters and Lucarini (Wouters and Lucarini, 2012). It is given by
121 
122 \f[\frac{d\boldsymbol{x}}{dt} = F_x(\boldsymbol{x}) + \varepsilon \, M_1(\boldsymbol{x}) + \varepsilon^2 \, M_2(\boldsymbol{x},t) + \varepsilon^2 \, M_3 (\boldsymbol{x},t)\f]
123 
124 where \f$\varepsilon\f$ is the resolved-unresolved components coupling strength and where the different terms \f$M_i\f$ account for average, correlation and memory effects.
125 
126 ### Correlations specification ###
127 
128 The ingredients needed to compute the \f$M_i\f$ terms of this parametrization are the unresolved variable covariance matrix \f$\langle \boldsymbol y \otimes \boldsymbol y \rangle\f$ and correlation matrix \f$\langle \boldsymbol y \otimes \boldsymbol y^s \rangle\f$.
129 The unresolved variables covariance matrix is given by
130 \f[\boldsymbol\sigma_y = \langle \boldsymbol y \otimes \boldsymbol y \rangle \f]
131 and is present in the implementation through the matrices corrmod::corr_i and corrmod::corr_i_full.
132 Their inverses are also available through corrmod::inv_corr_i and corrmod::inv_corr_i_full.
133 
134 The correlation matrix \f$\langle \boldsymbol y \otimes \boldsymbol y^s \rangle\f$ is accessible
135 through the function corrmod::corrcomp.
136 
137 As for the MTV case, there exists three different ways to load the correlation matrix, specified by the value
138 of the parameters stoch_params::load_mode and stoch_params::int_corr_mode .
139 The stoch_params::load_mode specify how the correlation matrix is loaded can take three different values:
140  - 'defi': from an analytical definition encoded in the corrmod module function corrmod::corrcomp_from_def .
141  - 'spli': from a spline definition file 'corrspline.def' .
142  - 'expo': from a fit with exponentials definition file 'correxpo.def'
143 
144 The correlation term \f$M_2\f$ is emulated by an order \f$m\f$ multidimensional AutoRegressive (MAR) process:
145 \f[ \boldsymbol u_n = \sum_{i=1}^m \boldsymbol u_{n-i} \cdot \boldsymbol W_i + \boldsymbol Q \cdot \boldsymbol\xi_n \f]
146 of which the \f$\boldsymbol W_i\f$ and \f$\boldsymbol Q\f$ matrices are also needed (the \f$\boldsymbol\xi_n\f$ are vectors of standard Gaussian white noise). It is implemented in the MAR module.
147 
148 ### Other WL setup parameters ###
149 
150 Some additional parameters complete the options possible for the WL parameters :
151  - stoch_params::muti : Memory term \f$M_3\f$ update time interval.
152  - stoch_params::t_trans_stoch : Transient period of the stochastic model.
153  - stoch_params::meml : Time over which the memory kernel is numericaly integrated.
154  - stoch_params::t_trans_mem : Transient period of the stochastic model to initialize the memory term.
155  - stoch_params::dts : Intrisic resolved dynamics time step.
156  - stoch_params::x_int_mode : Integration mode for the resolved component (not used for the moment -- must be set to 'reso').
157 
158 Note that the stoch_params::mode must absolutely be set to 'ures', by definition.
159 
160 ### Definition files ###
161 
162 The following definition files are needed by the parameterization, depending on the value of the parameters described above.
163 Examples of those files are joined to the code. The files include:
164  - 'correxpo.def': Coefficients \f$a_k\f$ of the fit of the elements of the correlations matrix \f$\langle \boldsymbol y \otimes \boldsymbol y^s \rangle\f$ with the function \f[ a_4+a_0 \, \exp\left(-\frac{s}{a_1}\right) \, \cos(a_2 \, s + a_3) \f]
165  where \f$t\f$ is the lag-time and \f$\tau\f$ is the decorrelation time. Used if stoch_params::load_mode is set to 'expo'.
166  - 'corrspline.def': Coefficients \f$b_k\f$ of the spline used to model the elements of the correlation matrix \f$\langle \boldsymbol y \otimes \boldsymbol y^s \rangle\f$. Used if stoch_params::load_mode is set to 'spli'.
167  - 'MAR_R_params.def': File specifying the \f$\boldsymbol R = \boldsymbol Q^2\f$ matrix for the MAR.
168  - 'MAR_W_params.def': File specifying the \f$\boldsymbol W_i\f$ matrices for the MAR.
169 
170 The various terms are then constructed according to these definition files.
171 More details on the format of the definition files can be found [here](def_doc.md).
172 
173 ------------------------------------------------------------------------
174 
175 ## References ##
176 
177 * Vannitsem, S., Demaeyer, J., De Cruz, L., and Ghil, M.: Low-frequency
178 variability and heat transport in a loworder nonlinear coupled ocean-atmosphere
179 model, Physica D: Nonlinear Phenomena, 309, 71-85, 2015.
180 
181 * De Cruz, L., Demaeyer, J., & Vannitsem, S.: The Modular Arbitrary-Order
182 Ocean-Atmosphere Model: MAOOAM v1.0,
183 Geoscientific Model Development, 9(8), 2793-2808, 2016.
184 
185 * Majda, A. J., Timofeyev, I., & Vanden Eijnden, E.: A mathematical framework
186 for stochastic climate models,
187 Communications on Pure and Applied Mathematics, 54(8), 891-974, 2001.
188 
189 * Franzke, C., Majda, A. J., & Vanden-Eijnden, E.: Low-order stochastic mode
190 reduction for a realistic barotropic model climate,
191 Journal of the atmospheric sciences, 62(6), 1722-1745, 2005.
192 
193 * Wouters, J., & Lucarini, V.: Disentangling multi-level systems: averaging,
194 correlations and memory.
195 Journal of Statistical Mechanics: Theory and Experiment, 2012(03), P03003, 2012.
196 
197 * Demaeyer, J., & Vannitsem, S.: Stochastic parametrization of subgrid-scale
198 processes in coupled ocean–atmosphere systems: benefits and limitations of response theory,
199 Quarterly Journal of the Royal Meteorological Society, 143(703), 881-896, 2017.
200 
201 Please see the main article for the full list of references:
202 
203 * Demaeyer, J. and Vannitsem, S.: Comparison of stochastic parameterizations in the framework
204 of a coupled ocean-atmosphere model, Nonlin. Processes Geophys. Discuss., 2018.
205