From b13d79d38569259f3b842bd0ce2e25096cc179f6 Mon Sep 17 00:00:00 2001 From: Antoine Hoffmann <antoine.hoffmann@epfl.ch> Date: Thu, 9 Jun 2022 11:01:38 +0200 Subject: [PATCH] cleaning, adiabe is now benchmarked --- src/poisson.F90 | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/poisson.F90 b/src/poisson.F90 index 49f1db40..8b401b0c 100644 --- a/src/poisson.F90 +++ b/src/poisson.F90 @@ -27,6 +27,7 @@ SUBROUTINE poisson kxloop: DO ikx = ikxs,ikxe kyloop: DO iky = ikys,ikye + phi(iky,ikx,izs:ize) = 0._dp !!!! Compute ion particle charge density q_i n_i rho_i = 0._dp DO ini=1,jmaxi+1 @@ -43,25 +44,22 @@ SUBROUTINE poisson END DO ELSE ! Adiabatic electrons ! Adiabatic charge density (linked to flux surface averaged phi) - fsa_phi = 0._dp ! We compute the flux surface average solving a flux surface averaged ! Poisson equation, i.e. - ! ! [qi^2(1-sum_j K_j^2)/tau_i] <phi>_psi = <q_i n_i >_psi ! inv_pol_ion^-1 fsa_phi = simpson(Jacobian rho_i ) * iInt_Jacobian + fsa_phi = 0._dp IF(kyarray(iky).EQ.0._dp) THEN ! take ky=0 mode (y-average) ! Prepare integrant for z-average integrant(izs:ize) = Jacobian(izs:ize,0)*rho_i(izs:ize)*inv_pol_ion(iky,ikx,izs:ize) call simpson_rule_z(integrant(izs:ize),intf_) ! get the flux averaged phi - fsa_phi = intf_ + fsa_phi = intf_ * iInt_Jacobian !Normalize by 1/int(Jxyz)dz ENDIF - rho_e(izs:ize) = fsa_phi * iInt_Jacobian !Normalize by 1/int(Jxyz)dz + rho_e(izs:ize) = fsa_phi ENDIF - !!!!!!!!!!!!!!! Inverting the poisson equation !!!!!!!!!!!!!!!!!!!!!!!!!! - DO iz = izs,ize - phi(iky, ikx, iz) = (rho_e(iz) + rho_i(iz))*inv_poisson_op(iky,ikx,iz) - ENDDO + phi(iky,ikx,izs:ize) = (rho_e(izs:ize) + rho_i(izs:ize))*inv_poisson_op(iky,ikx,izs:ize) + END DO kyloop END DO kxloop -- GitLab