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

Save and Restore ICD Scaling Factor for SICDs Too #3978

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

bska
Copy link
Member

@bska bska commented Mar 8, 2024

Previously, we would save this information–but never restore it–only for autonomous ICDs ("AICD"). This PR expands our restart support for segment level "devices" (Spiral ICDs, Autonomous ICDs, Valves) to utilise more of the information that is available in the restart file. We introduce constructors for the device types from RstSegment and defer the reconstitution to those constructors.

While working on this, I also noticed a problem in the current master sources. The icd_length is treated as if it represents a volumetric flow rate at reservoir conditions, but it must be treated as a length.

@bska
Copy link
Member Author

bska commented Mar 8, 2024

I am creating this PR in draft mode because we will need considerable testing before we enable this in the master branch. Furthermore, some of the unit tests fail on my local development machine so I need to analyse those failures before marking this as "ready for review".

@bska bska changed the title Save and Restart ICD Scaling Factor for SICDs Too Save and Restore ICD Scaling Factor for SICDs Too Mar 8, 2024
@bska bska force-pushed the load-icd-scaling-factor branch 6 times, most recently from 46e4ebe to 724686d Compare March 18, 2024 11:29
@bska bska force-pushed the load-icd-scaling-factor branch 8 times, most recently from 3f6b392 to 9091496 Compare March 22, 2024 14:48
@bska bska force-pushed the load-icd-scaling-factor branch 14 times, most recently from ab2f5e2 to 0c352bc Compare April 8, 2024 13:53
@bska bska force-pushed the load-icd-scaling-factor branch 9 times, most recently from 4ab3cdb to 65ad93e Compare April 18, 2024 09:19
@bska bska force-pushed the load-icd-scaling-factor branch 3 times, most recently from 95573b4 to 8965de6 Compare April 25, 2024 12:23
@bska bska force-pushed the load-icd-scaling-factor branch 7 times, most recently from 166fda3 to ac1b2a2 Compare May 3, 2024 16:14
@bska bska force-pushed the load-icd-scaling-factor branch 3 times, most recently from 1f90c9c to 75d0a4a Compare May 8, 2024 10:40
bska added 7 commits May 13, 2024 14:05
The ICD length must not be converted as if it is a volumetric rate.
Mostly by adjusting whitespace, and by switching to using compiled
strings for item references.  While here, switch to using defaulted
default constructors where possible
In particular, add such constructors to the SICD, AutoICD, and
Valve types.  While here, switch to using the native 'int' value
for the ICD status and move conversion to the individual .cpp files.
That way, we defer responsibility to the classes which know most
about how to restore their internal state from restart information.
In particular, switch to using a native 'int' to represent the
segment type, and defer inspecting the value until we get to the
Segment::Segment(const RstSegment&) constructor.  That way, the
low-level restart information input routines do not depend on
higher-level type information.
While here, extract common item handing for AICDs and SICDs out
to a separate helper routine to avoid repeating the logic on the
output side.
@bska bska force-pushed the load-icd-scaling-factor branch from 75d0a4a to 097eb5b Compare May 13, 2024 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant