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

Implement model spin-up #581

Open
dalonsoa opened this issue Oct 9, 2024 · 8 comments · May be fixed by #714
Open

Implement model spin-up #581

dalonsoa opened this issue Oct 9, 2024 · 8 comments · May be fixed by #714
Assignees
Labels
enhancement New feature or request

Comments

@dalonsoa
Copy link
Collaborator

dalonsoa commented Oct 9, 2024

From the proposal

  • We need a mechanism to allow a model to run for many years while holding everything else constant. The principal use of this is to allow initial estimates of input data to converge to a biologically stable state before starting the ‘actual’ simulation from those stable conditions.
  • There are two possible mechanisms for terminating the spin up process: run for a fixed number of years or run until a set of watched variables generate stable results to a given precision. It’s probably good to have both options and they could work together.
  • In most cases, the spin up process can be thought of as a set of sequential runs with initial runs that we might want to converge to a steady state before we start the simulation, and then an actual simulation using outputs from those convergence runs. For example:
    • Run models with all frozen apart from Hydrology for 10 years, save soil moisture.
    • Run models with all frozen apart from Soil for 500 years, save carbon variables.
    • Run models with all active for 100 years, using the saved outputs from the first two runs (the actual simulation).
  • That could be done manually using three runs and configs but it would be useful to have a configuration mechanism that:
    • Specifies a set of spin up “epochs” with different model settings and spin up termination rules
    • Identifies which variables should pass from spin up into the main simulation.
    • In many cases, we will want to restart the ‘actual’ simulation with different scenarios after the burn in, so it might be cleaner to setup a burn in process that runs models and then updates the input data, ready for the actual simulation.
  • The immediate use case here is the Hydrology model, but any model could conceivably want to use this process.
@dalonsoa dalonsoa added the enhancement New feature or request label Oct 9, 2024
@dalonsoa
Copy link
Collaborator Author

dalonsoa commented Oct 9, 2024

@vgro , we will need example models to run and test if what we are implementing actually works, ideally the three scenarios described above of running hydrology only, soil only and finally the full thing.

@dalonsoa dalonsoa self-assigned this Oct 9, 2024
@dalonsoa
Copy link
Collaborator Author

dalonsoa commented Nov 6, 2024

@vgro , do you have any update on this. I can give a start - probably next week - but proper testing will not be possible without some exemplar scenario to run.

@davidorme davidorme added this to the Core structures milestone Jan 14, 2025
@vgro
Copy link
Collaborator

vgro commented Jan 14, 2025

@dalonsoa I'm terribly sorry that I haven't replied to this, I never received an email about the issue and we haven't checked the issues systematically in a while. I have a few urgent tasks this week, I'll try and get something for you by the end of next week.

@vgro
Copy link
Collaborator

vgro commented Jan 14, 2025

@vgro , we will need example models to run and test if what we are implementing actually works, ideally the three scenarios described above of running hydrology only, soil only and finally the full thing.

Would this be a case for the static model?

@dalonsoa
Copy link
Collaborator Author

I think so. I still need to figure out how to implement it exactly, specially handling the inputs and outputs (such that the relevant outputs of the first run serve as inputs for the second, etc...).

I'm at a conferences the whole of this week, so no rush. If you can prepare the scenarios next week, I would schedule the start of the work on the sprint starting on the 27th of January.

@vgro
Copy link
Collaborator

vgro commented Jan 16, 2025

I think so. I still need to figure out how to implement it exactly, specially handling the inputs and outputs (such that the relevant outputs of the first run serve as inputs for the second, etc...).

I'm at a conferences the whole of this week, so no rush. If you can prepare the scenarios next week, I would schedule the start of the work on the sprint starting on the 27th of January.

We have started trying to set up a static model with 'hydrology only' but run into some issues in the first update, I'll keep you posted

@vgro
Copy link
Collaborator

vgro commented Jan 20, 2025

@dalonsoa the static model is now running with the example data. To get started with this issue, I suggest using the example data set and setting everything but the hydrology to static (note that the plants have a separate config file).
As input you can repeat the example data, too.
Is this enough information to get started?

@dalonsoa
Copy link
Collaborator Author

Yes, I think so. I've schedule to work on this next week, so I'll keep you posted.

@dalonsoa dalonsoa linked a pull request Jan 31, 2025 that will close this issue
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants