Skip to content
Snippets Groups Projects
Commit 470a15a7 authored by Chatzilouka Aliki's avatar Chatzilouka Aliki Committed by Antonia Frank
Browse files

fixing time interpolation for cd_dens, cd_integrated and p_integrated profiles

parent 372705b5
No related branches found
No related tags found
1 merge request!137Add quantities to ids for MRE
......@@ -107,66 +107,91 @@ ec_total_cur(isnan(ec_total_cur)) = 0;
for i = 1:nb_launchers
for ii = 1:ec_n_t
% ec, need to find matching time index
ids_core_sources.source{last_index+i}.profiles_1d{ii}.time = ec_t_grid(ii); % profiles time
ids_core_sources.source{last_index+i}.global_quantities{ii}.time = ec_t_grid(ii); % globals time
[~, ec_idx] = min(abs(ec_time-ec_t_grid(ii)));
if ec_time(ec_idx) == ec_t_grid(ii) % same grid
% current density (to adapt to <J.B>/B0)
ids_core_sources.source{last_index+i}.profiles_1d{ii}.j_parallel = ...
ec_data.cd_dens.data(:,end,ec_idx)';
% integrated current density (to adapt to INTEGRAL(<J.B>/B0)*ds_phi)
ids_core_sources.source{last_index+i}.profiles_1d{ii}.current_parallel_inside = ...
ec_data.cd_integrated.data(:,ii)';
ids_core_sources.source{last_index+i}.profiles_1d{ii}.time = ec_t_grid(ii); % profiles time
ids_core_sources.source{last_index+i}.global_quantities{ii}.time = ec_t_grid(ii); % globals time
else
ids_core_sources.source{last_index+i}.profiles_1d{ii}.j_parallel = ...
zeros(1,numel(ec_data.cd_dens.x(1,:)))';
%ids_core_sources.source{last_index+i}.profiles_1d{ii}.current_parallel_inside = ...
% zeros(1,numel(ec_data.cd_integrated.x(1,:)))';
end
% globals
ids_core_sources.source{last_index+i}.global_quantities{ii}.time = ec_t_grid(ii);
ids_core_sources.source{last_index+i}.global_quantities{ii}.power = ec_total_pow(ii);
ids_core_sources.source{last_index+i}.global_quantities{ii}.current_parallel = ec_total_cur(ii);
% globals
ids_core_sources.source{last_index+i}.global_quantities{ii}.time = ec_t_grid(ii);
ids_core_sources.source{last_index+i}.global_quantities{ii}.power = ec_total_pow(ii);
ids_core_sources.source{last_index+i}.global_quantities{ii}.current_parallel = ec_total_cur(ii);
end
end
% interpoating p_dens profiles from 'ec_time' grid (toray time nodes) to 'ec_t_grid' (injected power time)
p_dens = ec_data.p_dens.data;
p_integrated = ec_data.p_integrated.data;
cd_dens = ec_data.cd_dens.data;
cd_integrated = ec_data.cd_integrated.data;
p_ec_injected = powers_gdat.ec.data;
it = iround_os(ec_t_grid,ec_time);
sparse_p_ec_injected = p_ec_injected(it,:); % injected ec power vals corresponding to ec_time grid
% calculate normalised profiles on ec_time grid
norm_p_dens = zeros(size(p_dens, 1), nb_launchers+1, length(ec_time));
norm_p_integrated = zeros(size(p_integrated, 1), nb_launchers+1, length(ec_time));
norm_cd_dens = zeros(size(cd_dens, 1), nb_launchers+1, length(ec_time));
norm_cd_integrated = zeros(size(cd_integrated, 1), nb_launchers+1, length(ec_time));
for t = 1:length(ec_time)
normalised = zeros(size(p_dens, 1), nb_launchers+1);
norm_p_dens_temp = zeros(size(p_dens, 1), nb_launchers+1);
norm_p_integrated_temp = zeros(size(p_integrated, 1), nb_launchers+1);
norm_cd_dens_temp = zeros(size(cd_dens, 1), nb_launchers+1);
norm_cd_integrated_temp = zeros(size(cd_integrated, 1), nb_launchers+1);
for launcher = 1:nb_launchers+1
normalised(:, launcher) = p_dens(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
norm_p_dens_temp(:, launcher) = p_dens(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
norm_p_integrated_temp(:, launcher) = p_integrated(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
norm_cd_dens_temp(:, launcher) = cd_dens(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
norm_cd_integrated_temp(:, launcher) = cd_integrated(:, launcher, t) ./ sparse_p_ec_injected(t, launcher);
end
norm_p_dens(:,:,t) = normalised;
norm_p_dens(:,:,t) = norm_p_dens_temp;
norm_p_integrated(:,:,t) = norm_p_integrated_temp;
norm_cd_dens(:,:,t) = norm_cd_dens_temp;
norm_cd_integrated(:,:,t) = norm_cd_integrated_temp;
end
% interpolate normalised p_dens profiles on ec_t_grid
interp_norm_p_dens = zeros(size(norm_p_dens, 1), size(norm_p_dens, 2), ec_n_t);
interp_norm_p_integrated = zeros(size(norm_p_integrated, 1), size(norm_p_integrated, 2), ec_n_t);
interp_norm_cd_dens = zeros(size(norm_cd_dens, 1), size(norm_cd_dens, 2), ec_n_t);
interp_norm_cd_integrated = zeros(size(norm_cd_integrated, 1), size(norm_cd_integrated, 2), ec_n_t);
for rho = 1:size(norm_p_dens, 1)
for launcher = 1:size(norm_p_dens, 2)
profile = squeeze(norm_p_dens(rho, launcher, :));
interp_profile = interp1(ec_time, profile, ec_t_grid);
interp_norm_p_dens(rho, launcher, :) = interp_profile;
profile_p_dens = squeeze(norm_p_dens(rho, launcher, :));
profile_p_integrated = squeeze(norm_p_integrated(rho, launcher, :));
profile_cd_dens = squeeze(norm_cd_dens(rho, launcher, :));
profile_cd_integrated = squeeze(norm_cd_integrated(rho, launcher, :));
interp_profile_p_dens = interp1(ec_time, profile_p_dens, ec_t_grid);
interp_profile_p_integrated = interp1(ec_time, profile_p_integrated, ec_t_grid);
interp_profile_cd_dens = interp1(ec_time, profile_cd_dens, ec_t_grid);
interp_profile_cd_integrated = interp1(ec_time, profile_cd_integrated, ec_t_grid);
interp_norm_p_dens(rho, launcher, :) = interp_profile_p_dens;
interp_norm_p_integrated(rho, launcher, :) = interp_profile_p_integrated;
interp_norm_cd_dens(rho, launcher, :) = interp_profile_cd_dens;
interp_norm_cd_integrated(rho, launcher, :) = interp_profile_cd_integrated;
end
end
% normalised & interpolated p_dens profiles * p_ec_injected on ec_t_grid
% normalised & interpolated profiles * p_ec_injected on ec_t_grid
interp_p_dens = zeros(size(interp_norm_p_dens, 1), size(interp_norm_p_dens, 2), ec_n_t);
interp_p_integrated = zeros(size(interp_norm_p_integrated, 1), size(interp_norm_p_integrated, 2), ec_n_t);
interp_cd_dens = zeros(size(interp_norm_cd_dens, 1), size(interp_norm_cd_dens, 2), ec_n_t);
interp_cd_integrated = zeros(size(interp_norm_cd_integrated, 1), size(interp_norm_cd_integrated, 2), ec_n_t);
for t = 1:length(ec_t_grid)
unnormalised = zeros(size(p_dens, 1), nb_launchers+1);
unnormalised_p_dens = zeros(size(p_dens, 1), nb_launchers+1);
unnormalised_p_integrated = zeros(size(p_integrated, 1), nb_launchers+1);
unnormalised_cd_dens = zeros(size(cd_dens, 1), nb_launchers+1);
unnormalised_cd_integrated = zeros(size(cd_integrated, 1), nb_launchers+1);
for launcher = 1:nb_launchers+1
unnormalised(:,launcher) = interp_norm_p_dens(:,launcher,t).* p_ec_injected(t, launcher);
unnormalised_p_dens(:,launcher) = interp_norm_p_dens(:,launcher,t).* p_ec_injected(t, launcher);
unnormalised_p_integrated(:,launcher) = interp_norm_p_integrated(:,launcher,t).* p_ec_injected(t, launcher);
unnormalised_cd_dens(:,launcher) = interp_norm_cd_dens(:,launcher,t).* p_ec_injected(t, launcher);
unnormalised_cd_integrated(:,launcher) = interp_norm_cd_integrated(:,launcher,t).* p_ec_injected(t, launcher);
end
interp_p_dens(:,:,t) = unnormalised;
interp_p_dens(:,:,t) = unnormalised_p_dens;
interp_p_integrated(:,:,t) = unnormalised_p_integrated;
interp_cd_dens(:,:,t) = unnormalised_cd_dens;
interp_cd_integrated(:,:,t) = unnormalised_cd_integrated;
end
for ii = 1:ec_n_t
......@@ -175,6 +200,15 @@ for ii = 1:ec_n_t
ec_data.p_dens.rhotor_norm(1,:);
ids_core_sources.source{last_index+i}.profiles_1d{ii}.electrons.energy = ...
interp_p_dens(:,i,ii);
ids_core_sources.source{last_index+i}.profiles_1d{ii}.electrons.power_inside = ...
interp_p_integrated(:,i,ii);
% current density (to adapt to <J.B>/B0)
ids_core_sources.source{last_index+i}.profiles_1d{ii}.j_parallel = ...
interp_cd_dens(:,i,ii);
% integrated current density (to adapt to INTEGRAL(<J.B>/B0)*ds_phi)
ids_core_sources.source{last_index+i}.profiles_1d{ii}.current_parallel_inside = ...
interp_cd_integrated(:,i,ii);
end
end
last_index = last_index+nb_launchers;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment