Next Article in Journal
Modeling of Energy Management System for Fully Autonomous Vessels with Hybrid Renewable Energy Systems Using Nonlinear Model Predictive Control via Grey Wolf Optimization Algorithm
Previous Article in Journal
Enhanced AUV Autonomy Through Fused Energy-Optimized Path Planning and Deep Reinforcement Learning for Integrated Navigation and Dynamic Obstacle Detection
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Implementation of a Second-Order TVD Transport Algorithm in the General Ocean Model (GOM)

1
Department of Engineering, Faculty of Engineering, College of Engineering and Technology, East Carolina University, Greenville, NC 27858, USA
2
Korea Coastal Ocean Modeling Solutions, Uiwang 16037, Republic of Korea
3
Department of Environmental Research, Korea Institute of Civil Engineering and Building Technology, Ilsanseo-gu, Goyang-si 10223, Republic of Korea
*
Author to whom correspondence should be addressed.
J. Mar. Sci. Eng. 2025, 13(7), 1296; https://doi.org/10.3390/jmse13071296
Submission received: 4 June 2025 / Revised: 23 June 2025 / Accepted: 26 June 2025 / Published: 30 June 2025
(This article belongs to the Section Coastal Engineering)

Abstract

This study presents the implementation of a scalar transport algorithm in the recently developed General Ocean Model (GOM), a three-dimensional, unstructured grid, finite volume/finite difference model. Solving the advection–diffusion transport equation is an essential part of any ocean circulation model since the baroclinic density gradient distinguishes saline water from freshwater. To achieve both high accuracy and computational efficiency, we adopted a second-order semi-implicit Total Variation Diminishing (TVD) scheme. The TVD approach, known for its ability to suppress non-physical oscillations near steep gradients, provides a higher-fidelity representation of salinity fronts without introducing significant numerical artifacts. The TVD algorithm is constructed with the first-order Upwind scheme, which is known for suffering from excessive numerical diffusion, and the higher-order anti-diffusive flux term. The implemented transport algorithm is evaluated using two standard test cases, an ideal lock exchange problem and a U-shaped channel problem, and it is further applied to simulate salinity dynamics in Mobile Bay, Alabama. The model results from both the first-order Upwind and second-order TVD schemes are compared. The results indicate that the TVD scheme marginally improves the resolution of salinity fronts while maintaining computational stability and efficiency. The implementation enables a flexible and straightforward transition between the first-order scheme, which is faster than the second-order scheme, and the second-order scheme, which is less diffusive than the first-order scheme, enhancing the GOM’s capability for realistic and efficient salinity simulations in a tidally driven estuarine system.

1. Introduction

An estuary is one of the most productive ecosystems and a socioeconomically important type of water body, providing a home for many birds and aquatic creatures. Estuaries are located where rivers meet the sea; thus, their systems are influenced by both rivers and the open sea. The mixing mechanism in an estuary is complex, and it is induced mostly by freshwater inflow, tidal forcing, and winds. To better understand estuarine circulation, computational numerical models have been widely used, providing nearly full space–time information.
Recently, Lee et al. [1] developed the General Ocean Model (GOM). The GOM was developed on an unstructured orthogonal grid, and it uses a semi-implicit scheme and the Eulerian–Lagrangian method (ELM) to achieve high numerical efficiency. The model was successfully tested against several well-known analytical solutions, and it was also applied to the Texas coast to verify its applicability in a complex estuarine system. Even though the model’s ability to predict the water surface elevation at a complex coastal area has been verified, the salinity transport algorithm has not been implemented.
One of the main differences between freshwater and seawater in hydrodynamics is the existence of the contribution of the density difference due to salinity gradients in seawater. Understanding the horizontal salinity gradient is important since it is one of the main driving forces for estuarine circulation. Thus, once the freshwater hydrodynamics have been calculated, the contribution of the baroclinic density gradient needs to be included. The baroclinic density gradient can be calculated by solving the transport equation, and we focus on the implementation of the transport algorithm in our model, the GOM.
There are several approaches to solving the scalar transport equation, and different numerical models have adopted different schemes. Three of the most widely used unstructured grid ocean circulation models in the USA might be (1) the unstructured grid, finite volume, three-dimensional primitive equation coastal ocean model (FVCOM), (2) the Semi-Implicit Cross-Scale Hydroscience Integrated System Model (SCHISM), and (3) the Stanford Unstructured Nonhydrostatic Terrain following the Adaptive Navier–Stokes Simulator (SUNTANS). For example, the FVCOM solves salinity using the traditional multidimensional positive definite advection transport algorithm [2]; the SCHISM uses the implicit second-order Total Variation Diminishing (TVD) scheme in vertical and the third-order weighted essentially non-oscillatory (WENO) scheme in the horizontal dimension [3]; the SUNTANS uses a semi-implicit method in vertical advection and vertical diffusion terms, and the Adams–Bashforth method is used in the horizontal diffusion term [4]; note that the TVD formulation of Casulli and Zanolli [5] was implemented in a newer version of the SUNTANS [6]. Another unstructured grid model that we must introduce is the Unstructured nonlinear Tidal Residual Inter-tidal Mudflat model (UnTRIM) since our model, the GOM, has great similarity in governing equations and numerical algorithms to the UnTRIM. Casulli and Zanolli [5] implemented the implicit second-order TVD scheme both in the horizontal and vertical direction to remove strong time restrictions by using any explicit methods while retaining as high an order as possible.
Among several approaches mentioned above, we adopted the second-order TVD scheme to keep both accuracy and simulation efficiency as in the UnTRIM, SCHISM, and SUNTANS. The reasons behind choosing the TVD scheme in the GOM are as follows. First, the TVD scheme is generally simpler to implement and computationally less expensive than other high-order methods such as WENO or the Discontinuous Galerkin (DG) method [7], and thus it makes TVD highly suitable for a mid- to large-scale ocean model like the GOM, where computational efficiency is crucial. Second, compared to WENO (which uses large stencils and involves computing weights for multiple interpolations) or DG (which has high degrees of freedom per cell and expensive flux computations), a TVD scheme requires less memory and computation, and thus it provides a good balance between accuracy and speed for long-time simulations. Third, the TVD scheme maintains monotonicity [8], which is particularly useful in modeling tracer transport (e.g., salinity or temperature) in estuaries or coastal systems where strong gradients exist, i.e., the TVD scheme is designed to prevent spurious oscillations near steep gradients or discontinuities.
In this study, we introduce the TVD transport algorithm used in the GOM and the test results with an ideal lock exchange problem and a U-shaped channel problem. Finally, we show verification results applying the GOM to Mobile Bay, Alabama. Both verification results with ideal and real cases show that the implicit TVD transport scheme is computationally efficient and numerically accurate, and an easy switch from the first-order Upwind scheme to the second-order TVD scheme, or vice versa, would provide the user more flexibility in applying this model.

