<

Results 1 to 9 of 9

Thread: J-Function - the application of......

  1. #1

    Join Date
    Nov 2008
    Location
    Australia
    Posts
    508

    J-Function - the application of......

    All,

    So I've had some more private messages asking for help on the J-Function. First off, please read the thread at

    [link Point to another website Only the registered members can access]
    In terms of what is a J-Function.... I'm sure there are plenty of elegant definitions around you can find, but in essence it is a way of describing how families of rocks with similar poro-perm & saturation characteristics will vary in non-wetting fluid saturation vs applied non-wetting buoyancy pressure (ie hydrocarbon column height). It's traditionally a function of SQRT(K/Phi), which is not surprising since SQRT(K/Phi) is also often used to calculate FZI's (Flow Zone indicators) to better characterize poro-perm behaviour. What we are in effect doing is saying that this particular group of rocks is of the same family in terms of saturation behaviour, and for a given permeability and porosity of this family we are able to predict how its saturation will vary with height.

    What I'm posting below is a (I think) easy to follow method to actually use it for those that still are having problems;

    I will assume you have air-mercury injection lab capillary pressure data to start from on a number of samples, and wish to simulate an oil-water system.

    1. Transform lab capillary pressure data to (approximated) reservoir conditions
    The transformation is simple, you need to be clear on what fluids were used in the test, and what fluids you have in the reservoir.

    Pc (Reservoir conditions) = Pc (Lab) x (Sigma.Cos(theta))res / (Sigma.Cos(theta))lab

    Typical values of Sigma.Cos(Theta) are;

    Lab
    Air-Water 72
    Oil-Water 42
    Air-Mercury 367
    Air-oil 24

    Reservoir
    Water-oil 26
    Water-gas 50 (P & T dependent, reasonable value for depth of 5,000ft)

    So in our case, we'd multiply all the lab capillary pressure stages by 26/367 to get the equivalent reservoir capillary pressure

    2. Fitting the function
    The equation used by Eclipse (In Field units) is as follows;
    Pc = J x SurfaceTension x (PORO^Alpha / PERM^Beta) x U
    Where U = 4.61678 and traditionally Alpha = Beta = 0.5
    Rearranging, J = Pc/(ST x U) x Perm^Beta / PORO^Alpha

    You've just calculated Pc in reservoir conditions, use the same ST as already (26), U is constant and you know Perm & Poro for each sample.

    If you assume Alpha = Beta = 0.5, then you have a fully defined set of J values vs your Sw.

    If you have a number of samples, you can regress on various values of Alpha and Beta to see if it helps collapse the resultant J=Fn(Sw) curves down to one curve better. Split up those curves that vary wildly into different families - This is an iterative step. Ensure you are not trying to match garbage test data. Also, if you find you DO have more than one saturation family, ensure that you talk to your geo to ensure that they use a facies model to co-populate perm with porosity appropriately otherwise your lovely J-Function (which relies on the ratios of Perm and Poro for any given cell) will be simply incorrect. I often prefer to see if I can set Alpha to zero so that it is simply a function of perm to try to avoid this issue if I can.

    You should now have one or more tables of J vs Sw that correspond to your different reservoir units

    ** You will invariably have to be satisfied with a 'good enough' fit, so ensure that your curve used to initialize the model fits best over the range of capillary pressures (usually less than 50 psi) that your reservoir conditions will exist **

    Ensure that the keyword JFUNC is used in the GRID section - define the Alpha, Beta and ST that you used. Enter the J-Function data in the rel perm section of Eclipse, substituting values of J instead of Pc at each saturation defined.

    DONE!

    Using a J-Function to calculate saturations in Petrel
    What I described above will get you setup to initialize your simulation. You can also use these J-Function relationships to calculate saturations/volumes in Petrel if you wish. This is not only useful to feed back to the geos for thier in place calculations, but also a great QC tool, as you can view in well x-section the saturations derived from logs alongside the saturations derived from your J-function to satisfy yourselves that it honours observed data appropriately in the pay zone(s). I've found the easiest path is as follows;
    1. Fit J-Function tabular data to a continuous function
    One that I often find works nicely is J = A x Sw^-B - Use Excel solver to work out appropriate A and B values to fit

    2. Calculate a property for each cell = the height above free water level (HAFWL). Set those cells below FWL as a height of zero

    3. Calculate buoyancy pressure for each cell Pc = HAFWL x (Rhow – Rhohc) x 0.443
    HAFWL = ft, Rhow = SG Water, Rhohc = Hydrocarbon SG relative to water, 0.443 psi/ft is 1.0 SG water gradient

    4. From the Pc of each cell, use the equation J = Pc/(ST x U) x Perm^Beta / PORO^Alpha to calculate J for each cell

    5. Use the fit equation from 1 above (rearranged) to calculate Sw for each cell. If you used the same equation, the rearranged version would be;
    Sw_Calculated = 10^( (-log(J) + log(A))/B)

    And Bob would be your fathers brother as they say.

    Good luck - VM

    Last edited by vinomarky; 05-08-2011 at 12:49 PM.

  2. # ADS
    Spons Circuit
    Join Date
    Always
    Location
    Advertising world
    Posts
    Many
     
  3. #2
    Hi Vinomarky,

    Appreciate for your in-depth explanation. I am going over it right now. There are few points that I need some clarifications:

    1) I have both mercury and air-brine test. Can I mix the two test? Is the formula for J the same for air-brine?

    2) Mercury test goes up on a very high pressure which is not of course does not exist in the reservoir. How can I determine my Swir? In other words how would you determine at which Pc above which you consider water as being connate.

    Wealth of knowledge from you. Thanks for your post.

    Regards,

    Aries

  4.    Sponsored Links



    -

  5. #3

    Join Date
    Nov 2008
    Location
    Australia
    Posts
    508
    1) I have both mercury and air-brine test. Can I mix the two test? Is the formula for J the same for air-brine?
    Yes and no.... In theory yes, the information above should already be sufficient - hint: brine is treated same as water. Often though you will find that your Hg cap pressure and air-brine cap pressure curves differ significantly even when corrected to reservoir Pc. This is most evident when using porous plate capillary tests, but even with air-brine centrifuge there are often significant differences. You'll have to use some judgement as to which is more representative over your zone of interest

    2) Mercury test goes up on a very high pressure which is not of course does not exist in the reservoir. How can I determine my Swir? In other words how would you determine at which Pc above which you consider water as being connate.
    Ahh - an oft asked question... Classical Res Eng ala most undergrad University would have you believe that there is one Swir value, that cap pressure will tell you what this is and rel perm to water is at zero at this saturation..... Reality is (as usual) somewhat different

    EVERY core I have seen has been taken to equivalent reservoir capillary pressures higher than observed in the reservoir, and the water saturation is usually still reducing. By classic theory this should mean I have mobile water from production start... the only problem is that usually we don't. In fact, while the use of cap pressure curves may yield a better view of the initial hydrocarbons in place, the vast majority of your virgin reservoirs will be producing water free at initial conditions - the way around this is to initialize the simulator using J-Function, then take the initial saturation array and re-export as SWL (connate water) - then you honor both the initial hydrocarbon volumes as well as the no initial water. If you do have a case of initial mobile water (I've had less than I can count on one hand) then you need to think about it carefully. It can be done, but I'm not about to spend the time required to elaborate on this workflow here.

    So, what is going on then? The following is my opinion - so take it with a grain of salt - but it makes sense to me. If you think of what is happening, you have an initially water saturated rock matrix, consisting of a range of pore throat sizes. As you bubble oil (or gas) into it, the buoyancy forces displace water down from the top, building up differential pressure as it goes. This differential pressure displaces more and more hydrocarbons into increasingly small pore throats. At some point the trap is filled - this will be your initialization point. At this point, if you were able to increase the pressures even further, yet more oil would be squeezed into yet smaller pore throats - so the rock is capable of having its Sw further reduced, just not at these pressures. The oil that IS present though resides in the larger pore throats, and hence will preferentially flow out.

    Now, you drill a well and start producing - even though the rock still has some Sw that could be displaced given higher differential pressures, does this necessarily mean that water is now going to be displaced under a modest delta P? The answer in most cases is no. Generally, the oil in the larger pore throats will move first - in short, the critical saturations depend upon the history of the saturation charge (ie where you were on the Pc curve to start with)

    How to determine what saturation this is? Well, I'd suggest that using the minimum Sw in the rel perm test would be a good start - this will be dependent upon what fluid velocity was put through the core, but it would be a good starting place. I often simply use the initialized saturations as the critical saturations - which is a bit of a simplification, but yields cases which both honour the OIIP as well as observed water free production

    Sometimes you have a blip of water production at the beginning of a wells life - this could be consistent with an initial near-wellbore flowing pressure gradient being able to move some of that remaining mobile water, but as the pressure gradient flattens radially AND the remaining pore throats with water in them become even smaller this peters out... then again, it could also simply be completion fluid coming back :-)

    Food for thought.
    Last edited by vinomarky; 07-02-2011 at 12:29 PM.

  6. #4
    Hi vinomarky,

    Thanks for taking the time to reply to this thread. Your explanation is superb!!!

    For my connate water, I decided to put a cut-off on the pore throat size. Any values less than this, I will assume that water in these pores are connate. Does this sound reasonable?

    I've used the procedures you laid out. Have four rock types (electrofacies) as was given by our geophysist. Grouped my Pc's accordingly. Derived the J function and sat vs height also. My knowledge in Petrel is minimal, so that I asked a colleague in the office to load the relationships in Petrel so that I can QC my data.

    While this is going on, next step is generating my rel perms tables for Eclipse using SCAL data. Would you mind if you can put a procedure in another topic or thread on how to do it? I know you have some postings with regards to this but I got so confuse.

    Nice to have a guy like you in this forum.

    Cheers,

    Merlon

  7. #5

    Join Date
    Nov 2008
    Location
    Australia
    Posts
    508
    For my connate water, I decided to put a cut-off on the pore throat size. Any values less than this, I will assume that water in these pores are connate. Does this sound reasonable?
    While you can actually estimate pore throat size from Pc data, I don't believe that this is what you are doing. Unless you believe that you are going to have wells producing initial mobile water, I'd assume that all the saturations are connate... you can define one generic rel perm curve for each rock type then use the initialized saturations as the connate values (SWL) and using ENDSCALE Eclipse will scale each of the rel perm tables - have a read about endpoint scaling and saturation functions in the Eclipse technical manual

    If you want to specify a cuttoff, below which fluids will move with initial production, then you may be better off by specifying a minimum J value - above which saturations initialized are considered connate and below which (for example) the saturation corresponding to your cutoff J value is considered connate.

    I've used the procedures you laid out. Have four rock types (electrofacies) as was given by our geophysicist. Grouped my Pc's accordingly. Derived the J function and sat vs height also.
    Sounds fine as long as these electrofacies mean something to the geologist, and that they can in turn populate them through the model sensibly - otherwise you may have great correlation at the wellbores but the other 99.99999% of the reservoir will bear little resemblance to what you are trying to represent.

    While this is going on, next step is generating my rel perms tables for Eclipse using SCAL data. Would you mind if you can put a procedure in another topic or thread on how to do it? I know you have some postings with regards to this but I got so confuse.
    This is a whole area of discussion, and not one I'm about to outline right now. As a starting point, please consider that your SCAL tests are done on very small core plugs, and that any two of those core plugs - even if close together in the well - will normally give quite different results.... what do you think would be the aggregated characteristic of 1m of core plugs? An interesting exercise is to plot by hand or Excel the rate through three slabs with IDENTICAL rel perm curves, but significantly different permeabilities - sum the output rates and average the saturations at each point in time to calculate an equivalent rel perm curve for the three - it will be surprisingly different from the input curves. In short the rel perm curves you use in your model are not only a function of the rock, but a function of the scale of your vertical layers and heterogeneity that exists within those layers. You only have to take a look at probe permeametry data to understand how much variability actually exists within what looks from logs like a homogeneous piece of rock - this is even before we start addressing the thorny issue of core handling/cleaning/restoration and how that adversely affects test results.

    What I normally do (and I'm sure many will disagree) is simply use the endpoints and a representative Corey exponent for the sorts of wettability we'd expect and in effect throw away the tested curve shape behaviour. Use Swir from cap pressure, Komax, Kwmax and Scr/Sor from rel perm tests, and values of nw/no for Corey shape definitions - then history match by varying any/all of the above depending on where the greatest uncertainty lies. Note: If you have imbibition cap pressure curves starting from a drainage charge pressure approximately in the reservoir region, you might want to consider the saturation point where it cross the Pc=0 line to be a reasonable first approximation of Swcr.
    Last edited by vinomarky; 05-15-2011 at 03:32 AM.

  8.    Spons.


  9. #6
    Hi vinomarky,

    Many thanks for your insights.

    Cheers,

    Aries

  10. #7

    Pc vs Sw

    Hi friends,
    i want to find a good curve to mach between Sw and Pc,
    i have some information to calculate Pc.
    dose anyone have experience in this topic?
    please help.
    Regards
    Attached Files Attached Files

  11. #8

    Re: Pc vs Sw

    Can anyone explain to me whether I can use same water satuation value to multiple layers system which has same lithology (J function).
    If not, how to find the Sw for each layers? I have Pc , J, permeability , porosity values.
    Thanks

  12. #9

    Join Date
    Nov 2008
    Location
    Australia
    Posts
    508

    Re: J-Function - the application of......

    You likely cant use the same saturation value, but you should be able to use the same saturation function if you think they behave the same

    If they have the same free water level, then its easy - initialize all layers in one EQUIL definition. If they have different FWL's, then you'll have to use different EQLNUM's

  •   

Similar Threads

  1. Saturation height function
    By dipak_m in forum Reservoir
    Replies: 47
    Last Post: 09-13-2016, 12:30 AM
  2. Profibus DP Function Blocks
    By lacv2k in forum Instrumentation & Control
    Replies: 0
    Last Post: 04-15-2014, 01:44 AM
  3. SHF - saturation height function
    By yasiobasio123 in forum Reservoir
    Replies: 0
    Last Post: 04-11-2014, 11:41 PM
  4. Trip Tank function?
    By DavidL in forum Drilling And Workover
    Replies: 5
    Last Post: 02-22-2014, 05:02 PM
  5. Instument with ESD Function
    By saiedmehdipour in forum Instrumentation & Control
    Replies: 1
    Last Post: 02-21-2011, 02:42 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •