You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: components/omega/doc/design/OmegaV1GoverningEqns.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,4 @@
1
+
(omega-design-gonverning-equations-omega1)=
1
2
# Omega V1: Governing Equations
2
3
3
4
<!--
@@ -726,6 +727,7 @@ In the tracer equation, we note that surface fluxes (e.g. latent heat fluxes) wi
726
727
727
728
Omega will only predict the layer average normal velocity, so we drop the bold face on the $u$ terms except for the product of primes, which is specified in the next section.
Copy file name to clipboardExpand all lines: components/omega/doc/design/PGrad.md
+86-67Lines changed: 86 additions & 67 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,7 @@
5
5
## 1 Overview
6
6
The pressure gradient will be responsible for computing the horizontal gradients of both the pressure and geopotential terms for the non-Boussinesq primitive equations implemented in Omega.
7
7
In the non-Boussinesq model, the conserved quantity is mass rather than volume.
8
-
In Omega the prognostic variable $\tilde{h}$ is a pseudo thickness, rather than geometric thickness in m as in a Boussinesq model.
8
+
In Omega the prognostic variable $\tilde{h}$ is a pseudo thickness, rather than geometric thickness as in a Boussinesq model.
9
9
Some non-Boussinesq models are written in pressure coordinates (e.g. [de Szoeke and Samelson 2002](https://journals.ametsoc.org/view/journals/phoc/32/7/1520-0485_2002_032_2194_tdbtba_2.0.co_2.xml).
10
10
However, Omega is written in general vertical coordinates and can reference either pressure $p$ or distance $z$ in the vertical.
11
11
In a pure pressure coordinate the pressure gradient term disappears (since the pressure does not vary along lines of constant pressure), just as how the geopotential term disappears in a pure z coordinate model.
@@ -18,6 +18,7 @@ This means that Omega will need to compute both the pressure and geopotential gr
18
18
19
19
The pressure gradient will compute the horizontal gradients of both the pressure and geopotential to support tilted pressure coordinates in the non-Boussinesq model.
20
20
This will allow for the use of a $p^\star$ coordinate, which functions similarly to the $z^\star$ in the Boussinesq MPAS-Ocean model.
21
+
Note that we use the "$p^\star$" to refer to the vertical coordinate, in Omega it will be expressed in terms of the pseudo-height, $\tilde{z}$, as opposed to pressure directly.
21
22
22
23
### 2.2 Requirement: Initial support for a simple centered pressure gradient
23
24
@@ -34,7 +35,7 @@ In later versions of Omega, the pressure gradient will need to be able to includ
34
35
These tidal forcings include both the tidal potential and the self attraction and loading terms.
35
36
Additionally, other long-term changes to the geoid can be included in the geopotential.
36
37
37
-
### 2.5 Disired: Pressure gradient for barotropic mode
38
+
### 2.5 Desired: Pressure gradient for barotropic mode
38
39
39
40
For split barotropic-baroclinic timestepping, the pressure gradient should provide the bottom pressure gradient tendency in the barotropic mode.
40
41
This will be added in a future version when split time stepping is implemented.
@@ -43,22 +44,23 @@ This will be added in a future version when split time stepping is implemented.
43
44
44
45
## 3 Algorithmic Formulation
45
46
### 3.1 Centered Pressure Gradient
46
-
In the layered non-Boussinesq [momentum equation](OmegaV1GoverningEqns.md#discrete-momentum) solved in Omega, the pressure gradient tendency term for edge $e$ and level $k$, $T^p_{e,k}$, includes the gradient of the pressure and the gradient of the geopotential,
47
+
In the layered non-Boussinesq {ref}`momentum equation <omega-v1-momentum-eq>` solved in Omega, the pressure gradient tendency term for edge $e$ and level $k$, $T^p_{e,k}$, includes the gradient of the geopotential, the gradient of a term involving pressure, and two terms evaluated at the cell interface:
where the second term is necessary to account for tilted layers that occur when using a general vertical coordinate.
53
-
In this equation, $\alpha_{i,k}$ is the specific volume for cell $i$ at the mid-point of level $k$, $p_{i,k}$ is the pressure, and $\Phi_{i,k}$ is the geopotential.
53
+
The geopotential and interface terms are necessary to account for tilted layers that occur when using a general vertical coordinate, where the gradient operator is taken along layers.
54
+
In this equation, $\alpha_{i,k}$ specific volume, $p_{i,k}$ is the pressure, and $\Phi_{i,k}$ is the geopotential.
55
+
These three quantities are evaluated at the mid-point of level $k$ of cell $i$ in the first two terms and at the cell interfaces in the third term along with the interface psudo-height, \tilde{z}.
where $d_e$ is the distance between cell centers, $CE(e)$ are the cells on edge $e$, and $n_{e,i}$ is the sign of the edge normal with respect to cell $i$.
61
-
The horizontal averaging operator is:
63
+
The (cell-to-edge) horizontal averaging operator is:
When split baroclinic-barotropic time stepping is implemented in the future, the barotropic pressure gradient will be calculated by the pressure gradient class.
80
-
The barotropic pressure gradient is found by depth integrating the pressure gradient.
81
-
The pressure is
82
-
83
-
$$
84
-
p(z) = p_b - g \int^z_{-h} \rho dz^\prime,
85
-
$$
86
-
87
-
where $p_b$ is the bottom pressure.
88
-
The bottom pressure is the sum of the atmospheric surface pressure, $p_s$, and the pressure contribution of the water column:
where the height of the water column is represented by $H$.
110
-
The $1/\rho_0\widetilde{H}$ factor comes vertically integrating the material derivative and expressing the resulting barotropic momentum equation in non-conservative form.
111
-
112
-
Therefore, the barotorpic pressure gradient term is discretized as:
%When split baroclinic-barotropic time stepping is implemented in the future, the barotropic pressure gradient will be calculated by the pressure gradient class.
89
+
%The barotropic pressure gradient is found by depth integrating the pressure gradient.
90
+
%The pressure is
91
+
%
92
+
%$$
93
+
%p(z) = p_b - g \int^z_{-h} \rho dz^\prime,
94
+
%$$
95
+
%
96
+
%where $p_b$ is the bottom pressure.
97
+
%The bottom pressure is the sum of the atmospheric surface pressure, $p_s$, and the pressure contribution of the water column:
%where the height of the water column is represented by $H$.
119
+
%The $1/\rho_0\widetilde{H}$ factor comes vertically integrating the material derivative and expressing the resulting barotropic momentum equation in non-conservative form.
120
+
%
121
+
%Therefore, the barotorpic pressure gradient term is discretized as:
PressureGradHighOrder HighOrderPGrad; // To be implemented later
138
+
PressureGradHighOrder HighOrderPGrad1; // To be implemented later
139
+
PressureGradHighOrder HighOrderPGrad2; // Multiple high order options are likely in the future
130
140
PressureGradType PressureGradChoice;
131
141
I4 NVertLevels;
132
-
I4 NChuncks;
142
+
I4 NChunks;
133
143
Array2DI4 CellsOnEdge;
134
144
Array1DReal DvEdge;
135
145
Array1DReal EdgeSignOnCell;
@@ -144,7 +154,8 @@ An `enum class` will be used to specify options for the pressure gradient used f
144
154
```c++
145
155
enumclassPressureGradType{
146
156
Centered,
147
-
HighOrder
157
+
HighOrder1,
158
+
highOrder2
148
159
}
149
160
```
150
161
The functions to compute the centered and high order pressure gradient terms will be implemented as functors and the pressure gradient class will have private instances of these classes.
@@ -164,12 +175,12 @@ class PressureGrad{
164
175
165
176
The constructor will be responsible for storing any static mesh information as private variables and handling the selection of the user-specified pressure gradient option.
166
177
```c++
167
-
PressureGrad::PressureGrad(const HorzMesh *Mesh, int NVertLevels, Config *Options);
For a given analytical $v$, $h$, and $b$, the spatial convergence of the pressure gradient can be assessed by computing errors on progressively finer meshes.
240
+
For a given analytical $v$, $h$, and $b$, the spatial convergence of the pressure gradient can be assessed by computing errors on progressively finer meshes.
222
241
223
242
### Test: Baroclinic gyre
224
243
The baroclinic gyre test case will test the pressure gradient term in the full non-Boussinesq equations.
0 commit comments