2. Three-Dimensional Scalar Transport

Assuming incompressible hydrostatic flow, the governing equations for the three-dimensional momentum conservation equations, the free surface equation, and the scalar transport equation in a Cartesian coordinate system can have the following forms:
u t + u u x + v u y + w u z = g η x g ρ o z = h z = η ρ x d z 1 ρ o P a x + A h 2 u x 2 + 2 u y 2 + z A v u z + f v
v t + u v x + v v y + w v z = g η y g ρ o z = h z = η ρ y d z 1 ρ o P a y + A h 2 v x 2 + 2 v y 2 + z A v v z f u
P z = ρ g
η t + x z = h z = η u d z + y z = h z = η v d z = 0
C t + u C x + v C y + w C z = K h 2 C x 2 + 2 C y 2 + z K v C z
where u , v , and w are the velocity components in the horizontal x , y , and vertical z direction; η is the free surface elevation measured from the vertical origin; P is pressure; P a is atmospheric pressure; ρ o is the density of the reference fluid; g is the gravitational acceleration; f is the Coriolis parameter; A h and A v are the horizontal and vertical turbulent eddy viscosities, respectively; K h and K v are the horizontal and vertical turbulent eddy diffusivities; and C denotes the concentration of any scalar transported species.
The GOM is developed on an unstructured orthogonal mesh and the final grid system has N p polygons (i.e., the total number of cells or elements), each having three (if it is triangular) or four sides (if it is quadrilateral); the total number of sides in a grid system is defined as N s , and the length of each side is defined as λ j ; and the distance between the centers of neighboring cells, which share the j th side, is denoted by δ j (Figure 1). The details of the solution algorithm for the calculation of the velocity field and free surface elevation with Equations (1)–(4) with an unstructured orthogonal mesh, which is defined as in Figure 1, are well introduced in the previous work by Lee et al. [1]. Thus, we only focus on the solution algorithm of the transport equation, i.e., Equation (5), in this paper.
As mentioned above, the GOM is an unstructured grid model; thus, it may be worth noticing that Equations (1) and (2) should be correctly expressed in a new coordinate system, which is the face-normal and face-tangential coordinate system. Then, the resulting velocities should be transformed into the true north–east coordinate system. In addition, when solving each term in the governing equations, we can use different numerical methods and schemes to obtain the best results and achieve the main goals when developing a numerical model; the three main goals when developing the GOM were (1) accuracy, (2) speed, and (3) ease of use. As mentioned by Lee et al. [1] and in the previous section, the GOM utilized a semi-implicit scheme and the Eulerian–Lagrangian method (ELM) to solve the free surface equation and the momentum equations to achieve both accuracy and computational efficiency. A detailed explanation of the numerical methods and schemes used in the GOM is provided in Table 1.
Each numerical model has a different approach when handling the scalar advection–diffusion Equation (5), and we adopted a second-order TVD method, which is achieved by combining a first-order semi-implicit Upwind method and a second-order method achieved with a flux limiter function. Assuming that the vertical component of the velocity is positive, the discretization form of Equation (5) over an arbitrary shape of a water column can be written as follows [5]:
A i z i , k n + 1 C i , k n + 1 = A i z i , k n C i , k n + t j S i Q j , k n + θ C i i i , j , k n j S i + Q j , k n + θ C i , k n + t j = 1 S j d j , k n + θ C i i i , j , k n C i , k n + t 2 j = 1 S j ψ j , k n Q j , k n + θ C i , k n C i i i , j , k n + t Q i , k 1 2 n + θ C i , k 1 n Q i , k + 1 2 n + θ C i , k n + t d i , k + 1 2 n + θ C i , k + 1 n + 1 C i , k n + 1 + d i , k 1 2 n + θ C i , k 1 n + 1 C i , k n + 1 + t 2 ψ i , k 1 2 n Q i , k 1 2 n + θ C i , k n C i , k 1 n ψ i , k + 1 2 n Q i , k + 1 2 n + θ C i , k + 1 n C i , k n
where n + θ = θ n + 1 + ( 1 θ ) n for any property ; A i is the area of the i th element; z i , k is the height of the k th vertical layer at i th element; Q j , k n + θ = λ j Δ z j , k n u j , k n + θ ; Q i , k ± 1 2 n + θ = A i w i , k ± 1 2 n + θ ; D j , k n = λ j Δ z j , k n K h j , k n δ j ; D i , k ± 1 2 n = A i K v i , k ± 1 2 n z i , k ± 1 2 n ; d i , k ± 1 / 2 n + θ = max 0 , D i , k ± 1 / 2 n 1 2 Q i , k ± 1 / 2 n + θ ; d j , k n + θ = max 0 , D j , k n 1 2 Q j , k n + θ ; S i + is the set of sides belonging to the i th element through which the water is leaving the i th element; S i is the set of sides through which the water is entering the i th element; the subscripts i ,     j ,   and k denote i th element, j th side, and k th vertical layer, respectively; the subscript i i i , j denotes the neighbor of the element i that shares the side j with the i th element; and ψ ( r ) is the flux limiter term, and it is given by
ψ j , k n = ϕ j , k n φ j , k n
where
φ j , k n = min 1 , 2 D j n Q j , k n + θ
The flux limiter function ϕ r depends on the ratio of consecutive gradients r j n , and there are several approaches to estimate the gradient r j n . We defined it as follows for j S i + and w > 0 :
r j , k n = 1 C i i i , j , k n C i , k n l S i , k Q l , k n + θ C i , k n C i i i , l , k n + Q i , k 1 2 n + θ C i , k n C i , k 1 n   l S i , k Q l , k n + θ + Q i , k 1 2 n + θ
Several limiter functions can satisfy Sweby’s [9] criteria for second-order accuracy, and some of the most commonly used are as follows [5,10]:
Minmod :   ϕ r = m a x φ , min 1 , r                                                
van Leer :   ϕ r = max φ , r + r 1 + r                                                                  
Superbee :   ϕ r = m a x φ , min 1,2 r , m i n ( 2 , r )
If we move the unknown concentration values in the right-hand side of Equation (6) (i.e., vertical diffusion term in which the implicit scheme is used) to the left-hand side, the equation becomes a diagonally dominant tridiagonal system. Then, the unknown concentration C i , k n + 1 can be solved with a direct method such as the Thomas algorithm. The stability criterion for this algorithm is stricter than that of the hydrodynamic model, acting as a bottleneck of the model simulation. To resolve this issue, we implemented an additional sub-cycling approach, which was introduced by Zhang et al. [3] and Casulli and Zanolli [11]. For example, the horizontal advection term at the k th vertical layer in Equation (6) can be expressed as follows:
A i z i , k n + σ + 1 N t C i , k n + σ + 1 N t = A i z i , k n + σ N t C i , k n + σ N t + t j S i Q j , k n + θ C i i i , j , k n + σ N t j S i + Q j , k n + θ C i , k n + σ N t  
where N t is the substep number; t = t N t is a substep time size; σ = 0 ,   1 ,   2 ,   ,   N t 1 is the sub-cycle index; and z n + σ N t is the linearly interpolated value between z n and z n + 1 . Other terms in Equation (6) are also updated as in Equation (13) in the sub-cycling process. Once the new concentrations C i , k n + 1 have been computed for each scalar variable (e.g., salinity or temperature), the new water density ρ i , k n + 1 is calculated by the equation of state:
ρ = ρ ( T , S )
where ρ is the water density, T is the temperature, and S is the salinity. The temperature equation is not yet implemented in the current version of the GOM, and thus the density is only dependent on the salinity at this time; note that the equation of state presented by Millero and Poisson [12] is implemented in the GOM. Then, the contribution of the baroclinic gradient in Equation (1), when the scalar variables are either temperature or salinity, is calculated using an explicitly discretized form at the next time step [1,11]:
u j , k n + 1 = u j , k n g t ρ o δ j l = k M j ω l z j , l n ρ i j , 2 , l n ρ i j , 1 , l n
where δ j is the distance between the centers of neighboring elements that share the j th side as shown in Figure 1; M j is the index of the surface layer at the j th side; and ω k = 0.5 and ω l = 1 ,   l = k + 1 , k + 2 , , M j .

