diff --git a/matlab/compile_results.m b/matlab/compile_results.m
index da22009752d189ff4e831874d2b8200bc88cf276..08b7fc6c4e5529cb46b4203a401ddbc8de1d89c1 100644
--- a/matlab/compile_results.m
+++ b/matlab/compile_results.m
@@ -7,7 +7,7 @@ DATA.NU_EVOL  = []; % evolution of parameter nu between jobs
 DATA.CO_EVOL  = []; % evolution of CO
 DATA.MUx_EVOL  = []; % evolution of parameter mu between jobs
 DATA.MUy_EVOL  = []; % evolution of parameter mu between jobs
-DATA.K_N_EVOL = []; %
+DATA.K_Ni_EVOL = []; %
 DATA.L_EVOL   = []; % 
 DATA.DT_EVOL  = []; %
 % FIELDS
@@ -20,6 +20,7 @@ PGAMMAI_ = [];
 GGAMMAE_ = [];
 PGAMMAE_ = [];
 PHI_     = [];
+PSI_     = [];
 DENS_E_  = [];
 DENS_I_  = [];
 UPAR_E_  = [];
@@ -61,7 +62,7 @@ while(CONTINUE)
         W_DENS    = strcmp(h5readatt(filename,'/data/input','write_dens' ),'y');
         W_TEMP    = strcmp(h5readatt(filename,'/data/input','write_temp' ),'y');
         KIN_E     = strcmp(h5readatt(filename,'/data/input',     'KIN_E' ),'y');
-        
+        BETA      = h5readatt(filename,'/data/input','beta');
         % Check polynomials degrees
         Pe_new= numel(Pe); Je_new= numel(Je);
         Pi_new= numel(Pi); Ji_new= numel(Ji);
@@ -129,6 +130,10 @@ while(CONTINUE)
         if W_PHI
             [ PHI, Ts3D, ~] = load_3D_data(filename, 'phi');
             PHI_  = cat(4,PHI_,PHI); clear PHI
+            if BETA > 0
+                [ PSI, Ts3D, ~] = load_3D_data(filename, 'psi');
+                PSI_  = cat(4,PSI_,PSI); clear PSI
+            end
         end
         if W_NA00
             if KIN_E
@@ -196,14 +201,14 @@ while(CONTINUE)
 
         % Evolution of simulation parameters
         load_params
-        DATA.TJOB_SE   = [DATA.TJOB_SE  Ts0D(1) Ts0D(end)];
-        DATA.NU_EVOL   = [DATA.NU_EVOL  DATA.NU     DATA.NU];
-        DATA.CO_EVOL   = [DATA.CO_EVOL  DATA.CO     DATA.CO];
-        DATA.MUx_EVOL  = [DATA.MUx_EVOL DATA.MUx    DATA.MUx];
-        DATA.MUy_EVOL  = [DATA.MUy_EVOL DATA.MUy    DATA.MUy];
-        DATA.K_N_EVOL  = [DATA.K_N_EVOL DATA.K_N    DATA.K_N];
-        DATA.L_EVOL    = [DATA.L_EVOL   DATA.L      DATA.L];
-        DATA.DT_EVOL   = [DATA.DT_EVOL  DATA.DT_SIM DATA.DT_SIM];
+        DATA.TJOB_SE   = [DATA.TJOB_SE   Ts0D(1)     Ts0D(end)];
+        DATA.NU_EVOL   = [DATA.NU_EVOL   DATA.NU     DATA.NU];
+        DATA.CO_EVOL   = [DATA.CO_EVOL   DATA.CO     DATA.CO];
+        DATA.MUx_EVOL  = [DATA.MUx_EVOL  DATA.MUx    DATA.MUx];
+        DATA.MUy_EVOL  = [DATA.MUy_EVOL  DATA.MUy    DATA.MUy];
+        DATA.K_Ni_EVOL = [DATA.K_Ni_EVOL DATA.K_Ni   DATA.K_Ni];
+        DATA.L_EVOL    = [DATA.L_EVOL    DATA.L      DATA.L];
+        DATA.DT_EVOL   = [DATA.DT_EVOL   DATA.DT_SIM DATA.DT_SIM];
         
         ii = ii + 1;
         JOBFOUND = JOBFOUND + 1;
@@ -263,6 +268,7 @@ else
     end
     DATA.Ts5D = Ts5D_; DATA.Ts3D = Ts3D_; DATA.Ts0D = Ts0D_;
     DATA.PHI  = PHI_; 
+    DATA.PSI  = PSI_; 
     DATA.KIN_E=KIN_E;
     % grids
     DATA.Pe = Pe; DATA.Pi = Pi; 
@@ -275,7 +281,7 @@ else
     DATA.dir      = DIRECTORY;
     DATA.localdir = DIRECTORY;
     DATA.param_title=['$\nu_{',DATA.CONAME,'}=$', num2str(DATA.NU), ...
-        ', $\kappa_N=$',num2str(DATA.K_N),', $\kappa_T=$',num2str(DATA.K_T),...
+        ', $\kappa_{Ni}=$',num2str(DATA.K_Ni),', $\kappa_{Ti}=$',num2str(DATA.K_Ti),...
         ', $L=',num2str(DATA.L),'$, $N=',...
         num2str(DATA.Nx),'$, $(P,J)=(',num2str(DATA.PMAXI),',',...
         num2str(DATA.JMAXI),')$,',' $\mu_{hd}=$(',num2str(DATA.MUx),...
diff --git a/matlab/compute/compute_fluxtube_growth_rate.m b/matlab/compute/compute_fluxtube_growth_rate.m
index 7ee54f667b992b0014f740806c7481ca6c154b36..4cae40dab4361d3f0fd7679a794dbbbd4cd8aef1 100644
--- a/matlab/compute/compute_fluxtube_growth_rate.m
+++ b/matlab/compute/compute_fluxtube_growth_rate.m
@@ -46,8 +46,8 @@ linear_gr.avg_w = mean(imag(w_ky(Is,:)),2);
 
 if PLOT >0
    figure
-if PLOT >1
-    subplot(1,PLOT,1)
+if PLOT > 1
+    subplot(1,2,1)
 end
 
        plot(linear_gr.ky,linear_gr.g_ky(:,end),'-o','DisplayName','$Re(\omega_{k_y})$'); hold on;
@@ -67,14 +67,19 @@ end
        title(DATA.param_title);
        
 if PLOT > 1
-    subplot(1,PLOT,2)
+    if PLOT == 2
+    subplot(1,2,2)
+    elseif PLOT == 3
+        subplot(2,2,2)
+    end
     plot(DATA.Ts3D(its+1:ite),linear_gr.g_ky(Is,:)); hold on;
     plot(DATA.Ts3D(its+1:ite),linear_gr.w_ky(Is,:));
-    xlabel('t'); ylabel('$\gamma(t),\omega(t)$')
+    xlabel('t'); ylabel('$\gamma(t),\omega(t)$'); xlim([DATA.Ts3D(1) DATA.Ts3D(end)]);
 end
 
 if PLOT > 2
-    subplot(1,PLOT,3)
+    xlabel([]); xticks([]);
+    subplot(2,2,4)
     semilogy(DATA.Ts3D,squeeze(abs(DATA.PHI(2,1,DATA.Nz/2,:)))); hold on;
     xlabel('t'); ylabel('$|\phi_{ky}|(t)$')
 
diff --git a/matlab/load/load_params.m b/matlab/load/load_params.m
index 613a62bd48371d2551281113ac44908c18b44b5d..89e097229bb61478206863cc04e525f6bb93798f 100644
--- a/matlab/load/load_params.m
+++ b/matlab/load/load_params.m
@@ -1,9 +1,8 @@
 DATA.CO      = h5readatt(filename,'/data/input','CO');
-% DATA.K_N    = h5readatt(filename,'/data/input','eta_n');
-% DATA.K_T    = h5readatt(filename,'/data/input','eta_T');
-DATA.K_N     = h5readatt(filename,'/data/input','K_n');
-DATA.K_T     = h5readatt(filename,'/data/input','K_T');
-DATA.K_E     = h5readatt(filename,'/data/input','K_E');
+DATA.K_Ne    = h5readatt(filename,'/data/input','K_Ne');
+DATA.K_Ni    = h5readatt(filename,'/data/input','K_Ni');
+DATA.K_Te    = h5readatt(filename,'/data/input','K_Te');
+DATA.K_Ti    = h5readatt(filename,'/data/input','K_Ti');
 DATA.Q0      = h5readatt(filename,'/data/input','q0');
 DATA.SHEAR   = h5readatt(filename,'/data/input','shear');
 DATA.EPS     = h5readatt(filename,'/data/input','eps');
@@ -22,7 +21,7 @@ DATA.DT_SIM  = h5readatt(filename,'/data/input','dt');
 DATA.MU      = h5readatt(filename,'/data/input','mu');
 DATA.MUx     = h5readatt(filename,'/data/input','mu_x');
 DATA.MUy     = h5readatt(filename,'/data/input','mu_y');
-% MU      = str2num(filename(end-18:end-14)); %bad...
+DATA.BETA    = h5readatt(filename,'/data/input','beta');
 DATA.W_GAMMA   = h5readatt(filename,'/data/input','write_gamma') == 'y';
 DATA.W_PHI     = h5readatt(filename,'/data/input','write_phi')   == 'y';
 DATA.W_NA00    = h5readatt(filename,'/data/input','write_Na00')  == 'y';
@@ -47,9 +46,9 @@ else
     degngrad   = ['Pe_',num2str(DATA.PMAXE),'_Je_',num2str(DATA.JMAXE),...
         '_Pi_',num2str(DATA.PMAXI),'_Ji_',num2str(DATA.JMAXI)];
 end
-degngrad = [degngrad,'_Kn_%1.1f_nu_%0.0e_',...
+degngrad = [degngrad,'_Kni_%1.1f_nu_%0.0e_',...
         DATA.CONAME,'_CLOS_',num2str(DATA.CLOS),'_mu_%0.0e'];
-degngrad   = sprintf(degngrad,[DATA.K_N,DATA.NU,DATA.MU]);
+degngrad   = sprintf(degngrad,[DATA.K_Ni,DATA.NU,DATA.MU]);
 % if ~DATA.LINEARITY; degngrad = ['lin_',degngrad]; end
 resolution = [num2str(DATA.Nx),'x',num2str(DATA.Ny),'_'];
 gridname   = ['L_',num2str(DATA.L),'_'];
diff --git a/matlab/plot/plot_ballooning.m b/matlab/plot/plot_ballooning.m
index f4deff2ac21791390eb6adfde3bbc1e3212ac67a..acc3cc9c47513d7346453fb69909e3a5b8151cd6 100644
--- a/matlab/plot/plot_ballooning.m
+++ b/matlab/plot/plot_ballooning.m
@@ -7,6 +7,12 @@ function [FIG] = plot_ballooning(data,options)
 %     phi_imag=mean(imag(data.PHI(:,:,:,it0:it1)),4);
     phi_real=real(data.PHI(:,:,:,it1));
     phi_imag=imag(data.PHI(:,:,:,it1));
+    ncol = 1;
+    if data.BETA > 0
+        psi_real=real(data.PSI(:,:,:,it1));
+        psi_imag=imag(data.PSI(:,:,:,it1)); 
+        ncol = 2;
+    end
     % Apply baollooning tranform
     for iky=ikyarray
         dims = size(phi_real);
@@ -29,19 +35,13 @@ function [FIG] = plot_ballooning(data,options)
         phib_real = zeros(  Nkx*dims(3)  ,1);
         phib_imag = phib_real;
         b_angle   = phib_real;
-        
-        kk_=[];
-        ss_=[];
-        ee_=[];
+
         for i_ =1:Nkx
             start_ =  (i_ -1)*dims(3) +1;
             end_ =  i_*dims(3);
             ikx  = ordered_ikx(i_);
             phib_real(start_:end_)  = phi_real(iky,ikx,:);
             phib_imag(start_:end_)  = phi_imag(iky,ikx,:);
-            kk_ = [kk_ data.kx(ikx)];
-            ss_ = [ss_ start_];
-            ee_ = [ee_ end_];
         end
 
         % Define ballooning angle
@@ -61,11 +61,10 @@ function [FIG] = plot_ballooning(data,options)
         else
             normalization = 1;
         end
-        phib_norm = phib / normalization    ;
-        phib_real_norm  = real( phib_norm);%phib_real(:)/phib_real(idxLFS);
-        phib_imag_norm  = imag( phib_norm);%phib_imag(:)/ phib_imag(idxLFS);
-
-        subplot(numel(ikyarray),1,iplot)
+        phib_norm = phib / normalization;
+        phib_real_norm  = real( phib_norm);
+        phib_imag_norm  = imag( phib_norm);
+        subplot(numel(ikyarray),ncol,ncol*(iplot-1)+1)
         plot(b_angle/pi, phib_real_norm,'-b'); hold on;
         plot(b_angle/pi, phib_imag_norm ,'-r');
         plot(b_angle/pi, sqrt(phib_real_norm .^2 + phib_imag_norm.^2),'-k');
@@ -74,6 +73,30 @@ function [FIG] = plot_ballooning(data,options)
         ylabel('$\phi_B (\chi)$');
         title(['$k_y=',sprintf('%1.1f',data.ky(iky)),...
                ',t_{avg}\in [',sprintf('%1.1f',data.Ts3D(it0)),',',sprintf('%1.1f',data.Ts3D(it1)),']$']);
+
+        if data.BETA > 0
+            
+            psib_real = zeros(  Nkx*dims(3)  ,1);
+            psib_imag = psib_real;
+            for i_ =1:Nkx
+                start_ =  (i_ -1)*dims(3) +1;
+                end_ =  i_*dims(3);
+                ikx  = ordered_ikx(i_);
+                psib_real(start_:end_) = psi_real(iky,ikx,:);
+                psib_imag(start_:end_) = psi_imag(iky,ikx,:);
+            end
+
+            subplot(numel(ikyarray),ncol,ncol*(iplot-1)+2)
+            plot(b_angle/pi, psib_real,'-b'); hold on;
+            plot(b_angle/pi, psib_imag ,'-r');
+            plot(b_angle/pi, sqrt(psib_real .^2 + psib_imag.^2),'-k');
+            legend('real','imag','norm')
+            xlabel('$\chi / \pi$')
+            ylabel('$\psi_B (\chi)$');
+            title(['$k_y=',sprintf('%1.1f',data.ky(iky)),...
+                   ',t_{avg}\in [',sprintf('%1.1f',data.Ts3D(it0)),',',sprintf('%1.1f',data.Ts3D(it1)),']$']);
+        end
+        
         iplot = iplot + 1;
     end
 end
diff --git a/matlab/setup.m b/matlab/setup.m
index a11f45461138342c4220f61a4c568aa063465f70..07f5a65a77b955ee0d263b22a1652e653b9126b2 100644
--- a/matlab/setup.m
+++ b/matlab/setup.m
@@ -42,9 +42,10 @@ MODEL.q_e     =-1.0;
 MODEL.q_i     = 1.0;
 if MODEL.q_e == 0; SIMID = [SIMID,'_i']; end;
 % gradients L_perp/L_x
-MODEL.K_n     = K_N;        % source term kappa for HW
-MODEL.K_T     = K_T;        % Temperature
-MODEL.K_E     = 0;        % Electric
+MODEL.K_Ne    = K_Ne;       % source term kappa for HW
+MODEL.K_Ni    = K_Ni;       % source term kappa for HW
+MODEL.K_Te    = K_Te;       % Temperature
+MODEL.K_Ti    = K_Te;       % Temperature
 MODEL.GradB   = GRADB;      % Magnetic gradient
 MODEL.CurvB   = CURVB;      % Magnetic curvature
 MODEL.lambdaD = LAMBDAD;
@@ -97,8 +98,8 @@ else
 end
 % temp. dens. drives
 drives_ = [];
-if abs(K_N) > 0; drives_ = [drives_,'_kN_',num2str(K_N)]; end;
-if abs(K_T) > 0; drives_ = [drives_,'_kT_',num2str(K_T)]; end;
+if abs(K_Ni) > 0; drives_ = [drives_,'_kNi_',num2str(K_Ni)]; end;
+if abs(K_Ti) > 0; drives_ = [drives_,'_kTi_',num2str(K_Ti)]; end;
 % collision
 coll_ = ['_nu_%1.1e_',CONAME];
 coll_   = sprintf(coll_,NU);
diff --git a/matlab/write_fort90.m b/matlab/write_fort90.m
index 90dee735fcacc54f79262fe2fa2ba42e544ac7e3..7dd03641a0628fa4312808e049940e525e0c7dc5 100644
--- a/matlab/write_fort90.m
+++ b/matlab/write_fort90.m
@@ -68,9 +68,10 @@ fprintf(fid,['  sigma_e = ', num2str(MODEL.sigma_e),'\n']);
 fprintf(fid,['  sigma_i = ', num2str(MODEL.sigma_i),'\n']);
 fprintf(fid,['  q_e     = ', num2str(MODEL.q_e),'\n']);
 fprintf(fid,['  q_i     = ', num2str(MODEL.q_i),'\n']);
-fprintf(fid,['  K_n     = ', num2str(MODEL.K_n),'\n']);
-fprintf(fid,['  K_T     = ', num2str(MODEL.K_T),'\n']);
-fprintf(fid,['  K_E     = ', num2str(MODEL.K_E),'\n']);
+fprintf(fid,['  K_Ne    = ', num2str(MODEL.K_Ne),'\n']);
+fprintf(fid,['  K_Ni    = ', num2str(MODEL.K_Ni),'\n']);
+fprintf(fid,['  K_Te    = ', num2str(MODEL.K_Te),'\n']);
+fprintf(fid,['  K_Ti    = ', num2str(MODEL.K_Ti),'\n']);
 fprintf(fid,['  GradB   = ', num2str(MODEL.GradB),'\n']);
 fprintf(fid,['  CurvB   = ', num2str(MODEL.CurvB),'\n']);
 fprintf(fid,['  lambdaD = ', num2str(MODEL.lambdaD),'\n']);
diff --git a/src/auxval.F90 b/src/auxval.F90
index 5db2df056468185b66492d37600d234caab8d2f5..586a9fa9972ab2bb11e852b2563320b426a2c58f 100644
--- a/src/auxval.F90
+++ b/src/auxval.F90
@@ -44,7 +44,7 @@ subroutine auxval
 
   CALL evaluate_kernels ! precompute the kernels
 
-  CALL evaluate_poisson_op ! precompute the kernels
+  CALL evaluate_EM_op ! compute inverse of poisson and ampere operators
 
   IF ( LINEARITY .NE. 'linear' ) THEN;
     CALL build_dnjs_table ! precompute the Laguerre nonlin product coeffs
diff --git a/src/model_mod.F90 b/src/model_mod.F90
index 12d16a584c117061a45101ae009e2246dca5e291..d185f381226c76dfe6be93f802ef95ed6368e21f 100644
--- a/src/model_mod.F90
+++ b/src/model_mod.F90
@@ -24,9 +24,10 @@ MODULE model
   REAL(dp), PUBLIC, PROTECTED :: sigma_i =  1._dp     !
   REAL(dp), PUBLIC, PROTECTED ::     q_e = -1._dp     ! Charge
   REAL(dp), PUBLIC, PROTECTED ::     q_i =  1._dp     !
-  REAL(dp), PUBLIC, PROTECTED ::     K_n =  1._dp     ! Density drive
-  REAL(dp), PUBLIC, PROTECTED ::     K_T =  0._dp     ! Temperature drive
-  REAL(dp), PUBLIC, PROTECTED ::     K_E =  0._dp     ! Backg. electric field drive
+  REAL(dp), PUBLIC, PROTECTED ::    K_Ne =  1._dp     ! Density drive
+  REAL(dp), PUBLIC, PROTECTED ::    K_ni =  1._dp     ! Density drive
+  REAL(dp), PUBLIC, PROTECTED ::    K_Te =  0._dp     ! Temperature drive
+  REAL(dp), PUBLIC, PROTECTED ::    K_Ti =  0._dp     ! Backg. electric field drive
   REAL(dp), PUBLIC, PROTECTED ::   GradB =  1._dp     ! Magnetic gradient
   REAL(dp), PUBLIC, PROTECTED ::   CurvB =  1._dp     ! Magnetic curvature
   REAL(dp), PUBLIC, PROTECTED :: lambdaD =  1._dp     ! Debye length
@@ -62,7 +63,7 @@ CONTAINS
     NAMELIST /MODEL_PAR/ CLOS, NL_CLOS, KERN, LINEARITY, KIN_E, &
                          mu_x, mu_y, N_HD, mu_z, mu_p, mu_j, nu,&
                          tau_e, tau_i, sigma_e, sigma_i, q_e, q_i,&
-                         K_n, K_T, K_E, GradB, CurvB, lambdaD, beta
+                         K_Ne, K_Ni, K_Te, K_Ti, GradB, CurvB, lambdaD, beta
 
     READ(lu_in,model_par)
 
@@ -132,10 +133,12 @@ CONTAINS
     CALL attach(fidres, TRIM(str),   "sigma_i", sigma_i)
     CALL attach(fidres, TRIM(str),       "q_e",     q_e)
     CALL attach(fidres, TRIM(str),       "q_i",     q_i)
-    CALL attach(fidres, TRIM(str),       "K_n",     K_n)
-    CALL attach(fidres, TRIM(str),       "K_T",     K_T)
-    CALL attach(fidres, TRIM(str),       "K_E",     K_E)
+    CALL attach(fidres, TRIM(str),      "K_Ne",    K_Ne)
+    CALL attach(fidres, TRIM(str),      "K_Ni",    K_Ni)
+    CALL attach(fidres, TRIM(str),      "K_Te",    K_Te)
+    CALL attach(fidres, TRIM(str),      "K_Ti",    K_Ti)
     CALL attach(fidres, TRIM(str),   "lambdaD", lambdaD)
+    CALL attach(fidres, TRIM(str),      "beta",    beta)
   END SUBROUTINE model_outputinputs
 
 END MODULE model
diff --git a/src/moments_eq_rhs_mod.F90 b/src/moments_eq_rhs_mod.F90
index 2fe44a5454cc09fe7eace8128e92f65de54944cd..760f1505d77c6533cb50471d080f0568faf31520 100644
--- a/src/moments_eq_rhs_mod.F90
+++ b/src/moments_eq_rhs_mod.F90
@@ -300,7 +300,7 @@ SUBROUTINE add_Maxwellian_background_terms
   ! 40, 01,02, 21 with background gradient dependences.
   USE prec_const
   USE time_integration, ONLY : updatetlevel
-  USE model,      ONLY: taue_qe, taui_qi, K_N, K_T, KIN_E
+  USE model,      ONLY: taue_qe, taui_qi, K_Ne, K_Ni, K_Te, K_Ti, KIN_E
   USE array,      ONLY: moments_rhs_e, moments_rhs_i
   USE grid,       ONLY: contains_kx0, contains_ky0, ikx_0, iky_0,&
                         ips_e,ipe_e,ijs_e,ije_e,ips_i,ipe_i,ijs_i,ije_i,&
@@ -320,28 +320,28 @@ SUBROUTINE add_Maxwellian_background_terms
             SELECT CASE (ip-1)
             CASE(0) ! Na00 term
                 moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                  +taue_qe * sinz(izs:ize) * (1.5_dp*K_N - 1.125_dp*K_T)
+                  +taue_qe * sinz(izs:ize) * (1.5_dp*K_Ne - 1.125_dp*K_Te)
             CASE(2) ! Na20 term
                 moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                  +taue_qe * sinz(izs:ize) * (SQRT2*0.5_dp*K_N - 2.75_dp*K_T)
+                  +taue_qe * sinz(izs:ize) * (SQRT2*0.5_dp*K_Ne - 2.75_dp*K_Te)
             CASE(4) ! Na40 term
                 moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                  +taue_qe * sinz(izs:ize) * SQRT6*0.75_dp*K_T
+                  +taue_qe * sinz(izs:ize) * SQRT6*0.75_dp*K_Te
             END SELECT
           CASE(1) ! j = 1
             SELECT CASE (ip-1)
             CASE(0) ! Na01 term
                 moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                  -taue_qe * sinz(izs:ize) * (K_N + 3.5_dp*K_T)
+                  -taue_qe * sinz(izs:ize) * (K_Ne + 3.5_dp*K_Te)
             CASE(2) ! Na21 term
                 moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                  -taue_qe * sinz(izs:ize) * SQRT2*K_T
+                  -taue_qe * sinz(izs:ize) * SQRT2*K_Te
             END SELECT
           CASE(2) ! j = 2
             SELECT CASE (ip-1)
             CASE(0) ! Na02 term
                 moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_e(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                  +taue_qe * sinz(izs:ize) * 2._dp*K_T
+                  +taue_qe * sinz(izs:ize) * 2._dp*K_Te
             END SELECT
           END SELECT
         ENDDO
@@ -355,28 +355,28 @@ SUBROUTINE add_Maxwellian_background_terms
           SELECT CASE (ip-1)
           CASE(0) ! Na00 term
               moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                +taui_qi * sinz(izs:ize) * (1.5_dp*K_N - 1.125_dp*K_T)
+                +taui_qi * sinz(izs:ize) * (1.5_dp*K_Ni - 1.125_dp*K_Ti)
           CASE(2) ! Na20 term
               moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                +taui_qi * sinz(izs:ize) * (SQRT2*0.5_dp*K_N - 2.75_dp*K_T)
+                +taui_qi * sinz(izs:ize) * (SQRT2*0.5_dp*K_Ni - 2.75_dp*K_Ti)
           CASE(4) ! Na40 term
               moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                +taui_qi * sinz(izs:ize) * SQRT6*0.75_dp*K_T
+                +taui_qi * sinz(izs:ize) * SQRT6*0.75_dp*K_Ti
           END SELECT
         CASE(1) ! j = 1
           SELECT CASE (ip-1)
           CASE(0) ! Na01 term
               moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                -taui_qi * sinz(izs:ize) * (K_N + 3.5_dp*K_T)
+                -taui_qi * sinz(izs:ize) * (K_Ni + 3.5_dp*K_Ti)
           CASE(2) ! Na21 term
               moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                -taui_qi * sinz(izs:ize) * SQRT2*K_T
+                -taui_qi * sinz(izs:ize) * SQRT2*K_Ti
           END SELECT
         CASE(2) ! j = 2
           SELECT CASE (ip-1)
           CASE(0) ! Na02 term
               moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel) = moments_rhs_i(ip,ij,iky_0,ikx_0,izs:ize,updatetlevel)&
-                +taui_qi * sinz(izs:ize) * 2._dp*K_T
+                +taui_qi * sinz(izs:ize) * 2._dp*K_Ti
           END SELECT
         END SELECT
       ENDDO
diff --git a/src/numerics_mod.F90 b/src/numerics_mod.F90
index 1ede5ac6f9b392e781d09ea75deb627fb7891e06..61db0f4f2398592e0367e1df672f372ec2f294d0 100644
--- a/src/numerics_mod.F90
+++ b/src/numerics_mod.F90
@@ -6,7 +6,7 @@ MODULE numerics
     USE coeff
     implicit none
 
-    PUBLIC :: build_dnjs_table, evaluate_kernels, evaluate_poisson_op, evaluate_ampere_op
+    PUBLIC :: build_dnjs_table, evaluate_kernels, evaluate_EM_op
     PUBLIC :: compute_lin_coeff, play_with_modes, save_EM_ZF_modes
 
 CONTAINS
@@ -104,6 +104,13 @@ END SUBROUTINE evaluate_kernels
 !******************************************************************************!
 
 !******************************************************************************!
+SUBROUTINE evaluate_EM_op
+  IMPLICIT NONE
+
+  CALL evaluate_poisson_op
+  CALL evaluate_ampere_op
+
+END SUBROUTINE evaluate_EM_op
 !!!!!!! Evaluate inverse polarisation operator for Poisson equation
 !******************************************************************************!
 SUBROUTINE evaluate_poisson_op
@@ -201,7 +208,7 @@ END SUBROUTINE evaluate_ampere_op
 SUBROUTINE compute_lin_coeff
   USE array
   USE model, ONLY: taue_qe, taui_qi, sqrtTaue_qe, sqrtTaui_qi, &
-                   K_T, K_n, CurvB, GradB, KIN_E, tau_e, tau_i, sigma_e, sigma_i
+                   K_Te, K_Ti, K_Ne, K_Ni, CurvB, GradB, KIN_E, tau_e, tau_i, sigma_e, sigma_i
   USE prec_const
   USE grid,  ONLY: parray_e, parray_i, jarray_e, jarray_i, &
                    ip,ij, ips_e,ipe_e, ips_i,ipe_i, ijs_e,ije_e, ijs_i,ije_i
@@ -297,11 +304,11 @@ SUBROUTINE compute_lin_coeff
         j_dp = REAL(j_int,dp) ! REALof Laguerre degree
         !! Electrostatic potential pj terms
         IF (p_int .EQ. 0) THEN ! kronecker p0
-          xphij_e(ip,ij)    =+K_n + 2.*j_dp*K_T
-          xphijp1_e(ip,ij)  =-K_T*(j_dp+1._dp)
-          xphijm1_e(ip,ij)  =-K_T* j_dp
+          xphij_e(ip,ij)    =+K_Ne + 2.*j_dp*K_Te
+          xphijp1_e(ip,ij)  =-K_Te*(j_dp+1._dp)
+          xphijm1_e(ip,ij)  =-K_Te* j_dp
         ELSE IF (p_int .EQ. 2) THEN ! kronecker p2
-          xphij_e(ip,ij)    =+K_T/SQRT2
+          xphij_e(ip,ij)    =+K_Te/SQRT2
           xphijp1_e(ip,ij)  = 0._dp; xphijm1_e(ip,ij)  = 0._dp;
         ELSE
           xphij_e(ip,ij)    = 0._dp; xphijp1_e(ip,ij)  = 0._dp
@@ -317,11 +324,11 @@ SUBROUTINE compute_lin_coeff
       j_dp = REAL(j_int,dp) ! REALof Laguerre degree
       !! Electrostatic potential pj terms
       IF (p_int .EQ. 0) THEN ! kronecker p0
-        xphij_i(ip,ij)    =+K_n + 2._dp*j_dp*K_T
-        xphijp1_i(ip,ij)  =-K_T*(j_dp+1._dp)
-        xphijm1_i(ip,ij)  =-K_T* j_dp
+        xphij_i(ip,ij)    =+K_Ni + 2._dp*j_dp*K_Ti
+        xphijp1_i(ip,ij)  =-K_Ti*(j_dp+1._dp)
+        xphijm1_i(ip,ij)  =-K_Ti* j_dp
       ELSE IF (p_int .EQ. 2) THEN ! kronecker p2
-        xphij_i(ip,ij)    =+K_T/SQRT2
+        xphij_i(ip,ij)    =+K_Ti/SQRT2
         xphijp1_i(ip,ij)  = 0._dp; xphijm1_i(ip,ij)  = 0._dp;
       ELSE
         xphij_i(ip,ij)    = 0._dp; xphijp1_i(ip,ij)  = 0._dp
@@ -339,11 +346,11 @@ SUBROUTINE compute_lin_coeff
         j_dp = REAL(j_int,dp) ! REALof Laguerre degree
         !! Electrostatic potential pj terms
         IF (p_int .EQ. 1) THEN ! kronecker p1
-          xpsij_e(ip,ij)    =+(K_n + (2._dp*j_dp+1._dp)*K_T) * SQRT(tau_e)/sigma_e
-          xpsijp1_e(ip,ij)  =- K_T*(j_dp+1._dp)              * SQRT(tau_e)/sigma_e
-          xpsijm1_e(ip,ij)  =- K_T* j_dp                     * SQRT(tau_e)/sigma_e
+          xpsij_e(ip,ij)    =+(K_Ne + (2._dp*j_dp+1._dp)*K_Te)* SQRT(tau_e)/sigma_e
+          xpsijp1_e(ip,ij)  =- K_Te*(j_dp+1._dp)              * SQRT(tau_e)/sigma_e
+          xpsijm1_e(ip,ij)  =- K_Te* j_dp                     * SQRT(tau_e)/sigma_e
         ELSE IF (p_int .EQ. 3) THEN ! kronecker p3
-          xpsij_e(ip,ij)    =+ K_T*SQRT3/SQRT2               * SQRT(tau_e)/sigma_e
+          xpsij_e(ip,ij)    =+ K_Te*SQRT3/SQRT2               * SQRT(tau_e)/sigma_e
           xpsijp1_e(ip,ij)  = 0._dp; xpsijm1_e(ip,ij)  = 0._dp;
         ELSE
           xpsij_e(ip,ij)    = 0._dp; xpsijp1_e(ip,ij)  = 0._dp
@@ -359,11 +366,11 @@ SUBROUTINE compute_lin_coeff
       j_dp = REAL(j_int,dp) ! REALof Laguerre degree
       !! Electrostatic potential pj terms
       IF (p_int .EQ. 1) THEN ! kronecker p1
-        xpsij_i(ip,ij)    =+(K_n + (2._dp*j_dp+1._dp)*K_T) * SQRT(tau_i)/sigma_i
-        xpsijp1_i(ip,ij)  =- K_T*(j_dp+1._dp)              * SQRT(tau_i)/sigma_i
-        xpsijm1_i(ip,ij)  =- K_T* j_dp                     * SQRT(tau_i)/sigma_i
+        xpsij_i(ip,ij)    =+(K_Ni + (2._dp*j_dp+1._dp)*K_Ti)* SQRT(tau_i)/sigma_i
+        xpsijp1_i(ip,ij)  =- K_Ti*(j_dp+1._dp)              * SQRT(tau_i)/sigma_i
+        xpsijm1_i(ip,ij)  =- K_Ti* j_dp                     * SQRT(tau_i)/sigma_i
       ELSE IF (p_int .EQ. 3) THEN ! kronecker p3
-        xpsij_i(ip,ij)    =+ K_T*SQRT3/SQRT2               * SQRT(tau_i)/sigma_i
+        xpsij_i(ip,ij)    =+ K_Ti*SQRT3/SQRT2               * SQRT(tau_i)/sigma_i
         xpsijp1_i(ip,ij)  = 0._dp; xpsijm1_i(ip,ij)  = 0._dp;
       ELSE
         xpsij_i(ip,ij)    = 0._dp; xpsijp1_i(ip,ij)  = 0._dp
diff --git a/src/solve_EM_fields.F90 b/src/solve_EM_fields.F90
index b102ac1a6fd157ccacf6918dd34d2ff6bd4f749d..d1de15b04290c319288be55aa6d456a4f1b48f3c 100644
--- a/src/solve_EM_fields.F90
+++ b/src/solve_EM_fields.F90
@@ -106,7 +106,6 @@ CONTAINS
     CALL cpu_time(t0_poisson)
     !! Ampere can be solved only with beta > 0 and for process containing p=1
     IF ( SOLVE_AMPERE ) THEN
-
       kxloop: DO ikx = ikxs,ikxe
         kyloop: DO iky = ikys,ikye
           psi(iky,ikx,izs:ize)  = 0._dp
diff --git a/wk/quick_run.m b/wk/quick_run.m
index 0769f58e818a82302ff60810bcc60bf650327214..2b061efb0d29e8d38c511be3218c0741adfecbba 100644
--- a/wk/quick_run.m
+++ b/wk/quick_run.m
@@ -4,7 +4,7 @@
 % for benchmark and debugging purpose since it makes matlab "busy"
 %
 SIMID   = 'Kinetic_ballooning_mode';  % Name of the simulation
-RUN     = 0; % To run or just to load
+RUN     = 1; % To run or just to load
 addpath(genpath('../matlab')) % ... add
 default_plots_options
 HELAZDIR = '/home/ahoffman/HeLaZ/';
@@ -15,12 +15,12 @@ EXECNAME = 'helaz3';
 CLUSTER.TIME  = '99:00:00'; % allocation time hh:mm:ss
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% PHYSICAL PARAMETERS
-NU      = 0.05;   % Collision frequency
-TAU     = 1.0;    % e/i temperature ratio
-K_N     = 2.22;%2.0;   % ion Density gradient drive
-K_Ne    = K_N;        % ele Density gradient drive
-K_T     = 6.96;%0.25*K_N;   % Temperature '''
-K_Te     = K_T;            % Temperature '''
+NU      = 0.05;           % Collision frequency
+TAU     = 1.0;            % e/i temperature ratio
+K_Ne    = 3.0;            % ele Density gradient drive
+K_Ni    = 3.0;%2.0;       % ion Density gradient drive
+K_Te    = 4.5;            % Temperature '''
+K_Ti    = 8.0;%0.25*K_N;  % Temperature '''
 SIGMA_E = 0.05196152422706632;   % mass ratio sqrt(m_a/m_i) (correct = 0.0233380)
 % SIGMA_E = 0.0233380;   % mass ratio sqrt(m_a/m_i) (correct = 0.0233380)
 KIN_E   = 1;     % 1: kinetic electrons, 2: adiabatic electrons
@@ -32,11 +32,11 @@ PMAXE   = P;     % Hermite basis size of electrons
 JMAXE   = J;     % Laguerre "
 PMAXI   = P;     % " ions
 JMAXI   = J;     % "
-NX      = 12;    % real space x-gridpoints
-NY      = 10;     %     ''     y-gridpoints
+NX      = 6;    % real space x-gridpoints
+NY      = 2;     %     ''     y-gridpoints
 LX      = 2*pi/0.1;   % Size of the squared frequency domain
-LY      = 2*pi/0.1;     % Size of the squared frequency domain
-NZ      = 16;    % number of perpendicular planes (parallel grid)
+LY      = 2*pi/0.25;     % Size of the squared frequency domain
+NZ      = 32;    % number of perpendicular planes (parallel grid)
 NPOL    = 1;
 SG      = 0;     % Staggered z grids option
 %% GEOMETRY
@@ -47,7 +47,7 @@ Q0      = 1.4;    % safety factor
 SHEAR   = 0.8;    % magnetic shear (Not implemented yet)
 EPS     = 0.18;    % inverse aspect ratio
 %% TIME PARMETERS
-TMAX    = 30;  % Maximal time unit
+TMAX    = 40;  % Maximal time unit
 DT      = 5e-3;   % Time step
 SPS0D   = 1;      % Sampling per time unit for 2D arrays
 SPS2D   = 0;      % Sampling per time unit for 2D arrays
@@ -115,7 +115,7 @@ data = compile_results(LOCALDIR,JOBNUMMIN,JOBNUMMAX); %Compile the results from
 if 1
 %% linear growth rate (adapted for 2D zpinch and fluxtube)
 trange = [0.5 1]*data.Ts3D(end);
-nplots = 1;
+nplots = 3;
 lg = compute_fluxtube_growth_rate(data,trange,nplots);
 [gmax,     kmax] = max(lg.g_ky(:,end));
 [gmaxok, kmaxok] = max(lg.g_ky(:,end)./lg.ky);
@@ -128,7 +128,7 @@ if 0
 options.time_2_plot = [120];
 options.kymodes     = [0.1 0.2 0.3];
 options.normalized  = 1;
-options.field       = 'phi';
+% options.field       = 'phi';
 fig = plot_ballooning(data,options);
 end