# [Numpy-discussion] Interpolation question

Andrea Gavana andrea.gavana at gmail.com
Sun Mar 28 17:53:44 EDT 2010

```Hi All,

On 28 March 2010 22:14, Pierre GM wrote:
> On Mar 28, 2010, at 4:47 PM, Andrea Gavana wrote:
>> HI All,
>>
>> On 28 March 2010 19:22, Robert Kern wrote:
>>> On Sun, Mar 28, 2010 at 03:26, Anne Archibald <peridot.faceted at gmail.com> wrote:
>>>> On 27 March 2010 20:24, Andrea Gavana <andrea.gavana at gmail.com> wrote:
>>>>> Hi All,
>>>>>
>>>>>    I have an interpolation problem and I am having some difficulties
>>>>> in tackling it. I hope I can explain myself clearly enough.
>>>>>
>>>>> Basically, I have a whole bunch of 3D fluid flow simulations (close to
>>>>> 1000), and they are a result of different combinations of parameters.
>
>> It seems like this whole interpolation stuff is not working as I
>> thought. In particular, considering scalar-valued interpolation (i.e.,
>> looking at the final oil recovery only and not the time-based oil
>> production profile), interpolation with RBFs is giving
>> counter-intuitive and meaningless answers. The issues I am seeing are
>> basically these:
>
> Which is hardly surprising: you're working with a physical process, you must have some constraints on your parameters (whether dependence between parameters, bounds on the estimates...) that are not taken into account by the interpolation scheme you're using. So, it's back to the drawing board.

Sorry, this laptop has gone mad and sent the message before I was finished...

The curious thing is, when using the rbf interpolated function to find
a new approximation, I am not giving RBFs input values that are
outside the bounds of the existing parameters. Either they are exactly
the same as the input ones (for a single simulation), or they are
slightly different but always inside the bounds. I always thought
that, at least for the same input values, it should give
(approximatively) the same answer as the real one.

> What are you actually trying to achieve ? Find the best estimates of your 10 parameters to match an observed production timeline ? Find a space for your 10 parameters that gives some realistic production ?

I have this bunch of simulations for possible future oil productions
(forecasts), run over the past 4 years, which have different
combination of number of oil producing wells, gas injection wells, oil
plateau values, gas injection plateau values and gas production
plateau values (6 parameters in total, not 10). Now, the combinations
themselves are pretty nicely spread, meaning that I seem to have a
solid base to build an interpolator that will give me a reasonable
answer when I ask it for parameters inside the bounds (i.e., no
extrapolation involved).

> Assuming that your 10 parameters are actually independent, did you run 1000**10 simulations to test all the possible combinations?

I hope you're kidding :-D . Each of these simulations take from 7 to
12 hours, not counting the huge amount of time needed to build their
data files by hand...

Let's see a couple of practical examples (I can share the data if
someone is interested).

Example 1

# o2 and o3 are the number of production wells, split into 2
# different categories
# inj is the number of injection wells
# fomts is the final oil recovery

rbf = Rbf(oilPlateau, gasPlateau, gasInjPlateau, o2, o3, inj, fomts)

op = [50380]
gp = [103014000]
gi = [53151000]
o2w = [45]
o3w = [20]
inw = [15]

fi = rbf(op, gp, gi, o2w, o3w, inw)

# I => KNOW <= the answer to be close to +3.5e8

print fi

[ -1.00663296e+08]

(yeah right...)

Example 2

Changing o2w from 45 to 25 (again, the answer should be close to 3e8,
less wells => less production)

fi = rbf(op, gp, gi, o2w, o3w, inw)

print fi

[  1.30023424e+08]

And keep in mind, that nowhere I have such low values of oil recovery
in my data... the lowest one are close to 2.8e8...

Andrea.

```