BMI interface with user-defined input/output variables#26
BMI interface with user-defined input/output variables#26adlzanchetta wants to merge 7 commits intoCSHS-CWRA:mainfrom
Conversation
…-NextGen Feature/functions required by next gen
Input variables accepted: forcings Output variables accepted: state variables and outflow (special case) BMI config file now requires the definition of both input and output variables
…t variables Also variables types changed from 'state' and 'derived' to 'hru_state' and 'subbasin_state', respectively.
for more information, see https://pre-commit.ci
As pModel->Initialize() changes the value of Options.duration to 365 (the default), the setting of Options.duration to "almost infinite" needs to take place after pModel->Initialize() to persist. This commit moves the setting of Options.duration to the right place.
|
Hi @adlzanchetta - just getting around to this now. Apologies for the delay. Can you merge with newest branch and re-pull. Can't figure out how to resolve the (unimportant) conflicts via GitHub. Such a non-intuitive UI. |
analytophile
left a comment
There was a problem hiding this comment.
Can you merge with current branch such that all diffs are in Raven_BMI.cpp/.h? It will be easier for me to merge afterwards. Sorry for the massive delay.
Hi @analytophile . Unfortunately, it has been so long since I've touched it that the amount of time I would have to dedicate just to reconnect with the project would be prohibitive for me at the moment... |
|
No worries. I'll take a stab at it.
…On Sat, Mar 15, 2025, 1:50 p.m. Andre Della Libera Zanchetta < ***@***.***> wrote:
Can you merge with current branch such that all diffs are in
Raven_BMI.cpp/.h? It will be easier for me to merge afterwards. Sorry for
the massive delay.
Hi @analytophile <https://github.com/analytophile> . Unfortunately, it
has been so long since I've touched it that the amount of time I would have
to dedicate just to reconnect with the project would be prohibitive for me
at the moment...
—
Reply to this email directly, view it on GitHub
<#26 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AH3MFXRAP3RQHTJIFYC5A3D2URR6JAVCNFSM6AAAAABY4SPNDSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMRWHA2TIMZVGI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
[image: adlzanchetta]*adlzanchetta* left a comment
(CSHS-CWRA/RavenHydroFramework#26)
<#26 (comment)>
Can you merge with current branch such that all diffs are in
Raven_BMI.cpp/.h? It will be easier for me to merge afterwards. Sorry for
the massive delay.
Hi @analytophile <https://github.com/analytophile> . Unfortunately, it
has been so long since I've touched it that the amount of time I would have
to dedicate just to reconnect with the project would be prohibitive for me
at the moment...
—
Reply to this email directly, view it on GitHub
<#26 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AH3MFXRAP3RQHTJIFYC5A3D2URR6JAVCNFSM6AAAAABY4SPNDSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMRWHA2TIMZVGI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
What kind of change does this PR introduce?
The BMI interface had hardcoded 2 input and 3 output variables. This PR makes the number and the type of input/output variables dynamic and defined by the user through the BMI config file.
Does this PR introduce a breaking change?
It only affects the BMI interface (only files changed were
Raven_BMI.cppandRaven_BMI.h).Prior to this PR, a valid BMI .yaml config file would have the following one-line content:
After this PR, the BMI .yaml NEEDs to include input/output variables. The following content would provide the same output as the above-mentioned example:
Other information:
forcingvariables are currently supported asinput_vars, but the code is structured to be easily expanded in the future to supportsubbasin_stateandhru_statevariables;subbasin_stateandhru_statevariables are currently supported asoutput_vars;subbasin_statevariables supported:RESERVOIR_STAGE,STREAMFLOWandOUTFLOW(STREAMFLOW=OUTFLOW).