3. Verification Tests

3.1. Lock Exchange Problem

The success or failure of the implementation of the transport algorithm can be tested with the so-called “lock exchange” problem. We considered a rectangular basin with dimensions of 2   m   L × 2   c m   W × 0.3   m   ( h ) . The basin is discretized with a total of 100 rectangular horizontal elements, i.e., side length l = 2   c m and 30 vertical layers, i.e., z = 1   c m . The bottom friction and horizontal and vertical diffusivities were neglected. The rectangular basin was initially filled with two homogeneous salinities with an interface boundary at the middle point: S = 10 psu at the left and S = 0 psu at the right (Figure 2a). The simulation time step t was set to 0.01 s, and both the Superbee flux limiter and the more traditional first-order Upwind method were used.
The model simulation results at 20 s after the dam removal are shown in Figure 2b,c. The results, which are induced by the baroclinic gradient, are as expected and similar to the model result by Casulli and Zanolli [5], the hydrostatic version of the UnTRIM by Casulli and Zanolli [11], and the numerical results by Kalra et al. [13]. A distinguishing difference between Figure 2b,c appears at the interface at the top and bottom; the second-order TVD scheme, as expected, provides a less diffusive result than the first-order Upwind method, showing that both the first-order Upwind parts and the complementary flux limiter function parts in Equation (6) are correctly implemented in the developed model, the GOM.
Although Figure 2 shows that the advection part in Equation (6) is successfully implemented, the results are without the effect of horizontal and vertical diffusions. To show the diffusion effect by horizontal and vertical dispersion coefficients, additional simulations were conducted. Based on the TVD simulation shown in Figure 2b, the horizontal dispersion coefficient ( K h ) was activated with K h = 0.01   [ m 2 / s ] (Figure 3a), and similarly, the vertical dispersion coefficient ( K v ) was activated with K v = 0.01   [ m 2 / s ] (Figure 3b). Both results show that both horizontal and vertical diffusion terms in Equation (6) are successfully implemented, especially showing how effectively vertical mixing destroys vertical stratification.

