diff --git a/matlab/compute/compute_fa_1D.m b/matlab/compute/compute_fa_1D.m index 3fce392234b36857c8aee44554bcf746313dd3f3..d8ab8d74c30310aeb0da5fbb427039c6936a3fcd 100644 --- a/matlab/compute/compute_fa_1D.m +++ b/matlab/compute/compute_fa_1D.m @@ -13,6 +13,10 @@ x = options.XPERP; smin = min(abs(s)); xmin = min(abs(x)); +[~, ikx0] = min(abs(data.kx)); +[~, iky0] = min(abs(data.ky)); +kx_ = data.kx; ky_ = data.ky; + switch options.SPECIE case 'e' Napj_ = data.Nepj; @@ -23,13 +27,16 @@ switch options.SPECIE parray = double(data.Pi); jarray = double(data.Ji); end +Np = numel(parray); Nj = numel(jarray); switch options.Z case 'avg' Napj_ = mean(Napj_,5); + phi_ = mean(data.PHI,3); otherwise [~,iz] = min(abs(options.Z-data.z)); Napj_ = Napj_(:,:,:,:,iz,:); + phi_ = data.PHI(:,:,iz); end Napj_ = squeeze(Napj_); @@ -42,49 +49,89 @@ Napj_ = mean(Napj_(:,:,:,:,frames),5); Napj_ = squeeze(Napj_); +if options.non_adiab + for ij_ = 1:Nj + for ikx = 1:data.Nkx + for iky = 1:data.Nky + kp_ = sqrt(kx_(ikx)^2 + ky_(iky)^2); + Napj_(1,ij_,ikx,iky) = Napj_(1,ij_,ikx,iky) + kernel(ij_,kp_)*phi_(ikx,iky); + end + end + end +end -Np = numel(parray); Nj = numel(jarray); % x = 0 -Fs = zeros(data.Nkx,data.Nky,numel(s)); -FAM = FaM(s,xmin); -for ip_ = 1:Np - p_ = parray(ip_); - HH = Hp(p_,s); - for ij_ = 1:Nj - j_ = jarray(ij_); - LL = Lj(j_,xmin); - HLF = HH.*LL.*FAM; - for ikx = 1:data.Nkx - for iky = 1:data.Nky - Fs(ikx,iky,:) = squeeze(Fs(ikx,iky,:))' + Napj_(ip_,ij_,ikx,iky)*HLF; +if options.RMS + Fs = zeros(data.Nkx,data.Nky,numel(s)); + FAM = FaM(s,xmin); + for ip_ = 1:Np + p_ = parray(ip_); + HH = Hp(p_,s); + for ij_ = 1:Nj + j_ = jarray(ij_); + LL = Lj(j_,xmin); + HLF = HH.*LL.*FAM; + for ikx = 1:data.Nkx + for iky = 1:data.Nky + Fs(ikx,iky,:) = squeeze(Fs(ikx,iky,:))' + Napj_(ip_,ij_,ikx,iky)*HLF; + end end + end + end +else + Fs = s*0; + FAM = FaM(s,xmin); + for ip_ = 1:Np + p_ = parray(ip_); + HH = Hp(p_,s); + for ij_ = 1:Nj + j_ = jarray(ij_); + LL = Lj(j_,xmin); + Fs = Fs + squeeze(Napj_(ip_,ij_,ikx0,iky0))*HH.*LL.*FAM; end end end % s = 0 -Fx = zeros(data.Nkx,data.Nky,numel(x)); -FAM = FaM(smin,x); -for ip_ = 1:Np - p_ = parray(ip_); - HH = Hp(p_,smin); - for ij_ = 1:Nj - j_ = jarray(ij_); - LL = Lj(j_,x); - HLF = HH.*LL.*FAM; - for ikx = 1:data.Nkx - for iky = 1:data.Nky - Fx(ikx,iky,:) = squeeze(Fx(ikx,iky,:))' + Napj_(ip_,ij_,ikx,iky)*HLF; +if options.RMS + Fx = zeros(data.Nkx,data.Nky,numel(x)); + FAM = FaM(x,smin); + for ip_ = 1:Np + p_ = parray(ip_); + HH = Hp(p_,smin); + for ij_ = 1:Nj + j_ = jarray(ij_); + LL = Lj(j_,x); + HLF = HH.*LL.*FAM; + for ikx = 1:data.Nkx + for iky = 1:data.Nky + Fx(ikx,iky,:) = squeeze(Fx(ikx,iky,:))' + Napj_(ip_,ij_,ikx,iky)*HLF; + end end + end + end +else + Fx = x*0; + FAM = FaM(smin,x); + for ip_ = 1:Np + p_ = parray(ip_); + HH = Hp(p_,smin); + for ij_ = 1:Nj + j_ = jarray(ij_); + LL = Lj(j_,x); + Fx = Fx + squeeze(Napj_(ip_,ij_,ikx0,iky0))*HH.*LL.*FAM; end end end + Fs = real(Fs.*conj(Fs)); %|f_a|^2 -Fs = sqrt(squeeze(sum(sum(Fs,1),2))); %sqrt(<|f_a|>kx,ky) -Fs = Fs./max(max(Fs)); Fx = real(Fx.*conj(Fx)); %|f_a|^2 -Fx = sqrt(squeeze(sum(sum(Fx,1),2))); %sqrt(<|f_a|>kx,ky) +if options.RMS +Fs = squeeze(sqrt(mean(mean(Fs,1),2))); %sqrt(<|f_a|^2>kx,ky) +Fx = squeeze(sqrt(mean(mean(Fx,1),2))); %sqrt(<|f_a|^2>kx,ky) +end +Fs = Fs./max(max(Fs)); Fx = Fx./max(max(Fx)); end \ No newline at end of file diff --git a/matlab/plot/plot_fa.m b/matlab/plot/plot_fa.m index d95e2c44cdd8793863724b13d20ea48d1b6af00f..ab93497e519b30ce95ebfcf95433e9c1dd16fb7d 100644 --- a/matlab/plot/plot_fa.m +++ b/matlab/plot/plot_fa.m @@ -1,23 +1,23 @@ function [ FIGURE ] = plot_fa( DATA, OPTIONS ) FIGURE.fig = figure; FIGURE.FIGNAME = ['f_a_',DATA.PARAMS]; - +switch OPTIONS.Z + case 'avg' + zcomp = ' z-avg'; + otherwise + zcomp = [' z=',sprintf('%2.2f',DATA.z(OPTIONS.Z))]; +end if OPTIONS.ONED - OPTIONS.SPECIE = 'i'; - [~,~,fsi,fxi] = compute_fa_1D(DATA, OPTIONS); - OPTIONS.SPECIE = 'e'; - [s,x,fse,fxe] = compute_fa_1D(DATA, OPTIONS); + [s,x,fsa,fxa] = compute_fa_1D(DATA, OPTIONS); [~,it] = min(abs(OPTIONS.T-DATA.Ts5D)); subplot(1,2,1) - plot(s,fse); hold on - plot(s,fsi); - legend('e','i') + plot(s,fsa); hold on + legend(OPTIONS.SPECIE) xlabel('$v_\parallel, (\mu=0)$'); ylabel('$\langle |f_a|^2\rangle_{xy}^{1/2}$'); title(DATA.param_title); subplot(1,2,2) - plot(x,fxe); hold on; - plot(x,fxi); - legend('e','i') + plot(x,fxa); hold on; + legend(OPTIONS.SPECIE) xlabel('$\mu, (v_\parallel=0)$'); ylabel('$\langle |f_a|^2\rangle_{xy}^{1/2}$'); if numel(it) == 1 title(['t=',num2str(DATA.Ts5D(it))]); @@ -26,33 +26,24 @@ if OPTIONS.ONED end else - OPTIONS.SPECIE = 'i'; - [~,~,FFi] = compute_fa_2D(DATA, OPTIONS); - OPTIONS.SPECIE = 'e'; - [SS,XX,FFe] = compute_fa_2D(DATA, OPTIONS); + [SS,XX,FFa] = compute_fa_2D(DATA, OPTIONS); [~,it] = min(abs(OPTIONS.T-DATA.Ts5D)); - subplot(1,2,1) - if OPTIONS.CTR - contour(SS,XX,FFi',128); - else - pclr = pcolor(SS,XX,FFi'); set(pclr, 'edgecolor','none'); shading interp + switch OPTIONS.PLT_FCT + case 'contour' + contour(SS,XX,FFa',128); + case 'pcolor' + pclr = pcolor(SS,XX,FFa'); set(pclr, 'edgecolor','none'); shading interp end xlabel('$v_\parallel$'); ylabel('$\mu$'); - legend('$\langle |f_i|^2\rangle_{xy}^{1/2}$') - title(DATA.param_title); - % FF = log10(FF); - subplot(1,2,2) - if OPTIONS.CTR - contour(SS,XX,FFe',128); - else - pclr = pcolor(SS,XX,FFe'); set(pclr, 'edgecolor','none'); shading interp - end - legend('$\langle |f_e|^2\rangle_{xy}^{1/2}$') - xlabel('$v_\parallel$'); ylabel('$\mu$'); + legend(['$\langle |f_',OPTIONS.SPECIE,'|^2\rangle_{xy}^{1/2}$',zcomp]) if numel(it) == 1 - title(['t=',num2str(DATA.Ts5D(it))]); + title(['HeLaZ''$\langle |f_',OPTIONS.SPECIE... + ,'|^2\rangle_{xy}^{1/2}$',zcomp... + ,', $t=$[',sprintf('%1.1f',DATA.Ts5D(it)),']']); else - title(['average $t\in$[',num2str(DATA.Ts5D(min(it))),',',num2str(DATA.Ts5D(max(it))),']']); + title(['HeLaZ''$\langle |f_',OPTIONS.SPECIE,... + '|^2\rangle_{xy}^{1/2}$',zcomp,... + ', average $t\in$[',sprintf('%1.1f',DATA.Ts5D(min(it))),',',sprintf('%1.1f',DATA.Ts5D(max(it))),']']); end end