From 18fb426ed7ed443cc7fc4c88c253c52de54d97e4 Mon Sep 17 00:00:00 2001 From: Antoine Cyril David Hoffmann <ahoffman@spcpc606.epfl.ch> Date: Tue, 15 Jun 2021 15:33:36 +0200 Subject: [PATCH] correction of non adiabatic moments in temp and dens diagnostics --- src/processing_mod.F90 | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/processing_mod.F90 b/src/processing_mod.F90 index dcf41218..0cf497c7 100644 --- a/src/processing_mod.F90 +++ b/src/processing_mod.F90 @@ -64,9 +64,10 @@ END SUBROUTINE compute_radial_ion_transport ! Compute the 2D particle density for electron and ions (sum over Laguerre) SUBROUTINE compute_density - USE fields, ONLY : moments_i, moments_e + USE fields, ONLY : moments_i, moments_e, phi USE array, ONLY : dens_e, dens_i, kernel_e, kernel_i USE time_integration, ONLY : updatetlevel + USE model, ONLY : q_e, q_i, tau_e, tau_i IMPLICIT NONE IF( (ips_i .EQ. 1) .AND. (ips_e .EQ. 1) ) THEN @@ -76,14 +77,14 @@ SUBROUTINE compute_density ! electron density dens_e(ikr,ikz) = 0._dp DO ij = ijs_e, ije_e - dens_e(ikr,ikz) = dens_e(ikr,ikz) + & - kernel_e(ij,ikr,ikz) * moments_e(1,ij,ikr,ikz,updatetlevel) + dens_e(ikr,ikz) = dens_e(ikr,ikz) + kernel_e(ij,ikr,ikz) * & + (moments_e(1,ij,ikr,ikz,updatetlevel)+q_e/tau_e*kernel_e(ij,ikr,ikz)*phi(ikr,ikz)) ENDDO ! ion density dens_i(ikr,ikz) = 0._dp DO ij = ijs_i, ije_i - dens_i(ikr,ikz) = dens_i(ikr,ikz) + & - kernel_i(ij,ikr,ikz) * moments_i(1,ij,ikr,ikz,updatetlevel) + dens_i(ikr,ikz) = dens_i(ikr,ikz) + kernel_i(ij,ikr,ikz) * & + (moments_i(1,ij,ikr,ikz,updatetlevel)+q_i/tau_i*kernel_i(ij,ikr,ikz)*phi(ikr,ikz)) ENDDO ENDDO ENDDO @@ -94,9 +95,10 @@ END SUBROUTINE compute_density ! Compute the 2D particle temperature for electron and ions (sum over Laguerre) SUBROUTINE compute_temperature - USE fields, ONLY : moments_i, moments_e + USE fields, ONLY : moments_i, moments_e, phi USE array, ONLY : temp_e, temp_i, kernel_e, kernel_i USE time_integration, ONLY : updatetlevel + USE model, ONLY : q_e, q_i, tau_e, tau_i IMPLICIT NONE REAL(dp) :: j_dp COMPLEX(dp) :: Tperp, Tpar @@ -106,26 +108,24 @@ SUBROUTINE compute_temperature DO ikz = ikzs,ikze DO ikr = ikrs,ikre ! electron temperature - Tpar = 0._dp; Tperp = 0._dp + temp_e(ikr,ikz) = 0._dp DO ij = ijs_e, ije_e j_dp = REAL(ij-1,dp) - Tpar = Tpar + kernel_e(ij,ikr,ikz)* & - (SQRT2*moments_e(3,ij,ikr,ikz,updatetlevel) + moments_e(1,ij,ikr,ikz,updatetlevel)) - Tperp = Tperp + moments_e(1,ij,ikr,ikz,updatetlevel)*& - ((2._dp*j_dp+1)*kernel_e(ij,ikr,ikz) - (j_dp+1)*kernel_e(ij+1,ikr,ikz) - j_dp*kernel_e(ij-1,ikr,ikz)) + temp_e(ikr,ikz) = temp_e(ikr,ikz) + & + 2._dp/3._dp * (2._dp*j_dp*kernel_e(ij,ikr,ikz) - (j_dp+1)*kernel_e(ij+1,ikr,ikz) - j_dp*kernel_e(ij-1,ikr,ikz))& + * (moments_e(1,ij,ikr,ikz,updatetlevel)+q_e/tau_e*kernel_e(ij,ikr,ikz)*phi(ikr,ikz)) + & + SQRT2/3._dp * kernel_e(ij,ikr,ikz) * moments_e(3,ij,ikr,ikz,updatetlevel) ENDDO - temp_e(ikr,ikz) = (Tpar + 2._dp*Tperp)/3._dp ! ion temperature - Tpar = 0._dp; Tperp = 0._dp + temp_i(ikr,ikz) = 0._dp DO ij = ijs_i, ije_i j_dp = REAL(ij-1,dp) - Tpar = Tpar + kernel_i(ij,ikr,ikz)* & - (SQRT2*moments_i(3,ij,ikr,ikz,updatetlevel) + moments_i(1,ij,ikr,ikz,updatetlevel)) - Tperp = Tperp + moments_i(1,ij,ikr,ikz,updatetlevel)*& - ((2._dp*j_dp+1)*kernel_i(ij,ikr,ikz) - (j_dp+1)*kernel_i(ij+1,ikr,ikz) - j_dp*kernel_i(ij-1,ikr,ikz)) + temp_i(ikr,ikz) = temp_i(ikr,ikz) + & + 2._dp/3._dp * (2._dp*j_dp*kernel_i(ij,ikr,ikz) - (j_dp+1)*kernel_i(ij+1,ikr,ikz) - j_dp*kernel_i(ij-1,ikr,ikz))& + * (moments_i(1,ij,ikr,ikz,updatetlevel)+q_i/tau_i*kernel_i(ij,ikr,ikz)*phi(ikr,ikz)) + & + SQRT2/3._dp * kernel_i(ij,ikr,ikz) * moments_i(3,ij,ikr,ikz,updatetlevel) ENDDO - temp_i(ikr,ikz) = (Tpar + 2._dp*Tperp)/3._dp ENDDO ENDDO ENDIF -- GitLab