-
Notifications
You must be signed in to change notification settings - Fork 112
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
Really limit processing of deck to actnum to determine active cells. #4361
base: master
Are you sure you want to change the base?
Really limit processing of deck to actnum to determine active cells. #4361
Conversation
When setting up the EclipseGrid, we create a temporary FieldProps object for getting the ACTNUM array. Somehow we processed all EQUALS statements in the GRID section for this. This seems overkill here. Hence we now only honor EQUALS ACTNUM to save some processing. Not relevant for the manual.
jenkins build this please |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough, but we need to account for the box updates even if we're not processing any of the other operations.
if (onlyACTNUM && target_kw != "ACTNUM") { | ||
continue; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we're going to make this optimisation, then the continue
statement should at least be after box.update()
. We absolutely need to account for those updates because they give the default box bounds for the next record.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't necessarily agree. My interpretation is that within Equals the box information only is used per target keyword. I can very well be wrong here.
You do have a point though: For the first occurrence of the target keyword the default box is the one specified by the last BOX/ENDBOX declaration. Which means that master also neglects this...
Summoning @gdfldm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My interpretation is that within Equals the box information only is used per target keyword
If we have something like
EQUALS
'PERMX' 100 3 9 3 9 3 9 /
'PERMY' 100 /
'PERMZ' 10 2* 5 7 4 /
/
then the PERMX
box is {3..9, 3..9, 3..9}
, the PERMY
box is also {3..9, 3..9, 3..9}
while the PERMZ
box is {3..9, 5..7, 4..9}
. That's why it's essential that we capture those box settings.
For the first occurrence of the target keyword the default box is the one specified by the last BOX/ENDBOX declaration.
For the most part, yes. However, the input box is reset to the default global dimensions of {1..NX, 1..NY, 1..NZ}
at the end of each section (i.e., GRID
/EDIT
/PROPS
&c).
Which means that master also neglects this...
I believe the current master souces do the right thing. Handle_keyword()
takes a reference to the current input box and updates it when encountering a BOX
(or ENDBOX
) keyword. That box is then copied into handle_operation()
and updated according to whatever box specification is provided in the operation keyword records. On the other hand, those updates do not propagate back out of the operation keyword.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, all of the box definitions need to be parsed to keep track of the current default box.
When setting up the EclipseGrid, we create a temporary FieldProps object for getting the ACTNUM array. Somehow we processed all EQUALS statements in the GRID section for this. This seems overkill here.
Hence we now only honor EQUALS ACTNUM to save some processing.
Not relevant for the manual.