Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

episodic patch heterogeneity collapses during long runs #323

Closed
ckoven opened this issue Jan 22, 2018 · 2 comments · Fixed by #333 or #553
Closed

episodic patch heterogeneity collapses during long runs #323

ckoven opened this issue Jan 22, 2018 · 2 comments · Fixed by #333 or #553

Comments

@ckoven
Copy link
Contributor

ckoven commented Jan 22, 2018

All,

I've noticed a weird thing that happens, which I want to post here in hopes that anyone has ideas about possible solutions. In long runs (> 500 years or so), where I'm trying to evaluate what sort of long-term steady state the model is tending to relax to, instead of it actually reaching a long-term steady state, it is instead doing this thing where every once in a while the patch heterogeneity collapses, dropping from 10 (the max number at present) to only 1-2 patches all at once. The heterogeneity then slowly builds up again and then eventually collapses again (with a 200-300 years or so timescale). I've seen this behavior in a lot of different runs now, some with identical PFTs, some with competing PFTs. To investigate the overall patch dynamics, I did a couple runs with annually-resolved patch age bin resolution. Both were run with repeating BCI met driver data (so any variation at decadal or slower frequencies is internally-generated). Attached a couple figures of what his looks like. On the y axis are the patch age, and the x axis is the time since the start of the runs. The lines show trajectories of a given patch. The color of the lines is the patch area. When there are jumps it is because patches are getting fused:

screen shot 2018-01-22 at 2 55 34 pm

screen shot 2018-01-22 at 2 56 02 pm

If I plot timeseries of the number of patches in each run, it looks like this. Red line is one of the runs, and black line is the other.

screen shot 2018-01-22 at 2 58 25 pm

The thing that I find slightly troubling is that if you look at biomass or GPP in the runs (below), you can see that when the patch collapses occur, it also shows up as brief excursions in those fields. So this is something that has macro-scale effects on the model behavior.

screen shot 2018-01-22 at 2 59 52 pm

screen shot 2018-01-22 at 3 01 35 pm

Anyway, I mainly wanted to note this so that others are aware of it. It seems like we need to make some changes to the patch fusion criteria to prevent this from happening. One experiment that I did do was to reduce the increment by which the patch fusion criteria (profiletol) loosens when the max number of patches is exceeded from 10% to 2% to see if this was just an artifact of loosening that too much, but that didn't seem to have an effect

@ckoven
Copy link
Contributor Author

ckoven commented Jul 12, 2019

this is clearly still happening in many runs. reopening until we figure it out.

@ckoven ckoven reopened this Jul 12, 2019
@ckoven
Copy link
Contributor Author

ckoven commented Jul 16, 2019

a slight change to the patch fusion routine (e27deac) seems to fix this. basically what I think was happening is that in some cases the model needed to fuse two patches that were dissimilar in their biomass profiles in order to get the number of patches below the maximum allowed value. but because of the looping structure, if it entered the loop with a relaxed fusion tolerance, it would complete the loop even if the number of patches dropped below the minimum, during which tim eit would fuse all the patches. the new code resets the fusion tolerance to the starting level after each time it fuses two patches, so that if it got really big to force-fuse two patches, then it would only do that to the first pair it encountered, not to all subsequent pairs.

examples of the before and after code below:

before (with collapse), 600-year run, showing patch age structure, which resets a few times:
Screen Shot 2019-07-15 at 9 09 25 PM

after (without collapse, e27deac), same 600 year run:
Screen Shot 2019-07-15 at 9 09 36 PM

and here is the number of patches in the two cases: before is black, after is red:
Screen Shot 2019-07-15 at 9 11 19 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant