dhruvbhagtani / sfc-perturbation-expts

The ocean circulation is driven by a combination of winds and surface buoyancy fluxes. We run a number of experiments with varied surface forcings and look at the spatial variations in ocean circulation on short and long time-scales.
MIT License
2 stars 0 forks source link

Flux-forced simulations - varying heat flux by a constant #40

Open dhruvbhagtani opened 2 years ago

dhruvbhagtani commented 2 years ago

Unlike #39, here, we change the surface heat fluxes on the globe by a certain factor. The idea is to add heat to subtropics and lose out heat from the subpolar regions. So, in a way, not only are we changing the magnitude of heat flux, we are also changing the spatial structure. As a starting point, we aim to change the heat fluxes by 20 W/m2. Some potential issues:

  1. How do we identify the two regions of heat gain and heat loss? Some possible suggestions are: (i) Using barotropic stream function, and (ii) Using SSH contours.
  2. Once the two regions of heat gain and heat loss are identified, how do we apply the smoothing function to ensure that we don't have step functions for surface heat fluxes anywhere?
  3. Finally, we need to make sure that the heat gain and heat loss are balanced, so that the ocean doesn't have a net non-zero heat flux.
dhruvbhagtani commented 2 years ago

This comment is for deciding how to identify the two regions of heat gain and heat loss.

Here is a preview of how the barotropic streamfunction and SSH contours across the globe look like. Note that in the stream function plot, the red contours represent the subtropical gyres in both hemispheres, and vice versa. The area enclosed by dotted region is where heat loss will occur, and the area enclosed by solid line is where heat gain will occur.

We exclude the tropical region from this analysis. Then, except the eastern Atlantic (both subtropical and subpolar regions), the two plots will give us roughly similar regions of heat gain and heat loss. So, let's focus on the eastern Atlantic. I feel that the barotropic streamfunction is a more accurate representation of where gyres are supposed to be, and so choosing it makes more sense. What do you all think?

psi

ssh

navidcy commented 2 years ago

I vote for stream function.

How would you make the forcing function so that it saturates to +/-1 near the ψ=0?

navidcy commented 2 years ago

What do you mean "exclude tropics"? From the plots pr from the perturbation exps?

rmholmes commented 2 years ago

I think you need to try a few functions (of SSH and BT stream-function) and see what it looks like. It looks to me like you're going to run into problems in the Atlantic (particularly at low latitudes) with both - but you won't know until you try it.

dhruvbhagtani commented 2 years ago

@navidcy I meant we should exclude tropics rom the plots. But now that I think of it, we do need to discuss what we should do with the tropics. I am inclined towards keeping the fluxes constant. Certainly not in favour of reducing the heat fluxes, as the streamfunction plot suggests.

Also, to answer the next question about how we'll make the forcing, I am thinking of some sort of smoothing function. An example is this: https://math.stackexchange.com/questions/417717/looking-for-a-3d-smooth-step-function. But I am still working on it.,

dhruvbhagtani commented 2 years ago

I suggest an approach to create our wind mask, which is as follows (I refer to locations of net heat input as HI and locations of net heat output as HO):

  1. 1st global conditions for HI: abs(latitude) should at least be 40 degrees N/S.
  2. 2nd global condition for HI: abs(latitude) cannot be greater than 45 degrees N/S.
  3. 1st local condition: For Indian and Pacific oceans, SSH > 0.1 m for HI.
  4. 2nd local condition: For Atlantic oceans, SSH > -0.3 m for HI.

heat_map

I think tan hyperbolic function would be better for y-axis interpolation at the junction between heat gain and heat loss regions. Since it is a bit more complicated, for now, I'm just showing linear interpolation.

interpolation

Finally, I plot the junction (where mask = 0) as a contour on the streamfunction plot to check its sanity. I feel that the mask does a good job to capture the subtropical and subpolar gyres clearly in the Northern Hemisphere, but no so much in the Southern Hemisphere. For that, I guess I'll have to increase the latitude in condition 2.

heat_map_over_psi

navidcy commented 2 years ago
rmholmes commented 2 years ago

Did you decide that a tanh function of SSH wasn't going to work?

navidcy commented 2 years ago