3.2. Curved Channel Problem

The difference between the first-order Upwind and the second-order TVD schemes can be more clearly shown with a curved channel test, as shown by Casulli and Zanolli [5]. A curved shape channel (length L = 4.62   k m , width W = 120   m , and depth h = 10   m ) was discretized with 2874 quadrilateral horizontal cells ( x , y = 20   m ) and five vertical layers (Figure 4). The flow was driven by the water surface elevation difference between both ends ( η 1 = 5   c m and η 2 = 5   c m ). A constant salinity S = 1   p s u was imposed for 12 min from t = 3   h to t = 3.2   h at the inflow open boundary as a tracer, i.e., baroclinic density gradient terms in Equations (1) and (2) were turned off. The simulation time step was set to t = 20   s .
To see the pure difference of the implemented transport algorithms for the advection term, both horizontal and vertical diffusion terms were deactivated, and simulation results from the Upwind method and the TVD (note that Minmod was used for this simulation) are shown in Figure 5a and Figure 5b, respectively. The model simulation results are extracted at 3.33 h (i.e., 20 min after initial salinity injection) and 5.00 h. The results are as expected and agree well with the lock exchange tests, showing stronger diffusion with the first-order Upwind scheme than the second-order TVD scheme.
In a well-mixed estuarine system, diffusion plays an important role. Moreover, a numerically less diffusive high-order scheme may require artificial diffusion to better explain the well-mixed system. However, a numerically more diffusive low-order scheme may not require an additional artificial diffusion term since the scheme itself already has diffusive characteristics. In other words, a combination of a high-order scheme and an artificial diffusion term can be replaced by a simple low-order scheme in some systems. To show this relationship, one more test was conducted. A TVD scheme was applied with the artificial horizontal diffusion K h = 10   [ m 2 / s ] , which is a typical value in tidal estuaries with strong mixing, such as Mobile Bay and San Francisco Bay (Figure 5c), and the result is comparable with Figure 5a, which shows the result obtained with the Upwind scheme and no artificial diffusion.

3.3. Application to Mobile Bay, Alabama

