| 63 |
Parts of the SEAICE code can be enabled or disabled at compile time |
Parts of the SEAICE code can be enabled or disabled at compile time |
| 64 |
via CPP preprocessor flags. These options are set in |
via CPP preprocessor flags. These options are set in |
| 65 |
\code{SEAICE\_OPTIONS.h}. |
\code{SEAICE\_OPTIONS.h}. |
| 66 |
Table \ref{tab:pkg:seaice:cpp} summarizes the most important ones. |
Table \ref{tab:pkg:seaice:cpp} summarizes the most important ones. For |
| 67 |
|
more options see the default \code{pkg/seaice/SEAICE\_OPTIONS.h}. |
| 68 |
|
|
| 69 |
\begin{table}[!ht] |
\begin{table}[!ht] |
| 70 |
\centering |
\centering |
| 528 |
number of Krylov iterations $\code{SEAICEkrylovIterMax} = 50$, because |
number of Krylov iterations $\code{SEAICEkrylovIterMax} = 50$, because |
| 529 |
the Krylov subspace has a fixed dimension of 50. |
the Krylov subspace has a fixed dimension of 50. |
| 530 |
|
|
| 531 |
|
Setting \code{SEAICEuseStrImpCpl = .TRUE.,} turns on ``strength |
| 532 |
|
implicit coupling'' \citep{hutchings04} in the LSR-solver and in the |
| 533 |
|
LSR-preconditioner for the JFNK-solver. In this mode, the different |
| 534 |
|
contributions of the stress divergence terms are re-ordered in order |
| 535 |
|
to increase the diagonal dominance of the system |
| 536 |
|
matrix. Unfortunately, the convergence rate of the LSR solver is |
| 537 |
|
increased only slightly, while the JFNK-convergence appears to be |
| 538 |
|
unaffected. |
| 539 |
|
|
| 540 |
\paragraph{Elastic-Viscous-Plastic (EVP) Dynamics\label{sec:pkg:seaice:EVPdynamics}}~\\ |
\paragraph{Elastic-Viscous-Plastic (EVP) Dynamics\label{sec:pkg:seaice:EVPdynamics}}~\\ |
| 541 |
% |
% |
| 542 |
\citet{hun97}'s introduced an elastic contribution to the strain |
\citet{hun97}'s introduced an elastic contribution to the strain |
| 615 |
+ \beta^{*}\frac{u^{p+1}-u^{p}}{\Delta{t}_{\mathrm{EVP}}} |
+ \beta^{*}\frac{u^{p+1}-u^{p}}{\Delta{t}_{\mathrm{EVP}}} |
| 616 |
\end{equation} |
\end{equation} |
| 617 |
where $n$ is the previous time step index, and $p$ is the previous |
where $n$ is the previous time step index, and $p$ is the previous |
| 618 |
sub-cycling index. The term allows the definition of a residual |
sub-cycling index. The extra ``intertial'' term |
| 619 |
|
$m\,(u^{p+1}-u^{n})/\Delta{t})$ allows the definition of a residual |
| 620 |
$|u^{p+1}-u^{p}|$ that, as $u^{p+1} \rightarrow u^{n+1}$, converges to |
$|u^{p+1}-u^{p}|$ that, as $u^{p+1} \rightarrow u^{n+1}$, converges to |
| 621 |
$0$ and a re-interpretation of EVP as a pure iterative solver where |
$0$. In this way EVP can be re-interpreted as a pure iterative solver |
| 622 |
the sub-cycling has lost all time-relation \citep{bouillon13, |
where the sub-cycling has no association with time-relation (through |
| 623 |
kimmritz15}. Using the terminology of \citet{kimmritz15}, the |
$\Delta{t}_{\mathrm{EVP}}$) \citep{bouillon13, kimmritz15}. Using the |
| 624 |
evolution equations of stress $\sigma_{ij}$ and momentum $\vec{u}$ can |
terminology of \citet{kimmritz15}, the evolution equations of stress |
| 625 |
be written as: |
$\sigma_{ij}$ and momentum $\vec{u}$ can be written as: |
| 626 |
\begin{align} |
\begin{align} |
| 627 |
\label{eq:evpstarsigma} |
\label{eq:evpstarsigma} |
| 628 |
\sigma_{ij}^{p+1}&=\sigma_{ij}^p+\frac{1}{\alpha} |
\sigma_{ij}^{p+1}&=\sigma_{ij}^p+\frac{1}{\alpha} |
| 631 |
\label{eq:evpstarmom} |
\label{eq:evpstarmom} |
| 632 |
\vec{u}^{p+1}&=\vec{u}^p+\frac{1}{\beta} |
\vec{u}^{p+1}&=\vec{u}^p+\frac{1}{\beta} |
| 633 |
\Big(\frac{\Delta t}{m}\nabla \cdot{\bf \sigma}^{p+1}+ |
\Big(\frac{\Delta t}{m}\nabla \cdot{\bf \sigma}^{p+1}+ |
| 634 |
\frac{\Delta t}{m}\vec{R}^{p+1/2}+\vec{u}_n-\vec{u}^p\Big). |
\frac{\Delta t}{m}\vec{R}^{p}+\vec{u}_n-\vec{u}^p\Big). |
| 635 |
\end{align} |
\end{align} |
| 636 |
$\vec{R}$ contains all terms in the momentum equations except for the |
$\vec{R}$ contains all terms in the momentum equations except for the |
| 637 |
rheology terms and the time derivative, $\alpha$ and $\beta$ are free |
rheology terms and the time derivative; $\alpha$ and $\beta$ are free |
| 638 |
parameters (\code{SEAICE\_evpAlpha}, \code{SEAICE\_evpBeta}) that |
parameters (\code{SEAICE\_evpAlpha}, \code{SEAICE\_evpBeta}) that |
| 639 |
replace the time stepping parameters \code{SEAICE\_deltaTevp} |
replace the time stepping parameters \code{SEAICE\_deltaTevp} |
| 640 |
($\Delta{T}_{\mathrm{EVP}}$), \code{SEAICE\_elasticParm} ($E_{0}$), or |
($\Delta{T}_{\mathrm{EVP}}$), \code{SEAICE\_elasticParm} ($E_{0}$), or |
| 641 |
\code{SEAICE\_evpTauRelax} ($T$). $\alpha$ and $\beta$ determine the |
\code{SEAICE\_evpTauRelax} ($T$). $\alpha$ and $\beta$ determine the |
| 642 |
speed of convergence and the stability. Usually, it makes sense to use |
speed of convergence and the stability. Usually, it makes sense to use |
| 643 |
$\alpha = \beta$, and \code{SEAICEnEVPstarSteps} $>> \alpha = \beta$ |
$\alpha = \beta$, and \code{SEAICEnEVPstarSteps} $\gg |
| 644 |
\citep{kimmritz15}. |
(\alpha,\,\beta)$ \citep{kimmritz15}. Currently, there is no |
| 645 |
|
termination criterion and the number of EVP* iterations is fixed to |
| 646 |
|
\code{SEAICEnEVPstarSteps}. |
| 647 |
|
|
| 648 |
In order to use EVP* in the MITgcm, set \code{SEAICEuseEVPstar = |
In order to use EVP* in the MITgcm, set \code{SEAICEuseEVPstar = |
| 649 |
.TRUE.,} in \code{data.seaice}. \code{SEAICEuseEVPrev =.TRUE.,} uses |
.TRUE.,} in \code{data.seaice}. If \code{SEAICEuseEVPrev =.TRUE.,} |
| 650 |
the actual form of equations (\ref{eq:evpstarsigma}) and |
the actual form of equations (\ref{eq:evpstarsigma}) and |
| 651 |
(\ref{eq:evpstarmom}) with fewer implicit terms and the factor of |
(\ref{eq:evpstarmom}) is used with fewer implicit terms and the factor |
| 652 |
$e^{2}$ dropped in the stress equations (\ref{eq:evpstresstensor2}) |
of $e^{2}$ dropped in the stress equations (\ref{eq:evpstresstensor2}) |
| 653 |
and (\ref{eq:evpstresstensor12}). This turns out to improve |
and (\ref{eq:evpstresstensor12}). Although this modifies the original |
| 654 |
convergence \citep{bouillon13}. |
EVP-equations, it turns out to improve convergence \citep{bouillon13}. |
| 655 |
|
|
| 656 |
Note, that for historical reasons, \code{SEAICE\_deltaTevp} needs to |
Note, that for historical reasons, \code{SEAICE\_deltaTevp} needs to |
| 657 |
be set to some value in order to use also EVP*. Also note, that |
be set to some (any!) value in order to use also EVP*; this behavoir |
| 658 |
|
many change in the future. Also note, that |
| 659 |
probably because of the C-grid staggering of velocities and stresses, |
probably because of the C-grid staggering of velocities and stresses, |
| 660 |
EVP* does not converge as successfully as in \citet{kimmritz15}. |
EVP* does not converge as successfully as in \citet{kimmritz15}. |
| 661 |
|
|
|
|
|
| 662 |
\paragraph{Truncated ellipse method (TEM) for yield curve \label{sec:pkg:seaice:TEM}}~\\ |
\paragraph{Truncated ellipse method (TEM) for yield curve \label{sec:pkg:seaice:TEM}}~\\ |
| 663 |
% |
% |
| 664 |
In the so-called truncated ellipse method the shear viscosity $\eta$ |
In the so-called truncated ellipse method the shear viscosity $\eta$ |
| 667 |
\label{eq:etatem} |
\label{eq:etatem} |
| 668 |
\eta = \min\left(\frac{\zeta}{e^2}, |
\eta = \min\left(\frac{\zeta}{e^2}, |
| 669 |
\frac{\frac{P}{2}-\zeta(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})} |
\frac{\frac{P}{2}-\zeta(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})} |
| 670 |
{\sqrt{(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})^2 |
{\sqrt{\max(\Delta_{\min}^{2},(\dot{\epsilon}_{11}-\dot{\epsilon}_{22})^2 |
| 671 |
+4\dot{\epsilon}_{12}^2}}\right). |
+4\dot{\epsilon}_{12}^2})}\right). |
| 672 |
\end{equation} |
\end{equation} |
| 673 |
To enable this method, set \code{\#define SEAICE\_ALLOW\_TEM} in |
To enable this method, set \code{\#define SEAICE\_ALLOW\_TEM} in |
| 674 |
\code{SEAICE\_OPTIONS.h} and turn it on with |
\code{SEAICE\_OPTIONS.h} and turn it on with |
| 870 |
|
|
| 871 |
\paragraph{Thermodynamics\label{sec:pkg:seaice:thermodynamics}}~\\ |
\paragraph{Thermodynamics\label{sec:pkg:seaice:thermodynamics}}~\\ |
| 872 |
% |
% |
| 873 |
|
\noindent\textbf{NOTE: THIS SECTION IS TERRIBLY OUT OF DATE}\\ |
| 874 |
In its original formulation the sea ice model \citep{menemenlis05} |
In its original formulation the sea ice model \citep{menemenlis05} |
| 875 |
uses simple thermodynamics following the appendix of |
uses simple thermodynamics following the appendix of |
| 876 |
\citet{sem76}. This formulation does not allow storage of heat, |
\citet{sem76}. This formulation does not allow storage of heat, |
| 886 |
The conductive heat flux depends strongly on the ice thickness $h$. |
The conductive heat flux depends strongly on the ice thickness $h$. |
| 887 |
However, the ice thickness in the model represents a mean over a |
However, the ice thickness in the model represents a mean over a |
| 888 |
potentially very heterogeneous thickness distribution. In order to |
potentially very heterogeneous thickness distribution. In order to |
| 889 |
parameterize a sub-grid scale distribution for heat flux |
parameterize a sub-grid scale distribution for heat flux computations, |
| 890 |
computations, the mean ice thickness $h$ is split into seven thickness |
the mean ice thickness $h$ is split into $N$ thickness categories |
| 891 |
categories $H_{n}$ that are equally distributed between $2h$ and a |
$H_{n}$ that are equally distributed between $2h$ and a minimum |
| 892 |
minimum imposed ice thickness of $5\text{\,cm}$ by $H_n= |
imposed ice thickness of $5\text{\,cm}$ by $H_n= \frac{2n-1}{7}\,h$ |
| 893 |
\frac{2n-1}{7}\,h$ for $n\in[1,7]$. The heat fluxes computed for each |
for $n\in[1,N]$. The heat fluxes computed for each thickness category |
| 894 |
thickness category is area-averaged to give the total heat flux |
is area-averaged to give the total heat flux \citep{hibler84}. To use |
| 895 |
\citep{hibler84}. To use this thickness category parameterization set |
this thickness category parameterization set \code{SEAICE\_multDim} to |
| 896 |
\code{\#define SEAICE\_MULTICATEGORY}; note that this requires |
the number of desired categories (7 is a good guess, for anything |
| 897 |
different restart files and switching this flag on in the middle of an |
larger than 7 modify \code{SEAICE\_SIZE.h}) in |
| 898 |
integration is not possible. |
\code{data.seaice}; note that this requires different restart files |
| 899 |
|
and switching this flag on in the middle of an integration is not |
| 900 |
|
advised. In order to include the same distribution for snow, set |
| 901 |
|
\code{SEAICE\_useMultDimSnow = .TRUE.}; only then, the |
| 902 |
|
parameterization of always having a fraction of thin ice is efficient |
| 903 |
|
and generally thicker ice is produced \citep{castro-morales14}. |
| 904 |
|
|
| 905 |
|
|
| 906 |
The atmospheric heat flux is balanced by an oceanic heat flux from |
The atmospheric heat flux is balanced by an oceanic heat flux from |
| 907 |
below. The oceanic flux is proportional to |
below. The oceanic flux is proportional to |