From 657e60ec8a69e60cca9c8260861882501045519f Mon Sep 17 00:00:00 2001 From: Antoine Cyril David Hoffmann <ahoffman@spcpc606.epfl.ch> Date: Tue, 18 May 2021 17:23:16 +0200 Subject: [PATCH] Added option to intialize a sin profile as initial state --- src/inital.F90 | 39 ++++++++++++++------------------------- src/initial_par_mod.F90 | 6 +++--- 2 files changed, 17 insertions(+), 28 deletions(-) diff --git a/src/inital.F90 b/src/inital.F90 index 19690e50..73bc3cb5 100644 --- a/src/inital.F90 +++ b/src/inital.F90 @@ -34,6 +34,9 @@ SUBROUTINE inital IF (INIT_NOISY_PHI) THEN IF (my_id .EQ. 0) WRITE(*,*) 'Init noisy phi' CALL init_phi ! init noisy phi_0, N_0 = 0 + ELSEIF (INIT_ZF .GT. 0) THEN + IF (my_id .EQ. 0) WRITE(*,*) 'Init ZF phi' + CALL init_phi ! init ZF ELSE IF (my_id .EQ. 0) WRITE(*,*) 'Init noisy moments and ghosts' CALL init_moments ! init noisy N_0 @@ -192,36 +195,22 @@ SUBROUTINE init_phi ENDIF !**** Cancel previous moments initialization - DO ip=ips_e,ipe_e - DO ij=ijs_e,ije_e - DO ikr=ikrs,ikre - DO ikz=ikzs,ikze - moments_e( ip,ij,ikr,ikz, :) = 0._dp - ENDDO - ENDDO - ENDDO - ENDDO - DO ip=ips_i,ipe_i - DO ij=ijs_i,ije_i - DO ikr=ikrs,ikre - DO ikz=ikzs,ikze - moments_i( ip,ij,ikr,ikz, :) = 0._dp - ENDDO - ENDDO - ENDDO - ENDDO + moments_e = 0._dp; moments_i = 0._dp - ELSEIF(INIT_ZF_PHI .GT. 0) THEN + ELSEIF(INIT_ZF .GT. 0) THEN !**** Zonal Flow initialization ******************************************* ! Every mode is zero - DO ikr=ikrs,ikre - DO ikz=ikzs,ikze - phi(ikr,ikz) = 0._dp - END DO - END DO + phi = 0._dp + moments_e = 0._dp + moments_i = 0._dp ! Except at ikr = mode number + 1, symmetry is already included since kr>=0 - phi(INIT_ZF_PHI+1,ikz_0) = -init_background * imagu/2._dp + IF( (INIT_ZF+1 .GT. ikrs) .AND. (INIT_ZF+1 .LT. ikre) ) THEN + phi(INIT_ZF+1,ikz_0) = (2._dp*PI)**2*init_background/deltakr/deltakz/2._dp + ENDIF + !**** Init ZF in density + moments_e(1,1,INIT_ZF+1,ikz_0,:) = -(2._dp*PI)**2*init_background/deltakr/deltakz * imagu/2._dp + moments_i(1,1,INIT_ZF+1,ikz_0,:) = -(2._dp*PI)**2*init_background/deltakr/deltakz * imagu/2._dp ELSE ! we compute phi from noisy moments and poisson diff --git a/src/initial_par_mod.F90 b/src/initial_par_mod.F90 index f9a937c6..5dffc24f 100644 --- a/src/initial_par_mod.F90 +++ b/src/initial_par_mod.F90 @@ -8,7 +8,7 @@ MODULE initial_par ! Initialization through a noisy phi LOGICAL, PUBLIC, PROTECTED :: INIT_NOISY_PHI = .false. ! Initialization through a zonal flow phi - INTEGER, PUBLIC, PROTECTED :: INIT_ZF_PHI = 0 + INTEGER, PUBLIC, PROTECTED :: INIT_ZF = 0 ! Initial background level REAL(dp), PUBLIC, PROTECTED :: init_background=0._dp ! Initial noise amplitude @@ -39,7 +39,7 @@ CONTAINS IMPLICIT NONE NAMELIST /INITIAL_CON/ INIT_NOISY_PHI - NAMELIST /INITIAL_CON/ INIT_ZF_PHI + NAMELIST /INITIAL_CON/ INIT_ZF NAMELIST /INITIAL_CON/ init_background NAMELIST /INITIAL_CON/ init_noiselvl NAMELIST /INITIAL_CON/ iseed @@ -64,7 +64,7 @@ CONTAINS CALL attach(fidres, TRIM(str), "INIT_NOISY_PHI", INIT_NOISY_PHI) - CALL attach(fidres, TRIM(str), "INIT_ZF_PHI", INIT_ZF_PHI) + CALL attach(fidres, TRIM(str), "INIT_ZF", INIT_ZF) CALL attach(fidres, TRIM(str), "init_background", init_background) -- GitLab