Fix calculations with Z list
This commit is contained in:
parent
23c5d5fb45
commit
f3b2c71df5
1 changed files with 10 additions and 10 deletions
20
vlaplex.f90
20
vlaplex.f90
|
|
@ -301,7 +301,7 @@ program VlaPlEx
|
||||||
end if
|
end if
|
||||||
|
|
||||||
n_i(iz,i) = sum(f_i(iz,i,:))*dv
|
n_i(iz,i) = sum(f_i(iz,i,:))*dv
|
||||||
if (n_i(1,i) > 1.0e-10_dp) then
|
if (n_i(iz,i) > 1.0e-10_dp) then
|
||||||
u_i(iz,i) = sum(v(:) *f_i(iz,i,:))*dv / n_i(iz,i)
|
u_i(iz,i) = sum(v(:) *f_i(iz,i,:))*dv / n_i(iz,i)
|
||||||
E_i(i) = sum(v(:)**2*f_i(iz,i,:))*dv / n_i(iz,i)
|
E_i(i) = sum(v(:)**2*f_i(iz,i,:))*dv / n_i(iz,i)
|
||||||
T_i(iz,i) = 2.0_dp*E_i(i) - 2.0_dp*u_i(iz,i)**2
|
T_i(iz,i) = 2.0_dp*E_i(i) - 2.0_dp*u_i(iz,i)**2
|
||||||
|
|
@ -315,11 +315,11 @@ program VlaPlEx
|
||||||
|
|
||||||
end do
|
end do
|
||||||
!$omp end parallel do
|
!$omp end parallel do
|
||||||
sum_ni = sum_ni + Zave * n_i(iz,:)
|
sum_ni = sum_ni + Z_list(iz) * n_i(iz,:)
|
||||||
end do
|
end do
|
||||||
|
|
||||||
! Assume quasi-neutrality to start iterating
|
! Assume quasi-neutrality to start iterating
|
||||||
n_e = 1.0_dp/nz * sum_ni
|
n_e = sum_ni
|
||||||
db_dphi = 0.0_dp
|
db_dphi = 0.0_dp
|
||||||
|
|
||||||
! Solve Poission (maximum number of iterations, break if convergence is reached before)
|
! Solve Poission (maximum number of iterations, break if convergence is reached before)
|
||||||
|
|
@ -337,7 +337,7 @@ program VlaPlEx
|
||||||
diag_low(nr-1) = 2.0_dp / dr**2 - db_dphi(nr) ! Neumann
|
diag_low(nr-1) = 2.0_dp / dr**2 - db_dphi(nr) ! Neumann
|
||||||
|
|
||||||
! Calculate charge density
|
! Calculate charge density
|
||||||
b = - 1.0_dp/nz * sum_ni + n_e
|
b = - (sum_ni - n_e)
|
||||||
! Apply boundary conditions
|
! Apply boundary conditions
|
||||||
b(1) = phi0 ! Dirichlet
|
b(1) = phi0 ! Dirichlet
|
||||||
! b(nr) = 0.0_dp ! Dirichlet
|
! b(nr) = 0.0_dp ! Dirichlet
|
||||||
|
|
@ -398,18 +398,18 @@ program VlaPlEx
|
||||||
! i = 1, v<0
|
! i = 1, v<0
|
||||||
i = 1
|
i = 1
|
||||||
if (E(i) >= 0.0_dp) then
|
if (E(i) >= 0.0_dp) then
|
||||||
f_i(iz,i,2:j0-2) = f_i_old(iz,i,2:j0-2) - Zave(i)*E(i)*dt/dv*(f_i_old(iz,i,2:j0-2) - f_i_old(iz,i,1:j0-3))
|
f_i(iz,i,2:j0-2) = f_i_old(iz,i,2:j0-2) - Z_list(iz)*E(i)*dt/dv*(f_i_old(iz,i,2:j0-2) - f_i_old(iz,i,1:j0-3))
|
||||||
else
|
else
|
||||||
f_i(iz,i,2:j0-2) = f_i_old(iz,i,2:j0-2) - Zave(i)*E(i)*dt/dv*(f_i_old(iz,i,3:j0-1) - f_i_old(iz,i,2:j0-2))
|
f_i(iz,i,2:j0-2) = f_i_old(iz,i,2:j0-2) - Z_list(iz)*E(i)*dt/dv*(f_i_old(iz,i,3:j0-1) - f_i_old(iz,i,2:j0-2))
|
||||||
|
|
||||||
end if
|
end if
|
||||||
! i = 2, nr-1; all v
|
! i = 2, nr-1; all v
|
||||||
!$omp parallel do
|
!$omp parallel do
|
||||||
do i = 2, nr-1
|
do i = 2, nr-1
|
||||||
if (E(i) >= 0.0_dp) then
|
if (E(i) >= 0.0_dp) then
|
||||||
f_i(iz,i,2:nv-1) = f_i_old(iz,i,2:nv-1) - Zave(i)*E(i)*dt/dv*(f_i_old(iz,i,2:nv-1) - f_i_old(iz,i,1:nv-2))
|
f_i(iz,i,2:nv-1) = f_i_old(iz,i,2:nv-1) - Z_list(iz)*E(i)*dt/dv*(f_i_old(iz,i,2:nv-1) - f_i_old(iz,i,1:nv-2))
|
||||||
else
|
else
|
||||||
f_i(iz,i,2:nv-1) = f_i_old(iz,i,2:nv-1) - Zave(i)*E(i)*dt/dv*(f_i_old(iz,i,3:nv) - f_i_old(iz,i,2:nv-1))
|
f_i(iz,i,2:nv-1) = f_i_old(iz,i,2:nv-1) - Z_list(iz)*E(i)*dt/dv*(f_i_old(iz,i,3:nv) - f_i_old(iz,i,2:nv-1))
|
||||||
|
|
||||||
end if
|
end if
|
||||||
|
|
||||||
|
|
@ -418,9 +418,9 @@ program VlaPlEx
|
||||||
! i = nr, v>=0
|
! i = nr, v>=0
|
||||||
i = nr
|
i = nr
|
||||||
if (E(i) >= 0.0_dp) then
|
if (E(i) >= 0.0_dp) then
|
||||||
f_i(iz,i,j0+1:nv-1) = f_i_old(iz,i,j0+1:nv-1) - Zave(i)*E(i)*dt/dv*(f_i_old(iz,i,j0+1:nv-1) - f_i_old(iz,i,j0:nv-2))
|
f_i(iz,i,j0+1:nv-1) = f_i_old(iz,i,j0+1:nv-1) - Z_list(iz)*E(i)*dt/dv*(f_i_old(iz,i,j0+1:nv-1) - f_i_old(iz,i,j0:nv-2))
|
||||||
else
|
else
|
||||||
f_i(iz,i,j0+1:nv-1) = f_i_old(iz,i,j0+1:nv-1) - Zave(i)*E(i)*dt/dv*(f_i_old(iz,i,j0+2:nv) - f_i_old(iz,i,j0+1:nv-1))
|
f_i(iz,i,j0+1:nv-1) = f_i_old(iz,i,j0+1:nv-1) - Z_list(iz)*E(i)*dt/dv*(f_i_old(iz,i,j0+2:nv) - f_i_old(iz,i,j0+1:nv-1))
|
||||||
|
|
||||||
end if
|
end if
|
||||||
end do
|
end do
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue