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

Add function denoting steady state model or data #79

Open
mdpiper opened this issue Dec 1, 2020 · 5 comments
Open

Add function denoting steady state model or data #79

mdpiper opened this issue Dec 1, 2020 · 5 comments

Comments

@mdpiper
Copy link
Member

mdpiper commented Dec 1, 2020

Some models generate steady-state solutions. Similarly, some datasets represent a single time, or an averaged time period (e.g., ISRIC SoilGrids or USGS NLCD). In each case, the purpose of the BMI update function, as well as all the BMI time functions, become ambiguous. (How do you update a steady-state solution? What's the time step of the solution?)

This is a request to provide a BMI function that flags a model or dataset that doesn't change with time. When this flag is set we can set, or at least suggest, policies for how to implement the BMI update and time functions.

This issue arose from a recent discussion between @gantian127, @gregtucker, and @mcflugen.

@mdpiper
Copy link
Member Author

mdpiper commented Dec 1, 2020

Ideas for the name of this function: is_steady_state or the opposite is_time_evolving.

@mdpiper
Copy link
Member Author

mdpiper commented Mar 3, 2021

This issue also arises in the bmi-topography data component.

@mdpiper
Copy link
Member Author

mdpiper commented Mar 3, 2021

In the meantime, we should implement the time functions, but use dummy values, like start_time=0, end_time=0, etc.

@hrajagers
Copy link
Collaborator

Hi Mark, Some thoughts that come to my mind in the context of this question.

  • You're talking about "steady-state solutions", but such solutions will depend on boundary conditions and other model parameters that you set. So, if you change (via BMI) those conditions then you will need an update, but the time step is rather arbitrary indeed. The simplest case may be a component implementing a QH relationship: given a discharge, it will provide a "steady" value for the stage. In some cases the steady state is reached iteratively (for which it may use a quasi-time concept) and you may want to develop a steady state solver for a coupled system such that you want to tap into the iterative behaviour of the existing component. Would BMI allow that?
  • You're also referring datasets that represent a single time ... or averaging period ... or a patchwork of collected data set that together form a coverage of the whole earth (the time of that data set is more a release date than a time associated with the data itself, e.g. an GEBCO ). But would a measuring component (e.g. a coupled measurement device) that returns you the current value of the system fall in the same category?

@mdpiper
Copy link
Member Author

mdpiper commented Mar 4, 2021

Hi @hrajagers! Thank you for adding to this thread.

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

No branches or pull requests

2 participants