Skip to content

Commit 7e05a15

Browse files
committed
Add higher-order horizontal pressure gradient design doc
1 parent 0c58868 commit 7e05a15

3 files changed

Lines changed: 566 additions & 21 deletions

File tree

components/omega/doc/design/PGrad.md

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -90,22 +90,8 @@ $$
9090
$$
9191

9292
### 3.2 High-order Pressure Gradient
93-
The high order pressure gradient will be based on the {ref}`full volume integral form <omega-v1-vh-momentum-reynolds2>` of the geopotential and pressure terms:
94-
$$
95-
T^p &= - \int_A \int_{\tilde{z}_k^{\text{bot}}}^{\tilde{z}_k^{\text{top}}} \rho_0 \, \left( \nabla \left<\Phi\right> \right) \, d\tilde{z} \, dA \\
96-
& - \int_{\partial A} \left( \int_{\tilde{z}_k^{\text{bot}}}^{\tilde{z}_k^{\text{top}}} \rho_0 \left(\left< \alpha \right> \left<p \right> + \left<\alpha^\prime p^\prime\right> \right) \, d\tilde{z} \right) dl \\
97-
& - \int_A \rho_0 \left[ \left< \alpha \right> \left<p \nabla \tilde{z}_k^{\text{top}} \right> + \left<\alpha^\prime \left(p \nabla \tilde{z}_k^{\text{top}}\right)^\prime\right> \right]_{\tilde{z} = \tilde{z}_k^{\text{top}}} \, dA \\
98-
& + \int_A \rho_0 \left[ \left< \alpha \right> \left<p \nabla \tilde{z}_k^{\text{bot}} \right> + \left<\alpha^\prime \left(p \nabla \tilde{z}_k^{\text{bot}}\right)^\prime\right> \right]_{\tilde{z} = \tilde{z}_k^{\text{bot}}} \, dA.
99-
$$
100-
To obtain the expression that will be used, we neglect the turbulent correlations and drop the Reynold's average notation for single variables:
101-
$$
102-
T^p &= - \int_A \int_{\tilde{z}_k^{\text{bot}}}^{\tilde{z}_k^{\text{top}}} \rho_0 \, \left( \nabla \Phi \right) \, d\tilde{z} \, dA \\
103-
& - \int_{\partial A} \left( \int_{\tilde{z}_k^{\text{bot}}}^{\tilde{z}_k^{\text{top}}} \rho_0 \left(\alpha p \right) \, d\tilde{z} \right) dl \\
104-
& - \int_A \rho_0 \left[ \alpha \left<p \nabla \tilde{z}_k^{\text{top}} \right> \right]_{\tilde{z} = \tilde{z}_k^{\text{top}}} \, dA \\
105-
& + \int_A \rho_0 \left[ \alpha \left<p \nabla \tilde{z}_k^{\text{bot}} \right> \right]_{\tilde{z} = \tilde{z}_k^{\text{bot}}} \, dA.
106-
$$
107-
These volume and area integrals will be computed using quadrature to account for the variability of $\alpha$ with the reconstructed values of temperature, salinity, and pressure at the quadrature points.
108-
The complete details for the high-order pressure gradient will be the subject of a future design document.
93+
The high order pressure gradient will be based on the {ref}`full volume integral form <omega-v1-vh-momentum-reynolds2>` of the geopotential and pressure terms, evaluating the side-wall integral of $\alpha p$ together with the sloping-interface metric terms by quadrature and accounting for the variability of $\alpha$ with reconstructed temperature, salinity, and pressure.
94+
The complete design — including the reference-state equation-of-state expansion that bounds TEOS-10 cost, the mean-preserving reconstructions, and the discrete hydrostatic consistency property that keeps thin, steeply sloped layers robust — is given in the {ref}`Higher-Order Horizontal Pressure Gradient <omega-design-pressure-grad-high-order>` design document.
10995

11096
%### 3.3 Barotropic Pressure Gradient
11197
%
@@ -162,8 +148,8 @@ class PressureGrad{
162148

163149
// Instances of functors
164150
PressureGradCentered CenteredPGrad;
165-
PressureGradHighOrder HighOrderPGrad1; // To be implemented later
166-
PressureGradHighOrder HighOrderPGrad2; // Multiple high order options are likely in the future
151+
PressureGradHighOrder HighOrderPGrad; // high-order finite-volume scheme (see PGradHighOrder.md)
152+
// Additional high-order variants may be added in the future
167153

168154
// Pressure gradient choice from config
169155
PressureGradType PressureGradChoice;
@@ -187,9 +173,9 @@ The user will select a pressure gradient option at runtime in the input yaml fil
187173
An `enum class` will be used to specify options for the pressure gradient used for an Omega simulation:
188174
```c++
189175
enum class PressureGradType{
190-
Centered,
191-
HighOrder1,
192-
HighOrder2
176+
Centered, // 2nd-order Montgomery scheme (this document)
177+
FiniteVolume // high-order finite-volume scheme (see PGradHighOrder.md)
178+
// , <FutureVariant> // additional high-order option, added when implemented
193179
}
194180
```
195181
### 4.2 Methods

0 commit comments

Comments
 (0)