Vous êtes sur la page 1sur 6

TM 4112

Karakterisasi dan Permodelan Reservoir


Project #6

Nama : Nur Rahmi SR


NIM : 12215092
Tanggal Penyerahan : 15 November 2018
Dosen : Dr. Eng. Ir. Sutopo, M.Eng
Asisten : Wilson Wiranda (12214008)

PROGRAM STUDI TEKNIK PERMINYAKAN


FAKULTAS TEKNIK PERTAMBANGAN DAN PERMINYAKAN
INSTITUT TEKNOLOGI BANDUNG
2018
PROGRAM BERHASIL DIRUN

A. PENURUNAN RUMUS
Fungsi Transmisibilitas
𝐹! 𝑇𝑟𝑎𝑛𝑠 = 𝑇! 𝑝! − 𝑝 − 𝑇! 𝛾!,! (𝑧! − 𝑧)
!

𝐹! 𝑇𝑟𝑎𝑛𝑠 = 𝑇! 𝑝! − 𝑝 − 𝑇! 𝛾!,! (𝑧! − 𝑧)


!

Penurunan dari fungsi transmisibilitas


Untuk gas,
𝑘!"
𝑇! = 𝑃𝐺𝐸𝑂
𝜇! 𝐵!

𝜕𝑇! 𝜕𝑘!" 1
= 𝑃𝐺𝐸𝑂
𝜕𝑆!,! 𝜕𝑆!,! 𝜇! 𝐵!

𝜕𝑇! 𝜕 1
= 𝑘𝑟𝑔 𝑃𝐺𝐸𝑂
𝜕𝑝! 𝜕𝑃𝑛 𝜇𝑔 𝐵𝑔

1 𝜕𝜇𝑔 𝜕𝑝𝑎𝑣𝑔 1 1 1 𝜕𝐵𝑔 𝜕𝑝𝑎𝑣𝑔


= 𝑘𝑟𝑔 − − 𝑃𝐺𝐸𝑂
𝜇2𝑔 𝜕𝑝𝑎𝑣𝑔 𝜕𝑝𝑛 𝐵𝑔 𝜇𝑔 𝐵2𝑔 𝜕𝑝𝑎𝑣𝑔 𝜕𝑝𝑛
1 𝜕𝜇𝑔 1 𝜕𝐵𝑔 𝜕𝑝𝑎𝑣𝑔
= −𝑇𝑔 +
𝜇𝑔 𝜕𝑝𝑎𝑣𝑔 𝐵𝑔 𝜕𝑝𝑎𝑣𝑔 𝜕𝑝𝑛

Untuk air,
𝑘!"
𝑇! = 𝑃𝐺𝐸𝑂
𝜇! 𝐵!
𝜕𝑇! 𝜕𝑘!" 1
= 𝑃𝐺𝐸𝑂
𝜕𝑆!,! 𝜕𝑆!,! 𝜇! 𝐵!

𝜕𝑇! 𝜕 1
= 𝑘𝑟𝑤 𝑃𝐺𝐸𝑂
𝜕𝑝! 𝜕𝑃𝑛 𝜇𝑤 𝐵𝑤

1 𝜕𝜇! 𝜕𝑝!"# 1 1 1 𝜕𝐵! 𝜕𝑝!"#


= 𝑘!" − − 𝑃𝐺𝐸𝑂
𝜇! 𝜕𝑝!"# 𝜕𝑝! 𝐵! 𝜇! 𝐵!! 𝜕𝑝!"# 𝜕𝑝!
!

1 𝜕𝜇! 1 𝜕𝐵! 𝜕𝑝!"#


= −𝑇! +
𝜇! 𝜕𝑝!"# 𝐵! 𝜕𝑝!"# 𝜕𝑝!

Dimana,

2
𝑝! + 𝑝!
𝜕𝑝!"# 𝜕 2 1
= =
𝜕𝑝! 𝜕𝑝! 2
Sehingga,
Untuk gas,
𝜕𝑇! 1 1 𝜕𝜇! 1 𝜕𝐵!
= − 𝑇! +
𝜕𝑝! 2 𝜇! 𝜕𝑝!"# 𝐵! 𝜕𝑝!"#
𝜕𝛾 ! 𝜕𝛾 ! 𝜕𝛾
!,
!
!,
! 𝜕𝑃!"# 1 !,!!
= =
𝜕𝑃! 𝜕𝑃!"# 𝜕𝑃! 2 𝜕𝑃!"#

Untuk air,
𝜕𝑇! 1 1 𝜕𝜇! 1 𝜕𝐵!
= − 𝑇! +
𝜕𝑝! 2 𝜇! 𝜕𝑝!"# 𝐵! 𝜕𝑝!"#
𝜕𝛾 ! 𝜕𝛾 ! 𝜕𝛾
!,
!
!,
! 𝜕𝑃!"# 1 !,!!
= =
𝜕𝑃! 𝜕𝑃!"# 𝜕𝑃! 2 𝜕𝑃!"#

B. SOURCE DERIVATION
module derivation
use readdata
use fluidproperty2
use fluidrockproperty
contains
subroutine
derive(sa,san,pa,pan,delz,ijkw,ijkg,pgeo,t,ttw,ttg)
implicit none
real(kind=8)::sa,san,pa,pan,delz,pgeo,ttw,ttg
integer::ijkw,ijkg
real(kind=8),dimension(4)::t

real(kind=8)::pavg,swg,sww,transg,transw,dtgdp,dtwdp,dtgdsw,dt
wdsw
real(kind=8)::dfgdsw,dfgdp,dfwdsw,dfwdp
!
!sa : gas saturation at the block A
!san : gas saturation at the neighboring block
!pa : pressure at the block A
!pn : pressure at the neighboring block
!delz: depth difference between A and neighboring blocks
!ijkw: up-stream indicator for water phase
!ijkg: up-stream indicator for oil phase
!pgeo: geometrical factor

3
!t(i): derivative of transmissibility term
! t(1)=dFg/dSw, t(2)=dFg/dp, t(3)=dFw/dSw, t(4)=dFw/dp
!ttw : water transmissibility
!ttg : gas transmissibility
pavg=(pan+pa)/2
if (ijkg==1) then
swg=san
dtgdsw=pgeo/(ug(pavg)*bg(pavg))*dkrg(swg)
else
swg=sa
dtgdsw=0.d0
end if
if (ijkw==1) then
sww=san
dtwdsw=pgeo/(uw(pavg)*bw(pavg))*dkrw(sww)
else
sww=sa
dtwdsw=0.d0
end if
transg=pgeo*krg(swg)/(ug(pavg)*bg(pavg))
transw=pgeo*krw(sww)/(uw(pavg)*bw(pavg))

ttg=transg*(pan-pa-dng(pavg)*delz)
ttw=transw*(pan-pa-dnw(pavg)*delz)

dtgdp=-
pgeo*krg(swg)/(2*ug(pavg)*bg(pavg))*(dbgdp(pavg)/bg(pavg)+dugd
p(pavg)/ug(pavg))
dtwdp=-
pgeo*krw(sww)/(2*uw(pavg)*bw(pavg))*(dbwdp(pavg)/bw(pavg)+duwd
p(pavg)/uw(pavg))

dfgdsw=dtgdsw*(pan-pa-dng(pavg)*delz)
dfgdp=dtgdp*(pan-pa)+transg-
(dtgdp*dng(pavg)+dngdp(pavg)*transg)*delz
dfwdsw=dtwdsw*(pan-pa-dnw(pavg)*delz)
dfwdp=dtwdp*(pan-pa)+transw-
(dtwdp*dnw(pavg)+dnwdp(pavg)*transw)*delz

t(1)=dfgdsw
t(2)=dfgdp
t(3)=dfwdsw
t(4)=dfwdp

end subroutine
end module

4
C. SOURCE CODE MAIN
program main
use readdata
use init_conrahmi
use poten
use derivation

implicit none
real(kind=8),dimension(4)::t

real(kind=8)::skk,pkk,skkim1,pkkim1,skkjm1,pkkjm1,skkkp1,pkkkp
1
real(kind=8)::delz,btxw,btxg,dtyw,dtyg,gtzw,gtzg
integer::i,j,k

call bacadata
call ogipandpressure

do k=1, nz
do j=1, ny
do i=1, nx
if(i/=2*(i/2)) pijk(i,j,k)= pijk(i,j,k)+10.d0
if(j/=2*(j/2)) pijk(i,j,k)= pijk(i,j,k)+10.d0
if(k/=2*(k/2)) pijk(i,j,k)= pijk(i,j,k)+10.d0
end do
end do
end do
call sub_poten
!inisialisasi Node A
i=5;j=5;k=5
skk=swcalc(i,j,k)-0.1
pkk=pijk(i,j,k)

!Node B
skkim1=swcalc(i-1,j,k)-0.1
pkkim1=pijk(i-1,j,k)
delz=0.
call
derive(skk,skkim1,pkk,pkkim1,delz,ibw(i,j,k),ibw(i,j,k),pgeox,
t,btxw,btxg)
write(*,*)"Node B"
write(*,400)(t(i),i=1,4)
write(*,500)btxw,btxg
write(*,*)

!Node D
skkjm1=swcalc(i,j-1,k)-0.1
pkkjm1=pijk(i,j-1,k)
delz=0.
call
derive(skk,skkjm1,pkk,pkkjm1,delz,idw(i,j,k),idw(i,j,k),pgeoy,
t,dtyw,dtyg)
write(*,*)"Node D"

5
write(*,400)(t(i),i=1,4)
write(*,500)dtyw,dtyg
write(*,*)

!Node G
skkkp1=swcalc(i,j,k+1)-0.1
pkkkp1=pijk(i,j,k+1)
delz=dz
call
derive(skk,skkkp1,pkk,pkkkp1,delz,igw(i,j,k),igg(i,j,k),pgeoz,
t,gtzw,gtzg)
write(*,*)"Node G"
write(*,400)(t(i),i=1,4)
write(*,500)gtzw,gtzg
write(*,*)
400 format(5f17.5)
500 format(f17.5,f20.5)
end program

D. OUTPUT

Vous aimerez peut-être aussi