Difference between revisions of "Dissipation"
Line 1: | Line 1: | ||
Note that there are some slides from the LMDZ Earth Climate Model tutorial sessions: | Note that there are some slides from the LMDZ Earth Climate Model tutorial sessions: | ||
https://lmdz.lmd.jussieu.fr/utilisateurs/formation/winter_2024 | https://lmdz.lmd.jussieu.fr/utilisateurs/formation/winter_2024 | ||
− | in the "Dynamics: grid/temporal discretization/stability/dissipation" course which can be helpful to learn about dissipation in the PCM. | + | in the "Dynamics: grid/temporal discretization/stability/dissipation" course which can be helpful to learn about dissipation in the PCM, |
+ | why it is there, how it is handled, and what are the underlying parameters. | ||
== Description== | == Description== | ||
− | In the | + | In the LMDZ grid point model, nonlinear interactions between explicitly resolved scales |
and subgrid-scale processes are parameterized by applying a scale-selective horizontal dissipation operator based on an $$n$$ time iterated Laplacian $$\Delta^n$$. For the grid point model, for | and subgrid-scale processes are parameterized by applying a scale-selective horizontal dissipation operator based on an $$n$$ time iterated Laplacian $$\Delta^n$$. For the grid point model, for | ||
instance, this can be written: | instance, this can be written: | ||
Line 14: | Line 15: | ||
\end{align} | \end{align} | ||
− | where $$q$$ is a field component on which | + | where $$q$$ is a field component on which dissipation is applied, $$\delta x$$ is the smallest horizontal distance represented in the model and $$\tau_{diss}$$ is the dissipation timescale for a structure of scale $$\delta x$$. These operators are necessary to ensure the grid point model numerical stability. In practice, the operator is separately applied to three components : |
* the divergence of the flow, | * the divergence of the flow, | ||
* the vorticity of the flow, | * the vorticity of the flow, | ||
* potential temperature. | * potential temperature. | ||
− | We classically use n = 1 for the divergence of the flow and n = 2 for flow vorticity and potential temperature. | + | We classically use n = 1 for the divergence of the flow (<code>nitergdiv=1</code> in [[The_run.def_Input_File|run.def]]) and n = 2 for flow vorticity and potential temperature (<code>nitergrot=2</code> and <code>niterh=2</code> in [[The_run.def_Input_File|run.def]]). |
== How to change it in the model == | == How to change it in the model == | ||
Line 27: | Line 28: | ||
*nitergrot | *nitergrot | ||
*niterh | *niterh | ||
− | for the values of $$n$$ on each field, and the associated time scales $$\tau$$: | + | for the values of $$n$$ on each field, and the associated time scales $$\tau$$ (in s): |
*tetagdiv | *tetagdiv | ||
*tetagrot | *tetagrot | ||
Line 34: | Line 35: | ||
In [[The_run.def_Input_File|run.def]], there is also a key ''idissip'' (depreciated) or ''dissip_period'' which is the rate (in dynamical steps) at which to apply the dissipation (and thus impacts on the overall time step of the dissipation). | In [[The_run.def_Input_File|run.def]], there is also a key ''idissip'' (depreciated) or ''dissip_period'' which is the rate (in dynamical steps) at which to apply the dissipation (and thus impacts on the overall time step of the dissipation). | ||
− | In addition there are multiplicative factors on the dissipation that are applied going to the upper layers of the atmosphere (as it has been noted that usually more dissipation is required in the upper | + | In addition there are multiplicative factors on the dissipation that are applied going to the upper layers of the atmosphere (as it has been noted that usually more dissipation is required in the upper atmosphere than the lower atmosphere). These coefficients are: |
* dissip_fac_mid : dissipation multiplicative factor in the middle atmosphere | * dissip_fac_mid : dissipation multiplicative factor in the middle atmosphere | ||
* dissip_fac_up : dissipation multiplicative factor in the upper atmosphere | * dissip_fac_up : dissipation multiplicative factor in the upper atmosphere | ||
== Good to know rules and rules of thumb == | == Good to know rules and rules of thumb == | ||
− | * If your simulation shows numerical instabilities, a good idea is to increase dissipation. This means decreasing parameters $$\tau$$. | + | * If your simulation shows numerical instabilities, a good idea is to increase dissipation. This means decreasing parameters $$\tau$$ and/or increasing dissip_fac_up (and to a lesser extent dissip_fac_mid). |
* Optimal values for the dissipation timescales depends on the resolution of the horizontal grid. The higher the resolution, the more dissipation we need. | * Optimal values for the dissipation timescales depends on the resolution of the horizontal grid. The higher the resolution, the more dissipation we need. | ||
* Because dissipation is applied using an Explicit Euler time marching scheme, it is liable to be unstable if the time step is too large. This is tested at run-time by the model which will generate an error message of the likes of: | * Because dissipation is applied using an Explicit Euler time marching scheme, it is liable to be unstable if the time step is too large. This is tested at run-time by the model which will generate an error message of the likes of: |
Revision as of 15:57, 21 August 2025
Note that there are some slides from the LMDZ Earth Climate Model tutorial sessions: https://lmdz.lmd.jussieu.fr/utilisateurs/formation/winter_2024 in the "Dynamics: grid/temporal discretization/stability/dissipation" course which can be helpful to learn about dissipation in the PCM, why it is there, how it is handled, and what are the underlying parameters.
Description
In the LMDZ grid point model, nonlinear interactions between explicitly resolved scales and subgrid-scale processes are parameterized by applying a scale-selective horizontal dissipation operator based on an $$n$$ time iterated Laplacian $$\Delta^n$$. For the grid point model, for instance, this can be written:
\begin{align}
\label{def:Wns}
\frac{\partial q}{\partial t} = \frac{(-1)^n}{\tau_{diss}}(\delta x)^{2n}\Delta^nq
\end{align}
where $$q$$ is a field component on which dissipation is applied, $$\delta x$$ is the smallest horizontal distance represented in the model and $$\tau_{diss}$$ is the dissipation timescale for a structure of scale $$\delta x$$. These operators are necessary to ensure the grid point model numerical stability. In practice, the operator is separately applied to three components :
- the divergence of the flow,
- the vorticity of the flow,
- potential temperature.
We classically use n = 1 for the divergence of the flow (nitergdiv=1
in run.def) and n = 2 for flow vorticity and potential temperature (nitergrot=2
and niterh=2
in run.def).
How to change it in the model
In practice, the values of $$n$$ and $$\tau_{diss}$$ are prescribed in the run.def with the keys:
- nitergdiv
- nitergrot
- niterh
for the values of $$n$$ on each field, and the associated time scales $$\tau$$ (in s):
- tetagdiv
- tetagrot
- tetatemp
In run.def, there is also a key idissip (depreciated) or dissip_period which is the rate (in dynamical steps) at which to apply the dissipation (and thus impacts on the overall time step of the dissipation).
In addition there are multiplicative factors on the dissipation that are applied going to the upper layers of the atmosphere (as it has been noted that usually more dissipation is required in the upper atmosphere than the lower atmosphere). These coefficients are:
- dissip_fac_mid : dissipation multiplicative factor in the middle atmosphere
- dissip_fac_up : dissipation multiplicative factor in the upper atmosphere
Good to know rules and rules of thumb
- If your simulation shows numerical instabilities, a good idea is to increase dissipation. This means decreasing parameters $$\tau$$ and/or increasing dissip_fac_up (and to a lesser extent dissip_fac_mid).
- Optimal values for the dissipation timescales depends on the resolution of the horizontal grid. The higher the resolution, the more dissipation we need.
- Because dissipation is applied using an Explicit Euler time marching scheme, it is liable to be unstable if the time step is too large. This is tested at run-time by the model which will generate an error message of the likes of:
STOP : lateral dissipation is too intense and will generate instabilities in the model ! You must increase tetah (or increase dissip_period or increase day_step)