Also it seems that you mask is only applied in lat... So there is no smoothing in longitude? (I'm just looking near South Africa for example)

navidcy commented 2 years ago

Why did you need to have those four conditions with ad-hoc latitudes? What happens if you drop them?

(Sorry if I'm asking things that you somehow asked yourself and came to a conclusion somehow.)

AndyHoggANU commented 2 years ago

Yeah, so, if you can make the zero-line smooth, then I don’t think you need smoothing in the zonal direction. If not, then you may need a little zonal smoothing.

I am also slightly concerned about the latitude in the Southern Hemisphere. I feel like it should be slightly further south, even if that means choosing different latitude ranges for the southern and northern cutoff values.

@rmholmes - the reason for avoiding tanh of SSH is that SSH anomalies are very small near the Easter boundaries, yet I was arguing this is still part of the gyre (i.e. anomalies there will propagate westwards into the gyre). The more zonal we can make this forcing, the better, I think.

Lastly, do we want to ensure zero net heat input?

rmholmes commented 2 years ago

Sounds good to me. I agree that the SH transition is a bit funny - you want the subtropical gyres to experience anomalous heating, not a transition between the two. The 0 line of the BT streamfunction seems like it would work reasonably well for this?

I think ensuring zero net heat input is important.

dhruvbhagtani commented 2 years ago

Yes, I think the mask needs some more work. Answering some questions:

  1. The mask's contour doesn't coincide with the zero-contour of the Barotropic stream function in the Southern Ocean because we are not taking 0 Sv as the contour, instead we are taking contours using SSH. But as Andy pointed out, instead of worrying about symmetry, I should make the mask in a way which captures the southern ocean gyres properly.
  2. Yep, the derivatives will have discontinuities, so this is something which can be solved using a smoothing function, which I am working on.
  3. No, I haven't ruled out the tanh smoothing of SSH. However, even if we do that, it will only be along y-axis, not along x-axis.
  4. Since the anomalies will propagate westward, it is crucial that we apply anomalies over the entire longitude range of the basin, not only where the gyre is present.
dhruvbhagtani commented 2 years ago

You're right @rmholmes, the next task will be to ensure net zero heat.

dhruvbhagtani commented 2 years ago

Here is the updated map with tanh smoothing. I have smoothed out the contour in the Southern Ocean a bit too.

heat_map_tanh tanh_one_lon-2

The smoothing is done over about 12 degrees latitude (i.e., transition from +1 to -1 occurs over 12 degrees). We can increase it even further (streamfunction map is present just below for reference).

heat_map_tanh_over_psi

I am now starting to move on to how to keep net zero heat flux, but if you have any suggestions from this plot, I'm happy to change it.

navidcy commented 2 years ago

I like that figure.... there are still some discontinuities south of Cape of Good Hope but that's OK I think.

If you compute the area integral of the positives and the negatives how much is the imbalance?

Like what's the area-integral of the positives heatflux perturbation ∫Θ(mask) dx dy compared to the the sum of the positives and negatives

( ∫Θ(mask) dx dy + ∫Θ(-mask) dx dy) ,

where Θ(x) is

def Θ(x):
    return 1/2 * np.sign(x) + 1/2
navidcy commented 2 years ago
import numpy as np
import matplotlib.pyplot as plt

def Θ(x):
    return 1/2*np.sign(x)+1/2

x = np.linspace(-10, 10, 100)

plt.plot(x, Θ(x));

Unknown

navidcy commented 2 years ago

(probably there is an easier way... I just wanted to mask everything that is positive or negative...)

navidcy commented 2 years ago

Here is the updated map with tanh smoothing. I have smoothed out the contour in the Southern Ocean a bit too.

heat_map_tanh tanh_one_lon-2

The smoothing is done over about 12 degrees latitude (i.e., transition from +1 to -1 occurs over 12 degrees). We can increase it even further (streamfunction map is present just below for reference).

heat_map_tanh_over_psi

I am now starting to move on to how to keep net zero heat flux, but if you have any suggestions from this plot, I'm happy to change it.

I'd try smoothing over double the range..., e.g., from -1 to 1 over 24 degrees? Just to see how it looks at least.

dhruvbhagtani commented 2 years ago

I'll try out the wider smoothing.

Regarding your other question: ratio of +ve to -ve area is 3:1. Didn't expect this. So, if we were to heat the red area uniformly by 20 W/m2, we'll have to cool the blue area by 60 W/m2!

navidcy commented 2 years ago

Why you didn't expect this? This is a projection. Area at the poles seems bigger than in reality... :)

dhruvbhagtani commented 2 years ago

Maybe I was looking at the map without any continents and expected a 1.5:1 ratio at max. But anyways, we'll have to deal with it. I will think about it. Certainly not in favour of heating by 20 and cooling by 60 W/m2.

navidcy commented 2 years ago

Certainly not in favour of heating by 20 and cooling by 60 W/m2.

Why not?

navidcy commented 2 years ago

perhaps if we exclude heading in the tropics then the heating-cooling could be equal?

dhruvbhagtani commented 2 years ago

Certainly not in favour of heating by 20 and cooling by 60 W/m2.

Why not?

Two reasons:

  1. Cooling the subpolar and polar gyres by such a huge factor could lead to a very weird overturning response.
  2. We already have a sort of temperature restoring in the Arctic and Antarctic through frazil formation. By increasing the heat loss, we can expect a very strong and unrealistic response of frazil in these polar regions.

Yep, I think not heating (or maybe cooling to some extent) the tropics would help.

AndyHoggANU commented 2 years ago

OK, so another possibility is to taper your heating function off as you approach the Equator. This will change the 3:1 ratio quite a bit and might make +/-20 doable?

Otherwise, map looks good to me.

dhruvbhagtani commented 2 years ago

Yep, I tapered off the heating function as we approach the equator, again using tanh function. It now looks like:

one_latitude_corrected

The overall map looks like (where the black contour represents 0 heat gain/loss): heat_map_corrected

This same black contour over the streamfunction plot is: heat_map_over_psi_corrected

A_pos -> Total area where mask = +1 A_neg -> Total area where mask = -1 By not having anything in the equator, we have managed to reduce A_pos/A_neg ratio from 3:1 to 1.5:1. Now, we have two options:

  1. Have a small negative (~-0.25) heat flux at the equator where currently we have 0.
  2. Continue with this map and change A_neg region from -1 to -1.5.

I am more inclined towards doing the first one because we have a lot of heat gain near the equator, and by subtracting a small amount (5-6 W/m2) should not make much difference. On the other hand, losing more heat at the poles could lead to more frazil formation in our ocean-only model, which I am not a big fan of.

navidcy commented 2 years ago

Go with your intuition @dhruvbhagtani.

navidcy commented 2 years ago

@dhruvbhagtani did you post something and unpost it? I got an email but I can't see it anymore here.

AndyHoggANU commented 2 years ago

Yeah, me too. What came through in the email looked good, but I couldn't find it on github.

navidcy commented 2 years ago

I had questions on that -- but perhaps also @dhruvbhagtani had second thoughts when he saw it and decided to retract :)

dhruvbhagtani commented 2 years ago

Oh, sorry. There is an issue with the mask; it starts to taper off in the subtropical gyre region only. And I haven't been able to figure it out because of OSM. Will get onto it after OSM.

dhruvbhagtani commented 2 years ago

Okay, so the issue with mask has been resolved, and we are continuing with no heat gain in the equatorial band, 0.5x heat gain in the tropical-subtropical band, and 1x heat loss in the subpolar polar band. This also ensures that we don't have any additional heat input in the ocean.

dhruvbhagtani commented 2 years ago

Here is the GitHub link for the control MOM5 experiment (https://github.com/dhruvbhagtani/varying-surface-forcing/blob/main/025deg_flux_forced_uniform/Control.ipynb), which is spun off from the ACCESS-OM2 fluxes (created from the last 20 years of the ACCES-OM2 run). Some comments/questions:

  1. I'm a bit concerned about the surface temperature increasing which can induce unnecessary density perturbations which aren't linked to heat fluxes, and so it might become a problem. What do you all think?
  2. When we picked the last 20 years from ACCESS-OM2 control, I was quite satisfied with the way AMOC and AABW metrics were looking. But AABW has reduced drastically in the 100 years of the MOM5 control. I hope it's not a big issue, since 0.25 degree models can't model AABW accurately anyways.
  3. I am continuing the MOM5 control for another 20 years, since I don't think we have reached a state of equilibrium. But again, running it more means that we are continuously adding heat into the ocean, which will increase our SSTs even more. So, will we ever be able to reach equilibrium with these set of parameters?
  4. I think the gyres have reached a state of equilibrium, and since we are concerned only with them, we can instead choose not to run this control experiment any longer and apply the perturbations, but this time I would like to ensure that we don't have any net heat gain.
dhruvbhagtani commented 2 years ago

Finally we got the results we wanted! Comparing two experiments here, (i) Control, and (ii) Heat perturbation with 20 W/m2 heat loss at higher latitudes and 10 W/m2 heat gain at lower latitudes. Longitudinally averaged heat flux maps show an increased heat contrast, which we ideally wanted: Screen Shot 2022-04-13 at 4 04 23 pm

The North Atlantic gyres (integrated to different depths) shows an increased circulation in (ii).

  1. Control Screen Shot 2022-04-13 at 3 57 45 pm copy
  2. Heat perturbation experiment Screen Shot 2022-04-13 at 3 57 45 pm

    Other experiments are still ongoing.

AndyHoggANU commented 2 years ago

Looks pretty clear!!

dhruvbhagtani commented 2 years ago

These are the percentile-time series area-weighted plots for different heat perturbation experiments.

  1. Green line is $\psi$ = 30 Sv. Screen Shot 2022-05-31 at 3 15 31 pm
  2. Green line is $\psi$ = 25 Sv. Screen Shot 2022-05-31 at 3 15 14 pm

Very intrigued by the $\psi$ = 25 Sv line, as it shows a significant increase in heat addition experiments in the beginning.

dhruvbhagtani commented 2 years ago

By intrigued, I mean "happy intrigued", as this variability is precisely what I observed in animations as well.

dhruvbhagtani commented 2 years ago

The figures show the first vs last 18 years of our perturbation experiments.

  1. Wind stress perturbations Last_18yrs_wind

  2. Buoyancy flux perturbations Last_18yrs_heat

This is in line with the above figures too, the non-linear effects start to dominate after some time.