Testing Volume-less Vertical Sources
This week I tested volume-less vertical sources in both the idealized domain from John Wilkin and in LiveOcean.
In the idealized domain, w and omega seem reasonable. However, the inflowing water does not seem to match the specified forcing. In LiveOcean, Birch Bay WWTP still blew up despite having a volume-less source. More details below.
V-less in Idealized Domain
Before running a more complicated V-less test in LiveOcean, I first tried the V-less sources in John Wilkin’s simple grid. In this test, the only change I made was to incorporate Parker’s V-less code. Everything else remained the same as my last test:
- Source located in the middle of the water column
- Discharges at 10 m3/s (only used to scale tracers, and not added to volume)
- Freshwater source
- Inflowing temperature is the same as water already in the grid cell
- Density is a function of temperature only
An initial look at the surface plots (Fig. 1) show that we no longer see a negative vertical velocity at the surface. Additionally, SSH does not appear to be rising everywhere over time. Thus, the V-less source appears to be working.
Fig. 1 Surface u, v, w, SSH in idealized domain.
However, a closer look at section plots of salinity and temperature reveal some oddities. Figure 2 shows section salinity. Strangely, freshwater does not appear to be flowing from the source (despite code that tells ROMS to discharge 0 salinity water). Furthermore, Figure 3 suggests that warm water is being discharged from the source, which should not be the case. In the dot_in file, LtracerSrc = F for temperature (inflowing water should be at the same temperature as existing water). I do not fully understand why the forcing seems to be misbehaving.
Fig. 2 Section salinity in idealized domain.
Fig. 3 Section temperature in idealized domain.
Let’s put the strange inflow properties to the side for now so we can focus on velocities. Are the section velocities consistent with a buoyant, warm water plume discharging from the center of the water column? I believe they are!
Figures 4 and 5 show u and v, respectively. Above the buoyant source there is horizontal divergence. Under the buoyant source there is horizontal convergence. These observations are consistent with what I would expect of a buoyant plume.
Fig. 4 Section u in idealized domain.
Fig. 5 Section v in idealized domain.
Figure 6 and 7 show w and omega, respectively. Note that the colorbar scale for w and omega are different. w looks exactly like what I would expect. Vertical velocity is positive throughout the water column, reaching a maximum at the location of the source. Additionally, w is zero at the bottom and surface.
Omega is shown with a saturated colorbar. The oversaturation helps see the smaller magnitude velocities. In general, this video of omega suggests that we are seeing some convective circulation: warm water rises from the source, radiates horizontally outwards, then sinks.
Fig. 6 Section w in idealized domain.
Fig. 7 Section omega in idealized domain.
Overall, these vertical velocities make a lot of sense. This is a huge breakthrough!
V-less in LiveOcean
Although the forcing is behaving strangely in the idealized model, the vertical velocities look great. Thus, I’ve gone ahead and tested the V-less sources in LiveOcean. I added Birch Bay WWTP back into the model to see if this source would still blow up.
Implementing the V-less sources requires me to recompile ROMS. I took a look at the resulting omega.f90 file generated from the build and confirmed that Parker’s changes were correctly incorporated. Figure 8 shows a snippet of the omega.f90 file which indicates that the “volume-incorporating” part of LwSrc has been removed.
Fig 8. Compiled omega.f90 file.
So does Birch Bay WWTP still blow up?
Sadly, yes :(
Figure 9 shows a snapshot of the surface velocities at Birch Bay WWTP prior to model blow up.
Fig 9. Surface velocities near Birch Bay WWTP before blow up.
Given that w is still negative at the surface near Birch Bay WWTP, I am inclined to think that the vertical source was not in fact volume-less. However, the build file shown above suggests otherwise. Could there be some other issue causing an instability at the treatment plants?
I will also note that I re-ran LiveOcean with the “volume-incorporating” code, and Birch Bay WWTP blew up. The resulting surface velocity plot from this run is identical to Figure 9.