From 018142a60b27211639d72f6095868cae6fa2e769 Mon Sep 17 00:00:00 2001
From: Antoine Cyril David Hoffmann <ahoffman@spcpc606.epfl.ch>
Date: Mon, 22 Feb 2021 11:11:58 +0100
Subject: [PATCH] Kinetic hyperdiffusion is added

---
 src/moments_eq_rhs.F90 | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/src/moments_eq_rhs.F90 b/src/moments_eq_rhs.F90
index 4de634b4..be07f74f 100644
--- a/src/moments_eq_rhs.F90
+++ b/src/moments_eq_rhs.F90
@@ -144,15 +144,17 @@ SUBROUTINE moments_eq_rhs_e
             Tphi = 0._dp
           ENDIF
 
-          !! Kinetic hyperdiffusion
+          !! Parallel kinetic hyperdiffusion (projection of d/dv^4 f on Hermite basis)
           Hyper_diff_p = 0._dp
           IF ( p_int .GE. 4 ) THEN
-            Hyper_diff_p = (2._dp*p_dp)**2 *moments_e(ip-4,ij,ikr,ikz,updatetlevel)
+            Hyper_diff_p = 4._dp*SQRT(p_dp*(p_dp-1._dp)*(p_dp-2._dp)*(p_dp-3._dp)*(p_dp-4._dp))&
+                          *moments_e(ip-4,ij,ikr,ikz,updatetlevel)
           ENDIF
 
+          !! Perpendicular kinetic hyperdiffusion (projection of d/dv^4 f on Laguerre basis)
           Hyper_diff_j = 0._dp
-          IF ( j_int .GE. 2 ) THEN
-            DO il = 1,(ij-2)
+          IF ( j_int .GE. 4 ) THEN
+            DO il = 1,(ij-4)
               l_dp = real(il-1,dp)
               Hyper_diff_j = Hyper_diff_j + (j_dp-(l_dp+1_dp))*moments_e(ip,il,ikr,ikz,updatetlevel)
             ENDDO
@@ -241,14 +243,7 @@ SUBROUTINE moments_eq_rhs_i
       xNapjm1 = -taui_qi_etaB * j_dp
       ! x N_i^{pj} coeff
       xNapj   = taui_qi_etaB * 2._dp*(p_dp + j_dp + 1._dp)
-      ! Damping over the moments
-      IF ( p_damp .GT. 0 ) THEN
-        xNapj = xNapj - (p_dp/real(pmaxi,dp))**(2*p_damp)
-      ENDIF
-      IF ( j_damp .GT. 0 ) THEN
-        xNapj = xNapj - (j_dp/real(jmaxi,dp))**(2*j_damp)
-      ENDIF
-      
+
       !! Collision operator pj terms
       xCapj = -nu_i*(p_dp + 2._dp*j_dp) !DK Lenard-Bernstein basis
       ! Dougherty part
-- 
GitLab