Dear Vinomarky & Itag,
Thank you so much for your great contribution. I will go through your advise. I will come after some homework
Thanks
Dipak
Dear Vinomarky & Itag,
Thank you so much for your great contribution. I will go through your advise. I will come after some homework
Thanks
Dipak
Again - agree in general your approach works, but not always - so we still have to agree to disagree on the use of 'never'
In cases where you have a lot of low perm reservoir, the saturation of which is highly dependent upon the height above free water level and permeability AND a normal or modified J-function cannot be fit, then it breaks down if you want to use one SATNUM.
Let me illustrate with an example which I used to match a low relief, low perm oil reservoir - many of the wells in which had initial mobile water (the initial WC's correlateable to the vertical distance from FWL, and agreeing with Pc curves from SCAL). J-function would not honor saturations well enough, but I found a Lambda function of perm worked nicely. Eclipse does not support Lambda functions, so how else can you honour initial saturations if you don't calculate them outside of Eclipse? There is nothing special about the way Eclipse initializes saturations - the math is pretty basic, so what is wrong about doing the same math outside of Eclipse when Eclipse is incapable of handling a more complex saturation height function?
I'd be delighted to find an easier way of doing it.
Below snippet of code I used as a Petrel macro (removed my name & well references) to calculate not only the endpoints, but also the initial saturations using a saturation height function that fit measured and log data nicely.
------------------------------------------
# Created by xxxx, August 2007
# Macro to calculate actual and endpoint water & oil saturations
# Actual saturations from fitted secondary drainage curves
# Fitted Lambda function Sw = [a x (h^-lambda)] + B
# a = a1 x log(perm) + a2
# lambda = L1 x log(perm) + L2
# B = b1 x log(perm) + b2
# where a1, a2, L1, L2, b1, b2 are constants, h is height above FWL (in m) and k is in mD
#
# For xx (xxxx & xxx) drainage curves, the fit constants are;
$a1=-7.75017
$a2=34.17743
$l1=-0.00041
$l2=0.002083
$b1=7.5149
$b2=-33.1969
$FWL = -1039
# Calculate height above FWL, set to zero if below FWL to prevent calculation problems
$h = (Depth()-$FWL)*0.3048
$h=if($h<0,0,$h)
# Calculate Sw, error-trap to be within 0.0 to 1.0 range
$a = ($a1*log(Perm))+$a2
$lambda = ($l1*log(Perm))+$l2
$B = ($b1*log(Perm))+$b2
Sw=if($h=0,1,($a*(Pow($h,-$lambda)))+$B)
Sw=if(Sw<0,0,Sw)
Sw=if(Sw>1,1,Sw)
# Irreducible water saturation, Swir from (1 - Soi)
# From regression of perm vs Soi from capillary pressures and NMR
# Swir = 1-((0.0371*LN(perm))+0.3595) (capped to max of 1-Sw)
SWCR = 1-((0.0371*LN(Perm))+0.3595)
SWCR = if(SWCR>Sw,Sw,SWCR)
SWCR =if(SWCR<0,0,SWCR)
# Residual oil saturations from fitting Land constant equation to
# imbibition capillary curves, with constant = 9
# Sor = 1/(9 + (1 / (1 - Swir) ) )
SOWCR= 1/(9 + (1 / (1 - SWCR) ) )
SOWCR=if(SOWCR>0.3,0.3,SOWCR)
SOWCR=if(SOWCR<0,0,SOWCR)
SWCR=if(SOWCR+SWCR>=1,0.999-SOWCR,SWCR)
# Max water saturation = 1 - residual oil, or 1 if below FWL
SWU=if(Depth()<FWL,1,1-SOWCR)
# Scale rel xplot_perm end-points
# Use Corey curves to determine actual rel xplot_perm
# Normal perm, Co = 1.93, Cw = 1.15
# High perm, Co = 1.49, Cw = 0.61
# Scale for rel xplot_perm to oil at Swi
KRO=(0.0344*LN(Perm))+0.5427
KRO=if(KRO>1,1,if(KRO<=0.0001,0.0001,KRO))
# Scale for rel xplot_perm to water at Sor
KRW=(0.0109*LN(Perm))+0.0357
KRW=if(KRW>1,1,if(KRW<=0.0001,0.0001,KRW))
Dipak, lets go step by step
But before doing something look carefully all keywords i will mentioned here in Eclipse reference manual -otherwise all efforts will be wasted
first try to make simple dead oil model ( no soluted gas)
First in order to initialize the model you need to give the eclipse idea how many phases you will use
in or case 2 oil and water
Now eclipse knows that you will use 2 phase model so he prepare needed arrays for initialization and if for example you will give him the keyword PVDG eclipse will give you an error
The eclipse do following step to initialize you model in equilibrium conditions
1 calculation of formation pressure ( you assign it in EQUIL keyword)
2 calculation of capillary pressure of phases, PC (in our case only 2 water and oil , how it calculates i wrote in my previous post)
3 and at last when eclipse knows PC , it uses your SCAL tables ( 1 and 4 column) and linear extrapolate SW between known values in the table
Finnito
So if you will make scal tables which are inline with your log data(how to make it , agian i wrote it in my previous post) then it will means that saturation in your coarse model will be like in you fine model
You model can have more that 2 SCAL tables for example if you have different type of lithology in this case you need to say eclipse what cells belongs to what SCAL table
the keyword responsible for that is SATNUM
And one more advise - if you want to learn fast use eclipse ( not office not petrel) and read manuals
PS. also carefully read all post here , there are a lot of information to learn, rgds
Last edited by temr; 05-03-2010 at 09:35 PM.
One more thing.
Dont try to make one complex sim model at once .
first make small model analyze all issues
make workflow
test model improve you workflow
and only then apply your workflow to big problems (models)
In scal row 1 you have sw
so having function from logs pc=a*sw^b you will have corresponding PC
Thank you very much Term
When you are starting your Petrel Training like Eclipse step by step?
not at all
soon
Not sure if this one was offered before but here it is. It may be useful
"A Relationship between Porosity and Water Saturation: Methodology to Distinguish Mobile from Capillary Bound Water"
[link Point to another website Only the registered members can access]
Regards
“Considering the many productive uses of petroleum, burning it for fuel is like burning a Picasso for heat.”
—Big Oil Executive
Very Good discussion on Contacts, gradients and thinks to remember so as not to get lost.
[link Point to another website Only the registered members can access]
Regards
“Considering the many productive uses of petroleum, burning it for fuel is like burning a Picasso for heat.”
—Big Oil Executive
Thanks to all!
as this post is very interesting I am planning to copy all your comments and keep track of them at reach as personal notes...if you don't mind!
cheers!
Kader
Bookmarks