Expand Low Pressure Table Padding to Oil Property Tables#4555
Expand Low Pressure Table Padding to Oil Property Tables#4555bska wants to merge 2 commits intoOPM:masterfrom
Conversation
|
Note: This is work in progress and not ready for merging at this time. I'm merely creating a PR to facilitate broader testing. |
|
jenkins build this failure_report please |
|
The following two cases did not run through, |
The |
cf93577 to
cfd6cf6
Compare
cfd6cf6 to
2050094
Compare
16e39af to
a653fc7
Compare
6841be7 to
0c68548
Compare
86d4fea to
a4f6c8c
Compare
ae681e8 to
b574ad0
Compare
ae88863 to
e421697
Compare
29b0d33 to
66c2755
Compare
f37d365 to
45f41b4
Compare
fef5246 to
510e30f
Compare
510e30f to
d1a6271
Compare
|
how far is this PR from merging in? |
Very far away. The current approach doesn't work, and I don't really know what's missing. |
sad to know. regression failures or not working for field cases? |
Field cases. We don't get predictable behaviour close to the low-pressure end which is what this PR was intended to fix in the first place. |
|
jenkins build this please |
|
The PR does not build anymore due to changes in the master branch. |
Yes, I know. There's a reason it's in draft mode. |
Sure. I thought it was because of running failures. Needs to pad on the higher pressure also, thinking to develop with similar manner from this PR, that is how I ran into this. |
Right. The primary issue here is that the algorithm doesn't work and that's why I haven't ensured that the patch was in a buildable state. I've fixed that now, but you should really not look too closely at this work since it's very likely that we'll have to use a different approach. |
sure. We can discuss along the way and maybe both tasked can be fixed. |
This commit adds a procedure for expanding missing undersaturated
states in PVTO/PVTG in the low-level Pvt*Table classes on top of
which the higher level types are built. This, as an added benefit,
directly ensures that we emit fully expanded PVTO/PVTG tables to the
.INIT file.
To this end, equip the base class PvtxTable with a helper function
void PvtxTable::populateMissingUndersaturatedStates()
which will invoke the virtual function
makeScaledUSatTableCopy(src, dest)
in its derived classes--especially PvtoTable and PvtgTable--for each
missing undersaturated state. The type-specific procedures for
PvtoTable and PvtgTable is defined in such a way that the scaled
copies preserve oil compressibility.
This commit adds a procedure for padding live oil (PVTO) tables at low oil pressures. The primary objective is to avoid generating negative Rs values when extrapolating the RsSat(po) curve linearly to low oil pressures. To this end, compute a limiting pressure based on inverse interpolation at Rs=1.0e-6 (could possibly be made configurable) and pad the table if this limiting pressure exceeds atmospheric pressure. We pad the table with a composition node at Rs=0. This node is then assigned either to atmospheric pressure or the limiting pressure value. Associate Bo and vo values defined by linear extrapolation to these pressure values. We add a second composition node at Rs=1.0e-6 if the limiting pressure exceeds atmospheric pressure.
This PR adds a procedure for padding live oil (PVTO) tables at low oil pressures. The primary objective is to avoid generating negative Rs values when extrapolating the RsSat(po) curve linearly to low oil pressures. To this end, compute a limiting pressure based on inverse interpolation at$R_s=10^{-6}$ (could possibly be made configurable) and pad the table if this limiting pressure exceeds atmospheric pressure.
We pad the table with a composition node at$R_s=0$ . This node is then assigned either to atmospheric pressure or the limiting pressure value. Associate $B_o$ and $\mu_o$ values defined by linear extrapolation to these pressure values. We add a second composition node at $R_s=10^{-6}$ if the limiting pressure exceeds atmospheric pressure.
This PR is similar in spirit but different in details to the gas property low pressure table padding of PR #3779.