Add ion charge density

This commit is contained in:
JHendrikx 2025-02-04 11:56:45 +01:00
commit fd9826c09e

View file

@ -61,6 +61,7 @@ program VlaPlEx
real(dp), allocatable, dimension(:,:,:):: f_i, f_i_old
real(dp), allocatable, dimension(:):: f0 ! Boundary at r = x_0
real(dp), allocatable, dimension(:,:):: n_i
real(dp), allocatable, dimension(:):: b_i
real(dp), allocatable, dimension(:,:):: u_i
real(dp), allocatable, dimension(:):: E_i
real(dp), allocatable, dimension(:,:):: T_i
@ -160,6 +161,7 @@ program VlaPlEx
! Allocate vectors
allocate(f_i(1:nz,1:nr,1:nv), f_i_old(1:nz,1:nr,1:nv))
allocate(n_i(1:nz,1:nr))
allocate(b_i(1:nr))
allocate(u_i(1:nz,1:nr), E_i(1:nr), T_i(1:nz,1:nr))
allocate(Zave(1:nr))
allocate(n_e(1:nr))
@ -168,6 +170,7 @@ program VlaPlEx
f_i = 0.0_dp
f_i_old = 0.0_dp
n_i = 0.0_dp
b_i = 0.0_dp
u_i = 0.0_dp
E_i = 0.0_dp
T_i = 0.0_dp
@ -263,6 +266,7 @@ program VlaPlEx
! set edge velocities to 0
f_i_old(:,:,1) = 0.0_dp
f_i_old(:,:,nv) = 0.0_dp
b_i = 0.0_dp
! Advect in the r direction
!$omp parallel do
do iz = 1, nz
@ -292,14 +296,12 @@ program VlaPlEx
end if
end do
b_i = b_i + Zave * n_i(iz,:)
end do
!$omp end parallel do
! Assume quasi-neutrality to start iterating
n_e = Zave * n_i(1,:)
!do iz = 1, nz
! n_e = n_e + Zave * n_i(:,iz)
!end do
n_e = 1.0_dp/nz * b_i
db_dphi = 0.0_dp
! Solve Poission (maximum number of iterations, break if convergence is reached before)
@ -317,12 +319,7 @@ program VlaPlEx
diag_low(nr-1) = 2.0_dp / dr**2 - db_dphi(nr) ! Neumann
! Calculate charge density
!b = n_e
!b = b - (Zave * n_i(:,1))
!do iz = 1, nz
! b = b - (Zave * n_i(:,iz))
!end do
b = -(Zave * n_i(1,:) - n_e)
b = - 1.0_dp/nz * b_i + n_e
! Apply boundary conditions
b(1) = phi0 ! Dirichlet
! b(nr) = 0.0_dp ! Dirichlet