Mobile Bay is located on the Northern Gulf of Mexico in southern Alabama. We modified the previously developed unstructured non-orthogonal grid, which Lee et al. [14] developed for Mobile Bay, into an orthogonal grid. The modified orthogonal model grid consists of 18,718 nodes and 35,127 elements with grid sizes ranging from approximately 67 m (at the ship channel) to 4.5 km (at the southern boundary). Twenty vertical layers were used, and the thickness of the vertical layer z gradually varies from 4 m , at the deep portion, to 1 m at the shallow area. The study area and the developed model grid are shown in Figure 6a, and the bathymetry, which was used in the model grid, is shown in Figure 6b.
Unlike barotropic simulation, baroclinic simulation or scalar transport simulation requires the initial condition of the transporting materials to be of good quality. If there are available observed data, some interpolation techniques would reproduce reasonable initial conditions and reduce the spin-up time. However, if there are not enough observed data, a rather long spin-up simulation, at least of the resident time, will be required, and this is the case of the current study site.
In this study, a 180-day spin-up simulation was carried out to obtain a reasonable initial salinity structure. For the spin-up simulation, rather simplified boundary conditions were applied. Tidal boundaries were forced with the principal lunar diurnal constituent, K 1 , which is the dominant tidal constituent at the study site, with an amplitude of 0.5 m. The river boundary, indicated by the red square in Figure 6a, was set with a constant of 260.0 [ m 3 / s ], which is an average flow rate for the main simulation period. Initial salinity was set to 10.0 psu in the entire model domain. There were no available salinity stations for the boundary salinity condition, and thus we used the salinity boundary values, which were used by Kim and Park [15] for their model simulation, i.e., 32.2 psu and 35.3 psu for the western and southern boundaries, respectively. The wind stress was ignored for the spin-up simulation. Spatially uniform bottom friction was considered with a constant Manning’s n = 0.01 . Then, the hydrodynamic simulation time step was set to 150 s with 10 sub-cycling steps for the transport equations; note that the specific sub-cycling steps were chosen through trial and error based on the model stability and simulation accuracy. The implicitness parameter θ was set to 0.6 for all semi-implicit schemes. For the spin-up simulation, the first-order Upwind scheme was used to obtain maximum simulation speed.
The main model simulation was considered for two months from 1 August to 30 September 2010. The initial conditions were obtained from the spin-up simulation. Then, the following boundary conditions were updated from the spin-up simulation. The model was driven by tides at the western and southern boundaries, which opens to the eastern Mississippi Sound to the northern Gulf of Mexico, respectively. The tidal boundary conditions at the western and southern boundary elements were directly obtained from the Pascagoula NOAA Lab station (PAS, station ID: 8741533) and the Dauphin Island station (DPI, station ID: 8735180), respectively (two red ‘+’ signs in Figure 6a), i.e., no amplitude and phase corrections were made for the water surface elevation boundary condition. Daily freshwater discharge at the northern boundary, which is located at the confluence of the Mobile and Tensaw Rivers, was calculated combining two U.S. Geological Survey (USGS) gauging stations: Claiborne Lock and Dam in the Alabama River (station ID: 02428400) and Coffeeville Lock and Dam in the Tombigbee River (station ID: 02469761); note that these stations are not shown in Figure 6 since they lie outside of the model domain. For the wind stress, the North American Mesoscale forecast system (NAM) 6-hourly reanalysis data were interpolated onto the entire horizontal model grids. The salinity boundary conditions were set to be identical to the spin-up simulation.
Both the first-order Upwind and the second-order TVD with Superbee schemes were applied, and the model simulations were compared. Even though a spin-up simulation was conducted to have a reasonable salinity initial condition, additional simulation time was required since artificial boundary conditions were applied for the spin-up simulation. It was assumed that a quasi-realistic state of salinity condition was achieved after a month of simulation from 1 August to 31 August 2010; thus, the salinity simulation results are shown only for the second month, i.e., September 2010.
The model Skill score (Skill), mean error (ME), mean absolute error (MAE), and root mean squared error (RMSE) were used to evaluate the performance of our numerical model, and they are defined as follows:
S k i l l = 1 ( M n O n ) 2 ( M n O ¯ + O n O ¯ ) 2 ,             ( 0 S k i l l 1 )
M E = 1 N ( M n O n ) ,
M A E = 1 N M n O n
R M S E = 1 N M n O n 2
where M n and O n are n th modeled and observed data, respectively; N is the total data number compared; and O ¯ is the mean observed value.
Modeled water surface elevations at two tide stations, Mobile State Dock (MSD) and Dauphin Island (DPI), are compared to the observed data (Figure 7). As shown in Figure 7, the modeled water surface elevation at DPI agrees well with the observed data (Skill = 0.98), but the Skill value at MSD dropped to 0.85, showing less accuracy than at DPI; Table 2 shows the Skill, ME, and RMSE values. However, the overall water surface elevation reproduction, including the baroclinic effect, was satisfactory.
Salinity simulation results at the Mobile Bay Light (MBL) station with both the first-order Upwind and second-order TVD (Superbee flux limiter was used) schemes were compared with the observed data (Figure 8), and model Skill assessment results are shown in Table 3. The model simulation results with both numerical schemes show general agreement with the observed data, both at the surface (0.5 m from the surface) and bottom (3.0 m from the surface); the model Skill values are 0.79 (Upwind) and 0.77 (TVD) at the surface. At the surface measurement point, the Upwind scheme results were slightly better than the TVD results; however, the TVD results were better than the Upwind results at the bottom measurement point (Table 3). As the simulation results indicated, there was no clear winner from this application study, even though we believe the higher-order TVD scheme would be the better option in most cases, or especially in a highly stratified system.
In addition to the stationary time series comparison, spatial vertical profiles of salinity were compared along the main ship channel (a red dotted line in Figure 6a) in Mobile Bay. Along the channel transect, salinities were extracted at both the ebb (Figure 9) and flood (Figure 10) phases. As shown in Figure 9 and Figure 10, along-channel vertical salinity profiles with Upwind and TVD schemes provide similar structures showing stronger stratification during the ebb phase than during the flood phase in Mobile Bay. One noticeable difference is that the TVD scheme provides a slightly stronger salinity intrusion than the more diffusive Upwind scheme at the mid-bay area. Other than that, both schemes’ results were comparable.
Even though there was some degree of discrepancy between the observed and modeled salinity data in this Mobile Bay application, these differences might be allowable since we used simplified boundary conditions due to the lack of observed data. For example, we used constant open boundary salinity conditions both at the southern and western boundaries; however, this assumption might not be accurate. Thus, it would be better if the model’s open boundary is located far away from the shelf to avoid the direct influence of the boundary salinity values. In addition, more accurate upstream freshwater boundary conditions, e.g., from a hydrological model, would improve the model simulation results. Another important physical parameter that significantly affects the estuarine mixing process is the bottom friction, and we used spatially constant bottom friction in this study; moreover, using spatially varying bottom friction would also improve the simulation results. Without these further efforts, we stopped the model validation process since the purpose of this application study was to verify whether or not the transport scheme was correctly implemented by testing the model in a complex real estuarine system. Finally, a model simulated salinity snapshot on 21 September 2010 (01:00:00) is shown in Figure 11, showing that the main salinity intrusion occurs through the main ship channel in Mobile Bay. Overall, the model simulation results are satisfactory, showing that the implemented transport algorithm, in which a user can easily switch from the first-order Upwind scheme to the second-order TVD scheme, works well in the developed model, the GOM.

4. Conclusions

We implemented a second-order TVD transport algorithm in which a user can easily switch from the first-order Upwind scheme to the TVD scheme, mostly following the algorithm, which was developed by Casulli and Zanolli [5], in the previously developed three-dimensional General Ocean Model (GOM). The algorithm was tested with a well-known “lock exchange” problem and a “U-shaped curved channel” problem, and then the model was applied to Mobile Bay, Alabama. The results from the ideal “lock exchange” problem show that both advection and transport schemes, which are implemented in the developed model, accurately calculate density flows in a closed system. Also, the “U-shaped curved channel” test shows that the implemented TVD transport algorithm is robust and provides less diffusive, higher resolution than the traditional first-order Upwind method. Finally, the realistic application test in Mobile Bay shows that the model can satisfactorily simulate the brackish water circulation in a complex estuarine system.
Even though this algorithm is robust, it has relatively strong restrictions compared to the hydrodynamic model algorithm. Thus, this transport algorithm is likely to become a bottleneck during a model simulation, negating the advantage of the high-speed hydrodynamic model algorithm. For this reason, we also adopted the sub-cycling approach. Using the sub-cycling approach, we could achieve high-resolution results while keeping a relatively large simulation time step. Another useful feature of the implemented TVD algorithm is that it naturally includes the first-order Upwind scheme, and the switch from the Upwind to a higher-order TVD can be easily achieved. Even though we all agree that the higher-order scheme is more accurate and can clearly capture a sharp gradient than a low-order scheme, we found that the low-order scheme is still beneficial in some cases through the Mobile Bay application test. Most transport problems require a quite long spin-up simulation to achieve a quasi-initial condition, and the spin-up simulation does not need to be super accurate with a resource-heavy high-order scheme. In this case, a faster Upwind scheme can be used to quickly reach a quasi-initial condition.
The numerically less diffusive TVD scheme is able to capture vertical stratification and salt fronts more clearly than a low-order Upwind scheme. For this reason, the TVD scheme would be more beneficial than the first-order Upwind scheme, especially in a calm, highly stratified estuary. In addition, it is possible to have more control over diffusion terms in a TVD scheme, as shown earlier in Figure 5c.
We implemented the three most popular limiter functions when implementing the TVD scheme: (1) Minmod, (2) van Leer, and (3) Superbee. One of the advantages of implementing the TVD scheme is that it is easy to add additional limiter functions. We only showed results with Minmod and Superbee limiter functions; however, we have not qualitatively analyzed the simulation difference between each limiter function in this study. A detailed study of flux limiters can be found in [7,10,16].
As we have recently finished the first task, which we mentioned in our previous work (see Lee et al. [1]), the GOM is now ready to be adopted in any coastal area to provide researchers with accurate tidal and salinity simulation results. However, the GOM is still behind some community-leading ocean circulation models, such as the FVCOM, SUNTANS, and SCHISM. We have not yet implemented the vertical turbulence model in the GOM; thus, the vertical mixing terms are calculated with the externally specified vertical eddy viscosity and diffusivity coefficients. Even though the impact of the turbulence model on the results would be minor with the first-order Upwind scheme because of its nature of excessive numerical diffusion, its contribution to the accuracy would be significant when using a second-order TVD scheme.
Transport algorithms are crucial in ocean modeling when we need to simulate the movement and dispersion of tracers such as salinity, temperature, nutrients, pollutants, or other substances in the ocean. Among these, we just finished implementing the salinity transport part. However, density-driven flow is not only induced by the salinity but also by the temperature, as both properties affect the water’s density. For this reason, the heat budget equations need to be implemented to analyze the density-driven flow more accurately. In addition, we also aim to develop this model to understand the water quality issues in the future, and the water quality simulation requires an accurate heat budget simulation as well. For this reason, implementation of the heat budget equations is on our next priority task list.

Author Contributions

All authors have significantly contributed to the manuscript by initiating the study concept (J.L. (Jungwoo Lee)), designing the study (J.L. (Jungwoo Lee), J.L. (Jun Lee), S.-L.Y., and S.-K.K.), developing the source code (J.L. (Jungwoo Lee) and J.L. (Jun Lee)), conducting the numerical simulations (J.L. (Jungwoo Lee)) and Mobile Bay orthogonal grid generation (J.L. (Jun Lee)), and drafting the manuscript (J.L. (Jungwoo Lee), J.L. (Jun Lee), S.-L.Y., and S.-K.K.). All authors have reviewed and agreed upon the manuscript content. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Data Availability Statement

