Andrea Gavana wrote: > 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 <[email protected]> >>>> wrote: >>>> >>>>> On 27 March 2010 20:24, Andrea Gavana <[email protected]> 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). > > Definitely interested in helping solve this one so feel free to email the data (obviously not 1,000 Eclipse smspec and unsmry files although I can handle that without any problems). > 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] > > I take it all your inputs are float arrays? i.e. you just consider number of production wells as a floating point value. I suppose strictly speaking o2 and o3 are not independent of eachother but I would guess that for the purposes of using Rbf it wouldn't be an issue.
I'm just having a look at the cookbook example (http://www.scipy.org/Cookbook/RadialBasisFunctions) and adding a couple more variables, bumping up the number of points to 1000 and setting the z values to be up around 1.0e+09 - so far it still seems to work although if you increase the sample points to 2000+ it falls over with a memory error. I've got a smaller bunch of Eclipse simulations I could try Rbf out on - 19 runs with 9 variables (it's a Tornado algorithm with -1,0,+1 values for each variable). FOPT's will be in a similar range ot yours. Brennan > 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. > _______________________________________________ > NumPy-Discussion mailing list > [email protected] > http://mail.scipy.org/mailman/listinfo/numpy-discussion > > _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
