arbrandt / OPGEE

Oil Production Greenhouse Gas Emissions Estimator
18 stars 5 forks source link

Steam injection demand could go negative #97

Closed qlangfitt closed 4 years ago

qlangfitt commented 5 years ago

On the Produced Water Treatment sheet, the steam injection demand from all sources (M91) could go negative in the case where the produced water cannot support the water injection demand. I'm actually not sure I understand why MIN function is used at all to determine injection demand "from all sources". Shouldn't the demand just be dictated by the inputs oil_prod, SOR, and quality, since any shortfall in available produced water would be brought in as makeup water? Perhaps I'm misunderstanding.

smasnadi commented 5 years ago

Adam: I think Quinn is right on having some negative cases...

qlangfitt commented 5 years ago

In running test cases and looking for red flags throughout the model I've run across this again and looked at it a bit deeper. The negative behavior happens when water injection and steam injection are both turned on AND the amount of produced water doesn't satisfy the water injection demand. I now see the function of the MIN command and I think the cell is simply mislabeled. It's not the steam injection demand "from all sources", it's just the steam injection demand that can be satisfied by the produced water, after accounting for any produced water that is already allocated to water injection. Should change the label in B91 to something like "Total steam injection demand that can be satisfied by produced water."

I think it would be most consistent and logical to also change the "Total water injection demand from all sources" to "Total water injection demand that can be satisfied by produced water" and cap it to the amount of produced water in M87. That cell isn't used in any other calculations except the fraction below it, which is already capped to 1. By doing that, no changes would need to be made to M91 since T74-M87 would never be negative.

Suggested equation for M87: =IF(OR(Water_reinjection_01=1,Water_flooding_01=1),MIN(Oil_prod*WIR,T74),0)

arbrandt commented 4 years ago

Fixed