The original contributions presented in this study are included in the article. Further inquiries can be directed to the corresponding author.

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Lee, J.; Lee, J.; Yun, S.-L.; Kim, S.-K. Three-Dimensional Unstructured Grid Finite-Volume Model for Coastal and Estuarine Circulation and Its Application. Water 2020, 12, 2752. [Google Scholar] [CrossRef]
  2. Chen, C.; Huang, H.; Beardsley, R.C.; Liu, H.; Xu, Q.; Cowles, G. A Finite Volume Numerical Approach for Coastal Ocean Circulation Studies: Comparisons with Finite Difference Models. J. Geophys. Res. Ocean. 2007, 112, C03018. [Google Scholar] [CrossRef]
  3. Zhang, Y.J.; Ye, F.; Stanev, E.V.; Grashorn, S. Seamless Cross-Scale Modeling with SCHISM. Ocean. Model. 2016, 102, 64–81. [Google Scholar] [CrossRef]
  4. Fringer, O.B.; Gerritsen, M.; Street, R.L. An Unstructured-Grid, Finite-Volume, Nonhydrostatic, Parallel Coastal Ocean Simulator. Ocean. Model. 2006, 14, 139–173. [Google Scholar] [CrossRef]
  5. Casulli, V.; Zanolli, P. High Resolution Methods for Multidimensional Advection–Diffusion Problems in Free-Surface Hydrodynamics. Ocean. Model. 2005, 10, 137–151. [Google Scholar] [CrossRef]
  6. Chua, V.P.; Fringer, O.B. Sensitivity Analysis of Three-Dimensional Salinity Simulations in North San Francisco Bay Using the Unstructured-Grid SUNTANS Model. Ocean. Model. 2011, 39, 332–350. [Google Scholar] [CrossRef]
  7. Lochab, R.; Kumar, V. A Comparative Study of High-Resolution Methods for Nonlinear Hyperbolic Problems. ZAMM J. Appl. Math. Mech. Z. Angew. Math. Mech. 2022, 102, e202100462. [Google Scholar] [CrossRef]
  8. Harten, A. High Resolution Schemes for Hyperbolic Conservation Laws. J. Comput. Phys. 1983, 49, 357–393. [Google Scholar] [CrossRef]
  9. Sweby, P.K. High Resolution Schemes Using Flux Limiters for Hyperbolic Conservation Laws. SIAM J. Numer. Anal. 1984, 21, 995–1011. [Google Scholar] [CrossRef]
  10. Versteeg, H.; Malalasekera, W. An Introduction to Computational Fluid Dynamics: The Finite Volume Method, 2nd ed.; Pearson: Harlow, UK; New York, NY, USA, 2007; ISBN 978-0-13-127498-3. [Google Scholar]
  11. Casulli, V.; Zanolli, P. Semi-Implicit Numerical Modeling of Nonhydrostatic Free-Surface Flows for Environmental Problems. Math. Comput. Model. 2002, 36, 1131–1149. [Google Scholar] [CrossRef]
  12. Millero, F.J.; Poisson, A. International One-Atmosphere Equation of State of Seawater. Deep. Sea Res. Part A Oceanogr. Res. Pap. 1981, 28, 625–629. [Google Scholar] [CrossRef]
  13. Kalra, T.S.; Li, X.; Warner, J.C.; Geyer, W.R.; Wu, H. Comparison of Physical to Numerical Mixing with Different Tracer Advection Schemes in Estuarine Environments. J. Mar. Sci. Eng. 2019, 7, 338. [Google Scholar] [CrossRef]
  14. Lee, J.; Lee, J.; Yun, S.-L.; Oh, H.-C. Development of a Finite Volume Two-Dimensional Model and Its Application in a Bay with Two Inlets: Mobile Bay, Alabama. Cont. Shelf Res. 2017, 146, 13–27. [Google Scholar] [CrossRef]
  15. Kim, C.-K.; Park, K. A Modeling Study of Water and Salt Exchange for a Micro-Tidal, Stratified Northern Gulf of Mexico Estuary. J. Mar. Syst. 2012, 96–97, 103–115. [Google Scholar] [CrossRef]
  16. Dubey, R.K. Flux Limited Schemes: Their Classification and Accuracy Based on Total Variation Stability Regions. Appl. Math. Comput. 2013, 224, 325–336. [Google Scholar] [CrossRef]
