Skip to content

BMIv3: Defining sets of variables exported by a model#186

Open
PhilMiller wants to merge 4 commits intobmi-3-developmentfrom
PhilMiller/bmi-3-variable-sets
Open

BMIv3: Defining sets of variables exported by a model#186
PhilMiller wants to merge 4 commits intobmi-3-developmentfrom
PhilMiller/bmi-3-variable-sets

Conversation

@PhilMiller
Copy link
Copy Markdown
Member

This is a generalization of the 'input' and 'output' sets of export items defined in BMI v2. This will enable models to present a richer range of variables to frameworks that are calling and driving them.

Example uses:

  • Parameters that can be varied for calibration
  • Diagnostic data (e.g. estimates of change in conserved values, internal model state)
  • Data to be captured for serialization

@PhilMiller
Copy link
Copy Markdown
Member Author

I posed this question to Nels:

Should there be an API to get the set of set names that a model defines?

I'm leaning toward 'no', because

  1. (introspection aside) callers should only really be asking for sets whose semantics they actually know, and
  2. set names are potentially a place where models could maybe usefully/meaningfully define arbitrary sets by parsing the name requested, or an unbounded number of sets

Additionally, "what sets can I expect from a given model?" seems like a very natural thing to tie into "what extensions does the model support?", and a given set name might even have different semantics around its contents depending on which of multiple conflicting extensions promise its presence

@PhilMiller
Copy link
Copy Markdown
Member Author

Initially asking for review from Scott and Nels for help in drafting this well, before really looking for feedback from the broader BMI council.

Comment thread docs/source/bmi.info_funcs.md Outdated
Comment thread bmi.sidl
Comment thread docs/source/bmi.info_funcs.md Outdated
@PhilMiller
Copy link
Copy Markdown
Member Author

Discussed this with Nels, and made some small revisions accordingly.

@PhilMiller PhilMiller changed the title Defining sets of variables exported by a model BMIv3: Defining sets of variables exported by a model Aug 20, 2025
@PhilMiller PhilMiller marked this pull request as ready for review August 20, 2025 00:26
@PhilMiller PhilMiller force-pushed the PhilMiller/bmi-3-variable-sets branch from 265c54d to af8ffd8 Compare August 25, 2025 18:38
@PhilMiller PhilMiller added the BMIv3 Prospective elements of a future major version 3 of the BMI specification. label Nov 4, 2025
@PhilMiller PhilMiller force-pushed the PhilMiller/bmi-3-variable-sets branch from af8ffd8 to e40459f Compare November 4, 2025 01:49
@PhilMiller PhilMiller force-pushed the PhilMiller/bmi-3-variable-sets branch from e40459f to 96727be Compare November 4, 2025 01:55
@PhilMiller PhilMiller requested a review from RolfHut November 4, 2025 15:35
@PhilMiller
Copy link
Copy Markdown
Member Author

@RolfHut Eric mentioned you may not have seen this suggestion at a previous meeting. It had pretty general support. It replaces input_vars = get_input_var_names with input_vars = get_varset_members("input"), so minimal impact on teachability/readability.

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

Labels

BMIv3 Prospective elements of a future major version 3 of the BMI specification. request-for-comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants