19 theta,ti,df,gammaij,omega,lij)
24 double precision mi(s),alpha(s,s),ni(s),mu(s,s),sigma(s,s), &
25 chi(s,s),zeta0,theta(s),Ti(s),DF(s,s), &
26 gammaij(s,s),omega(s,s),Lij(s,s)
29 double precision kronecker(s,s),sum1(s,s),l_bar(s,s),lkj(s,s), &
30 Lkin(s,s),Lcol(s,s),Amat(s,s),bmat(s,s), &
38 parameter(pi=3.14159265458979323846d0)
60 if(ni(k) > 0d0) sum1(i,j) = sum1(i,j) + (omega(i,k)-zeta0
69 l_bar(i,j) = -2.5d0*ni(i)*ti(i)**2/mi(i)*sum1(i,j)
70 amat(i,j) = gammaij(i,j) - 0.5d0*zeta0*kronecker(i,j)
71 bmat(i,j) = l_bar(i,j)
81 amat0(i,j) = amat(i,j)
88 CALL ludcmp(amat0, s, np, indx, d,
'thermal_mobility')
89 CALL lubksb(amat0, s, np, indx, bmat0)
99 lkin(i,j) = lkj(i,j) + 2.5d0*ti(i)/mi(i)*df(i,j)
112 lcol(i,j) = lcol(i,j) + (1.d0+alpha(i,p))/8.d0*mi(p)* &
113 mu(i,p)*sigma(i,p)**3*chi(i,p)*(4.d0*pi/5.d0* &
114 (1.d0-alpha(i,p))*(mu(i,p)-mu(p,i))*ni(i) &
115 *(2.d0/mi(p)*lkin(p,j)+5.d0*ti(i)/mi(i)/mi(p)* &
116 df(p,j))+48.d0*pi/15.d0*ni(i)*(2.d0*mu(p,i)/mi(p)* &
117 lkin(p,j)-5.d0*(2.d0*mu(i,p)-mu(p,i))*ti(i)/mi(i)/ &
120 lij(i,j) = lkin(i,j) + lcol(i,j)
subroutine ludcmp(a, n, np, indx, d, calledFrom)
subroutine thermal_mobility(s, mi, alpha, ni, mu, sigma, chi, zeta0, theta, Ti, DF, gammaij, omega, Lij)
subroutine lubksb(a, n, np, indx, b)