Figure 1. Orthogonal unstructured mesh and its notation used in the General Ocean Model (GOM), where i is the i th element; λ j ( i , 1 ~ l ) is the length of the j th side when calling from the i th element; and δ j is the distance between the centers of neighboring elements that share the j th side.
Figure 1. Orthogonal unstructured mesh and its notation used in the General Ocean Model (GOM), where i is the i th element; λ j ( i , 1 ~ l ) is the length of the j th side when calling from the i th element; and δ j is the distance between the centers of neighboring elements that share the j th side.
Jmse 13 01296 g001
Figure 2. (a) The initial salinity setting for the lock exchange problem, (b) the solution with the Superbee flux limiter at t = 20   s , and (c) the solution with the Upwind method at t = 20   s . Flow vectors are included in (b,c).
Figure 2. (a) The initial salinity setting for the lock exchange problem, (b) the solution with the Superbee flux limiter at t = 20   s , and (c) the solution with the Upwind method at t = 20   s . Flow vectors are included in (b,c).
Jmse 13 01296 g002
Figure 3. Lock exchange solutions at t = 20   s , (a) with K h = 0.01   [ m 2 / s ] , and (b) with K v = 0.01   [ m 2 / s ] .
Figure 3. Lock exchange solutions at t = 20   s , (a) with K h = 0.01   [ m 2 / s ] , and (b) with K v = 0.01   [ m 2 / s ] .
Jmse 13 01296 g003
Figure 4. U-shaped channel with a flow-aligned quadrilateral grid.
Figure 4. U-shaped channel with a flow-aligned quadrilateral grid.
Jmse 13 01296 g004
Figure 5. Salinity concentration extracted at two different times with (a) the Upwind method K h = 0.0   [ m 2 / s ] , (b) TVD (Minmod) with K h = 0.0   [ m 2 / s ] , and (c) TVD (Minmod) with K h = 10   [ m 2 / s ] .
Figure 5. Salinity concentration extracted at two different times with (a) the Upwind method K h = 0.0   [ m 2 / s ] , (b) TVD (Minmod) with K h = 0.0   [ m 2 / s ] , and (c) TVD (Minmod) with K h = 10   [ m 2 / s ] .
Jmse 13 01296 g005
Figure 6. (a) Unstructured orthogonal model grid for Mobile Bay, Alabama. Two red ‘+’ signs are the reference tide stations at the Pascagoula (PAS) and Dauphin Island (DPI) tide stations; a red square is the river boundary; two yellow dots denote the tide stations for the simulation results comparison at the DPI and Mobile State Dock (MSD) tide stations; a red triangle denotes the salinity station at Mobile Bay Light (MBL); and a red dotted line along the ship channel is the salinity extracting transect. (b) Bathymetry (water depth) used in the model grid.
Figure 6. (a) Unstructured orthogonal model grid for Mobile Bay, Alabama. Two red ‘+’ signs are the reference tide stations at the Pascagoula (PAS) and Dauphin Island (DPI) tide stations; a red square is the river boundary; two yellow dots denote the tide stations for the simulation results comparison at the DPI and Mobile State Dock (MSD) tide stations; a red triangle denotes the salinity station at Mobile Bay Light (MBL); and a red dotted line along the ship channel is the salinity extracting transect. (b) Bathymetry (water depth) used in the model grid.
Jmse 13 01296 g006
Figure 7. Water surface elevation comparison between the observed (blue circles) and the GOM simulation results (solid red lines) at the Mobile State Dock (MSD) and Dauphin Island (DPI) tide stations.
Figure 7. Water surface elevation comparison between the observed (blue circles) and the GOM simulation results (solid red lines) at the Mobile State Dock (MSD) and Dauphin Island (DPI) tide stations.
Jmse 13 01296 g007
Figure 8. Salinity comparison between the observed and the GOM simulation results at Mobile Bay Light (MBL). Yellow circles are observed data at MBL, and solid blue and red lines are the GOM simulation results with the first-order Upwind and Total Variation Diminishing (TVD) schemes, respectively. (a) Salinity comparison at the surface layer and (b) salinity comparison at the bottom layer.
Figure 8. Salinity comparison between the observed and the GOM simulation results at Mobile Bay Light (MBL). Yellow circles are observed data at MBL, and solid blue and red lines are the GOM simulation results with the first-order Upwind and Total Variation Diminishing (TVD) schemes, respectively. (a) Salinity comparison at the surface layer and (b) salinity comparison at the bottom layer.
Jmse 13 01296 g008
Figure 9. The along-channel, the red dotted line in Figure 6a, salinity profile during the ebbing period. (a) Simulated water surface elevation at Mobile Bay Light (MBL); a red cross mark ( × ) denotes the data extraction phase. (b) Model simulation results with the first-order Upwind scheme and (c) with the TVD scheme. The left side is the location close to the bay entrance near the Dauphin Island (DPI) tide station, and the right side is the location close to the Mobile State Dock (MSD) tide station. The location of the MBL is shown with a dotted vertical line.
Figure 9. The along-channel, the red dotted line in Figure 6a, salinity profile during the ebbing period. (a) Simulated water surface elevation at Mobile Bay Light (MBL); a red cross mark ( × ) denotes the data extraction phase. (b) Model simulation results with the first-order Upwind scheme and (c) with the TVD scheme. The left side is the location close to the bay entrance near the Dauphin Island (DPI) tide station, and the right side is the location close to the Mobile State Dock (MSD) tide station. The location of the MBL is shown with a dotted vertical line.
Jmse 13 01296 g009
Figure 10. Same as Figure 9, but during a flooding period.
Figure 10. Same as Figure 9, but during a flooding period.
Jmse 13 01296 g010
Figure 11. Model-simulated salinity with the TVD scheme on 21 September 2010 (01:00:00).
Figure 11. Model-simulated salinity with the TVD scheme on 21 September 2010 (01:00:00).
Jmse 13 01296 g011
Table 1. Numerical methods and schemes used in the barotropic equations in the GOM.
Table 1. Numerical methods and schemes used in the barotropic equations in the GOM.
EquationNumerical MethodNumerical Scheme
Free surface equationFVM θ scheme
Nonlinear advectionFDMExplicit ELM
PropagationFDM θ scheme
Air pressureFDM θ scheme
Horizontal diffusionFVMExplicit cell-centered
Vertical diffusionFDMImplicit central difference
CoriolisFDMExplicit ELM
FVM: Finite Volume Method; FDM: Finite Difference Method; ELM: Eulerian–Lagrangian method; and θ scheme: semi-implicit scheme.
Table 2. Error analysis of the surface elevation simulation.
Table 2. Error analysis of the surface elevation simulation.
StationSkillME (cm)RMSE (cm)
MSD0.820.6514.2
DPI0.980.154.6
Table 3. Error analysis of the salinity simulation at Mobile Bay Light (MBL).
Table 3. Error analysis of the salinity simulation at Mobile Bay Light (MBL).
Vertical Position Transport SchemeSkillME (psu)MAE (psu)RMSE (psu)
SurfaceUpwind0.79−0.151.191.46
TVD0.770.391.301.60
BottomUpwind0.54−1.321.551.92
TVD0.62−0.601.231.61
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Lee, J.; Lee, J.; Yun, S.-L.; Kim, S.-K. Implementation of a Second-Order TVD Transport Algorithm in the General Ocean Model (GOM). J. Mar. Sci. Eng. 2025, 13, 1296. https://doi.org/10.3390/jmse13071296

AMA Style

Lee J, Lee J, Yun S-L, Kim S-K. Implementation of a Second-Order TVD Transport Algorithm in the General Ocean Model (GOM). Journal of Marine Science and Engineering. 2025; 13(7):1296. https://doi.org/10.3390/jmse13071296

Chicago/Turabian Style

Lee, Jungwoo, Jun Lee, Sang-Leen Yun, and Seog-Ku Kim. 2025. "Implementation of a Second-Order TVD Transport Algorithm in the General Ocean Model (GOM)" Journal of Marine Science and Engineering 13, no. 7: 1296. https://doi.org/10.3390/jmse13071296

APA Style

Lee, J., Lee, J., Yun, S.-L., & Kim, S.-K. (2025). Implementation of a Second-Order TVD Transport Algorithm in the General Ocean Model (GOM). Journal of Marine Science and Engineering, 13(7), 1296. https://doi.org/10.3390/jmse13071296

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop