11 public :: chemical_potential
12 public :: pcsaft_const
13 REAL,
public,
allocatable :: chempot_tot(:)
14 REAL,
public,
allocatable :: chempot_res(:)
21 Subroutine chemical_potential
29 REAL :: z0t,z1t,z2t,z3t
30 REAL :: z0,z1,z2,z3,zms
31 REAL :: z0_rk,z1_rk,z2_rk,z3_rk
32 REAL,
allocatable :: mhs(:), mhc(:)
33 REAL,
allocatable :: gij(:,:), gij_rk(:,:), dij_ab(:,:)
37 REAL :: m_mean,i1,i2,i1_rk,i2_rk
38 REAL :: ord1_rk,ord2_rk
39 REAL :: c1_con,c2_con,c1_rk
41 REAL :: apar(0:6),bpar(0:6)
42 REAL,
allocatable :: m_rk(:),mdsp(:)
43 REAL,
allocatable :: ap_rk(:,:),bp_rk(:,:)
45 Allocate(mdsp(ncomp),m_rk(ncomp),ap_rk(ncomp,0:6),bp_rk(ncomp,0:6))
46 Allocate(sig_ij(ncomp,ncomp),uij(ncomp,ncomp))
52 Allocate(mhs(ncomp), mhc(ncomp), chempot_res(ncomp), chempot_tot(ncomp) )
53 Allocate(gij(ncomp,ncomp), gij_rk(ncomp,ncomp), dij_ab(ncomp,ncomp) )
57 z0t = pi / 6.0 * sum( xx(1:ncomp) * mseg(1:ncomp) )
58 z1t = pi / 6.0 * sum( xx(1:ncomp) * mseg(1:ncomp) * dhs(1:ncomp) )
59 z2t = pi / 6.0 * sum( xx(1:ncomp) * mseg(1:ncomp) * dhs(1:ncomp)**2 )
60 z3t = pi / 6.0 * sum( xx(1:ncomp) * mseg(1:ncomp) * dhs(1:ncomp)**3 )
73 call pcsaft_const(ap,bp)
77 z0_rk = pi/6.0 * mseg(k)
78 z1_rk = pi/6.0 * mseg(k) * dhs(k)
79 z2_rk = pi/6.0 * mseg(k) * dhs(k)*dhs(k)
80 z3_rk = pi/6.0 * mseg(k) * dhs(k)**3
85 mhs(k) = 6.0/pi* ( 3.0*(z1_rk*z2+z1*z2_rk)/zms + 3.0*z1*z2*z3_rk/zms/zms &
86 + 3.0*z2*z2*z2_rk/z3/zms/zms + z2**3 *z3_rk*(3.0*z3-1.0)/z3/z3/zms**3 &
87 + ((3.0*z2*z2*z2_rk*z3-2.0*z2**3 *z3_rk)/z3**3 -z0_rk) *log(zms) &
88 + (z0-z2**3 /z3/z3)*z3_rk/zms )
96 dij_ab(i,j) = dhs(i)*dhs(j) / ( dhs(i) + dhs(j) )
102 gij(i,j) = 1.0/zms + 3.0*dij_ab(i,j)*z2/zms/zms + 2.0*(dij_ab(i,j)*z2)**2 /zms**3
103 gij_rk(i,j) = z3_rk/zms/zms &
104 + 3.0*dij_ab(i,j)*(z2_rk+2.0*z2*z3_rk/zms)/zms/zms &
105 + dij_ab(i,j)**2 *z2/zms**3 *(4.0*z2_rk+6.0*z2*z3_rk/zms)
111 mhc(k) = mhc(k) + xx(i)*rho * (1.0-mseg(i)) / gij(i,i) * gij_rk(i,i)
113 mhc(k) = mhc(k) + ( 1.0-mseg(k)) * log( gij(k,k) )
119 m_mean = z0t / (pi/6.0)
120 m_rk(k) = ( mseg(k) - m_mean ) / rho
124 apar(m) = ap(m,1) + (1.0-1.0/m_mean)*ap(m,2) &
125 + (1.0-1.0/m_mean)*(1.0-2.0/m_mean)*ap(m,3)
126 bpar(m) = bp(m,1) + (1.0-1.0/m_mean)*bp(m,2) &
127 + (1.0-1.0/m_mean)*(1.0-2.0/m_mean)*bp(m,3)
130 ap_rk(k,m) = m_rk(k)/m_mean**2 * ( ap(m,2) + (3.0 -4.0/m_mean) *ap(m,3) )
131 bp_rk(k,m) = m_rk(k)/m_mean**2 * ( bp(m,2) + (3.0 -4.0/m_mean) *bp(m,3) )
139 i1 = i1 + apar(m)*eta**
REAL(m)
140 i2 = i2 + bpar(m)*eta**
REAL(m)
141 i1_rk = i1_rk + apar(m)*
REAL(m)*eta**
REAL(m-1)*z3_rk + ap_rk(k,m)*eta**
REAL(m)
142 i2_rk = i2_rk + bpar(m)*
REAL(m)*eta**
REAL(m-1)*z3_rk + bp_rk(k,m)*eta**
REAL(m)
150 sig_ij(i,k) = 0.5 * ( dhs(i) + dhs(k) )
151 uij(i,k) = (1.0 - kij(i,k)) * sqrt( eps(i) * eps(k) )
152 order1 = order1 + xx(i)*xx(k)* mseg(i)*mseg(k)*sig_ij(i,k)**3 * uij(i,k)/t
153 order2 = order2 + xx(i)*xx(k)* mseg(i)*mseg(k)*sig_ij(i,k)**3 * (uij(i,k)/t)**2
154 ord1_rk = ord1_rk + 2.0*mseg(k)*rho*xx(i)*mseg(i)*sig_ij(i,k)**3 *uij(i,k)/t
155 ord2_rk = ord2_rk + 2.0*mseg(k)*rho*xx(i)*mseg(i)*sig_ij(i,k)**3 *(uij(i,k)/t)**2
159 c1_con= 1.0/ ( 1.0 + m_mean*(8.0*z3-2.0*z3*z3)/zms**4 &
160 + (1.0 - m_mean)*(20.0*z3-27.0*z3*z3 +12.0*z3**3 -2.0*z3**4 ) &
162 c2_con= - c1_con*c1_con *( m_mean*(-4.0*z3*z3+20.0*z3+8.0)/zms**5 &
163 + (1.0 - m_mean) *(2.0*z3**3 +12.0*z3*z3-48.0*z3+40.0) &
165 c1_rk= c2_con*z3_rk - c1_con*c1_con*m_rk(k) * ( (8.0*z3-2.0*z3*z3)/zms**4 &
166 - (-2.0*z3**4 +12.0*z3**3 -27.0*z3*z3+20.0*z3) / (zms*(2.0-z3))**2 )
168 mdsp(k) = -2.0*pi* ( order1*rho*rho*i1_rk + ord1_rk*i1 ) &
169 - pi* c1_con*m_mean * ( order2*rho*rho*i2_rk + ord2_rk*i2 ) &
170 - pi* ( c1_con*m_rk(k) + c1_rk*m_mean ) * order2*rho*rho*i2
176 chempot_res(1:ncomp) = mhs(1:ncomp) + mhc(1:ncomp) + mdsp(1:ncomp)
178 chempot_tot(1:ncomp) = chempot_res(1:ncomp) + log( xx(1:ncomp)*rho )
180 write(*,*)
'rhob',xx(1:ncomp)*rho
182 End Subroutine chemical_potential
192 Subroutine pcsaft_const(ap,bp)
197 REAL,
INTENT(OUT) :: ap(0:6,3)
198 REAL,
INTENT(OUT) :: bp(0:6,3)
201 ap(0,1) = 0.91056314451539
202 ap(0,2) = -0.30840169182720
203 ap(0,3) = -0.09061483509767
204 ap(1,1) = 0.63612814494991
205 ap(1,2) = 0.18605311591713
206 ap(1,3) = 0.45278428063920
207 ap(2,1) = 2.68613478913903
208 ap(2,2) = -2.50300472586548
209 ap(2,3) = 0.59627007280101
210 ap(3,1) = -26.5473624914884
211 ap(3,2) = 21.4197936296668
212 ap(3,3) = -1.72418291311787
213 ap(4,1) = 97.7592087835073
214 ap(4,2) = -65.2558853303492
215 ap(4,3) = -4.13021125311661
216 ap(5,1) = -159.591540865600
217 ap(5,2) = 83.3186804808856
218 ap(5,3) = 13.7766318697211
219 ap(6,1) = 91.2977740839123
220 ap(6,2) = -33.7469229297323
221 ap(6,3) = -8.67284703679646
223 bp(0,1) = 0.72409469413165
224 bp(0,2) = -0.57554980753450
225 bp(0,3) = 0.09768831158356
226 bp(1,1) = 1.11913959304690 *2.0
227 bp(1,2) = 0.34975477607218 *2.0
228 bp(1,3) = -0.12787874908050 *2.0
229 bp(2,1) = -1.33419498282114 *3.0
230 bp(2,2) = 1.29752244631769 *3.0
231 bp(2,3) = -3.05195205099107 *3.0
232 bp(3,1) = -5.25089420371162 *4.0
233 bp(3,2) = -4.30386791194303 *4.0
234 bp(3,3) = 5.16051899359931 *4.0
235 bp(4,1) = 5.37112827253230 *5.0
236 bp(4,2) = 38.5344528930499 *5.0
237 bp(4,3) = -7.76088601041257 *5.0
238 bp(5,1) = 34.4252230677698 *6.0
239 bp(5,2) = -26.9710769414608 *6.0
240 bp(5,3) = 15.6044623461691 *6.0
241 bp(6,1) = -50.8003365888685 *7.0
242 bp(6,2) = -23.6010990650801 *7.0
243 bp(6,3) = -4.23812936930675 *7.0
246 End Subroutine pcsaft_const
250 End Module mod_chempot
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains constant...
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...