Skip to content
Snippets Groups Projects
Commit 5d8ffe68 authored by Antonia Frank's avatar Antonia Frank
Browse files

Cleanup code and spacing, add comments to make more clear what is happening

parent 01b7a9d8
No related branches found
No related tags found
1 merge request!137Add quantities to ids for MRE
...@@ -88,122 +88,129 @@ last_index = last_index+1; % add if statement to only increment if bs source ha ...@@ -88,122 +88,129 @@ last_index = last_index+1; % add if statement to only increment if bs source ha
%% ec %% ec
% load data % load data
ec_gdat = gdat(shot,'ec_data'); ec_data = ec_gdat.ec.ec_data; ec_gdat = gdat(shot,'ec_data');
ec_time = ec_data.p_dens.t; ec_data = ec_gdat.ec.ec_data; ec_inputs = ec_gdat.ec.ec_inputs;
n_ec_time = numel(ec_time); % get tgrid from gdat ec_data
ec_t_grid = powers_gdat.ec.t; ec_n_t = numel(ec_t_grid); ec_data_tgrid = ec_data.p_dens.t; nt_ec_data = numel(ec_data_tgrid);
ec_inputs = ec_gdat.ec.ec_inputs;
% get tgrid from gdat powers
ec_powers_tgrid = powers_gdat.ec.t; nt_ec_powers = numel(ec_powers_tgrid);
% retrieve active launcher information from ec_inputs
nb_launchers = numel(ec_inputs.launchers_active.data); nb_launchers = numel(ec_inputs.launchers_active.data);
active_launchers = find(ec_inputs.launchers_active.data==1)'; active_launchers = find(ec_inputs.launchers_active.data==1)';
n_active_launchers = sum(ec_inputs.launchers_active.data); n_active_launchers = sum(ec_inputs.launchers_active.data);
% Setup structures for active launchers from template
main_desc = 'Source from electron cyclotron heating and current drive'; main_desc = 'Source from electron cyclotron heating and current drive';
id_ec.index = 3; id_ec.name = 'ec'; id_ec.index = 3; id_ec.name = 'ec';
for i_lau = active_launchers for i_lau = active_launchers
id_ec.description = sprintf('L%i/G%i, %s',i_lau,ec_inputs.gyro2launcher.data(i_lau),main_desc); id_ec.description = sprintf('L%i/G%i, %s',i_lau,ec_inputs.gyro2launcher.data(i_lau),main_desc);
ids_core_sources.source{last_index+i_lau} = source_template; ids_core_sources.source{last_index+i_lau} = source_template;
ids_core_sources.source{last_index+i_lau}.identifier = id_ec; ids_core_sources.source{last_index+i_lau}.identifier = id_ec;
ids_core_sources.source{last_index+i_lau}.profiles_1d(1:ec_n_t) = {profiles_template}; ids_core_sources.source{last_index+i_lau}.profiles_1d(1:nt_ec_powers) = {profiles_template};
ids_core_sources.source{last_index+i_lau}.global_quantities(1:ec_n_t) = {globals_template}; ids_core_sources.source{last_index+i_lau}.global_quantities(1:nt_ec_powers) = {globals_template};
end end
% get data for globals from gdat powers and fill in ids_structure
ec_total_pow = transpose(powers_gdat.ec.data(:,nb_launchers+1)); %use power from powers_gdat(injected ec power) instead of ec_data power ec_total_pow = transpose(powers_gdat.ec.data(:,nb_launchers+1)); %use power from powers_gdat(injected ec power) instead of ec_data power
ec_total_pow(isnan(ec_total_pow)) = 0; ec_total_pow(isnan(ec_total_pow)) = 0;
ec_total_cur = ec_data.cd_tot.data(nb_launchers+1,:); ec_total_cur = ec_data.cd_tot.data(nb_launchers+1,:);
ec_total_cur(isnan(ec_total_cur)) = 0; ec_total_cur(isnan(ec_total_cur)) = 0;
for i_lau = active_launchers for i_lau = active_launchers
for ii = 1:ec_n_t for ii = 1:nt_ec_powers
ids_core_sources.source{last_index+i_lau}.profiles_1d{ii}.time = ec_t_grid(ii); % profiles time ids_core_sources.source{last_index+i_lau}.global_quantities{ii}.time = ec_powers_tgrid(ii);
ids_core_sources.source{last_index+i_lau}.global_quantities{ii}.time = ec_t_grid(ii); % globals time
% globals
ids_core_sources.source{last_index+i_lau}.global_quantities{ii}.time = ec_t_grid(ii);
ids_core_sources.source{last_index+i_lau}.global_quantities{ii}.power = ec_total_pow(ii); ids_core_sources.source{last_index+i_lau}.global_quantities{ii}.power = ec_total_pow(ii);
ids_core_sources.source{last_index+i_lau}.global_quantities{ii}.current_parallel = ec_total_cur(ii); ids_core_sources.source{last_index+i_lau}.global_quantities{ii}.current_parallel = ec_total_cur(ii);
end end
end end
% interpoating p_dens profiles from 'ec_time' grid (toray time nodes) to 'ec_t_grid' (injected power time) % interpoating p_dens profiles from 'ec_data_tgrid' grid (toray tgrid) to 'ec_powers_tgrid' (powers tgrid)
p_dens = ec_data.p_dens.data;
p_dens = ec_data.p_dens.data; p_integrated = ec_data.p_integrated.data;
p_integrated = ec_data.p_integrated.data; cd_dens = ec_data.cd_dens.data;
cd_dens = ec_data.cd_dens.data;
cd_integrated = ec_data.cd_integrated.data; cd_integrated = ec_data.cd_integrated.data;
p_ec_injected = powers_gdat.ec.data; p_ec_injected = powers_gdat.ec.data;
it = iround_os(ec_t_grid,ec_time); it = iround_os(ec_powers_tgrid,ec_data_tgrid);
sparse_p_ec_injected = p_ec_injected(it,:); % injected ec power vals corresponding to ec_time grid sparse_p_ec_injected = p_ec_injected(it,:); % injected ec power vals corresponding to ec_data_tgrid
rho_grid = size(p_dens, 1); n_rho = size(p_dens, 1);
% calculate normalised profiles on ec_time grid
norm_p_dens = zeros(rho_grid, n_active_launchers, n_ec_time); % calculate normalised profiles on ec_data_tgrid grid
norm_p_integrated = zeros(rho_grid, n_active_launchers, n_ec_time); norm_p_dens = zeros(n_rho,n_active_launchers,nt_ec_data);
norm_cd_dens = zeros(rho_grid, n_active_launchers, n_ec_time); norm_p_integrated = zeros(n_rho,n_active_launchers,nt_ec_data);
norm_cd_integrated = zeros(rho_grid, n_active_launchers, n_ec_time); norm_cd_dens = zeros(n_rho,n_active_launchers,nt_ec_data);
for t = 1:n_ec_time norm_cd_integrated = zeros(n_rho,n_active_launchers,nt_ec_data);
norm_p_dens_temp = zeros(rho_grid, n_active_launchers); for it = 1:nt_ec_data
norm_p_integrated_temp = zeros(rho_grid, n_active_launchers); norm_p_dens_temp = zeros(n_rho,n_active_launchers);
norm_cd_dens_temp = zeros(rho_grid, n_active_launchers); norm_p_integrated_temp = zeros(n_rho,n_active_launchers);
norm_cd_integrated_temp = zeros(rho_grid, n_active_launchers); norm_cd_dens_temp = zeros(n_rho,n_active_launchers);
norm_cd_integrated_temp = zeros(n_rho,n_active_launchers);
for i_lau = n_active_launchers for i_lau = n_active_launchers
norm_p_dens_temp(:, i_lau) = p_dens(:, active_launchers(i_lau), t) ./ sparse_p_ec_injected(t, active_launchers(i_lau)); norm_p_dens_temp(:,i_lau) = p_dens(:,active_launchers(i_lau),it) ./ sparse_p_ec_injected(it, active_launchers(i_lau));
norm_p_integrated_temp(:, i_lau) = p_integrated(:, active_launchers(i_lau)) ./ sparse_p_ec_injected(t, active_launchers(i_lau)); norm_p_integrated_temp(:,i_lau) = p_integrated(:,active_launchers(i_lau)) ./ sparse_p_ec_injected(it, active_launchers(i_lau));
norm_cd_dens_temp(:, i_lau) = cd_dens(:, active_launchers(i_lau), t) ./ sparse_p_ec_injected(t, i_lau); norm_cd_dens_temp(:,i_lau) = cd_dens(:,active_launchers(i_lau),it) ./ sparse_p_ec_injected(it, i_lau);
norm_cd_integrated_temp(:, i_lau) = cd_integrated(:, active_launchers(i_lau), t) ./ sparse_p_ec_injected(t, active_launchers(i_lau)); norm_cd_integrated_temp(:,i_lau) = cd_integrated(:,active_launchers(i_lau),it) ./ sparse_p_ec_injected(it, active_launchers(i_lau));
end end
norm_p_dens(:,:,t) = norm_p_dens_temp; norm_p_dens(:,:,it) = norm_p_dens_temp;
norm_p_integrated(:,:,t) = norm_p_integrated_temp; norm_p_integrated(:,:,it) = norm_p_integrated_temp;
norm_cd_dens(:,:,t) = norm_cd_dens_temp; norm_cd_dens(:,:,it) = norm_cd_dens_temp;
norm_cd_integrated(:,:,t) = norm_cd_integrated_temp; norm_cd_integrated(:,:,it) = norm_cd_integrated_temp;
end end
% interpolate normalised p_dens profiles on ec_t_grid % interpolate normalised p_dens profiles on ec_powers_tgrid
interp_norm_p_dens = zeros(rho_grid, n_active_launchers, ec_n_t); interp_norm_p_dens = zeros(n_rho,n_active_launchers,nt_ec_powers);
interp_norm_p_integrated = zeros(rho_grid, n_active_launchers, ec_n_t); interp_norm_p_integrated = zeros(n_rho,n_active_launchers,nt_ec_powers);
interp_norm_cd_dens = zeros(rho_grid, n_active_launchers, ec_n_t); interp_norm_cd_dens = zeros(n_rho,n_active_launchers,nt_ec_powers);
interp_norm_cd_integrated = zeros(rho_grid, n_active_launchers, ec_n_t); interp_norm_cd_integrated = zeros(n_rho,n_active_launchers,nt_ec_powers);
for rho = 1:rho_grid for irho = 1:n_rho
for i_lau = 1:n_active_launchers for i_lau = 1:n_active_launchers
profile_p_dens = squeeze(norm_p_dens(rho, i_lau, :)); profile_p_dens = squeeze(norm_p_dens(irho,i_lau,:));
profile_p_integrated = squeeze(norm_p_integrated(rho, i_lau, :)); profile_p_integrated = squeeze(norm_p_integrated(irho,i_lau,:));
profile_cd_dens = squeeze(norm_cd_dens(rho, i_lau, :)); profile_cd_dens = squeeze(norm_cd_dens(irho,i_lau,:));
profile_cd_integrated = squeeze(norm_cd_integrated(rho, i_lau, :)); profile_cd_integrated = squeeze(norm_cd_integrated(irho,i_lau,:));
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_p_dens = interp1(ec_data_tgrid, profile_p_dens, ec_powers_tgrid);
interp_profile_cd_dens = interp1(ec_time, profile_cd_dens, ec_t_grid); interp_profile_p_integrated = interp1(ec_data_tgrid, profile_p_integrated, ec_powers_tgrid);
interp_profile_cd_integrated = interp1(ec_time, profile_cd_integrated, ec_t_grid); interp_profile_cd_dens = interp1(ec_data_tgrid, profile_cd_dens, ec_powers_tgrid);
interp_norm_p_dens(rho, i_lau, :) = interp_profile_p_dens; interp_profile_cd_integrated = interp1(ec_data_tgrid, profile_cd_integrated, ec_powers_tgrid);
interp_norm_p_integrated(rho, i_lau, :) = interp_profile_p_integrated;
interp_norm_cd_dens(rho, i_lau, :) = interp_profile_cd_dens; interp_norm_p_dens(irho,i_lau,:) = interp_profile_p_dens;
interp_norm_cd_integrated(rho, i_lau, :) = interp_profile_cd_integrated; interp_norm_p_integrated(irho,i_lau,:) = interp_profile_p_integrated;
interp_norm_cd_dens(irho,i_lau,:) = interp_profile_cd_dens;
interp_norm_cd_integrated(irho,i_lau,:) = interp_profile_cd_integrated;
end end
end end
% normalised & interpolated profiles * p_ec_injected on ec_t_grid % normalised & interpolated profiles * p_ec_injected on ec_powers_tgrid
interp_p_dens = zeros(rho_grid, n_active_launchers, ec_n_t); interp_p_dens = zeros(n_rho,n_active_launchers,nt_ec_powers);
interp_p_integrated = zeros(rho_grid, n_active_launchers, ec_n_t); interp_p_integrated = zeros(n_rho,n_active_launchers,nt_ec_powers);
interp_cd_dens = zeros(rho_grid, n_active_launchers, ec_n_t); interp_cd_dens = zeros(n_rho,n_active_launchers,nt_ec_powers);
interp_cd_integrated = zeros(rho_grid, n_active_launchers, ec_n_t); interp_cd_integrated = zeros(n_rho,n_active_launchers,nt_ec_powers);
for t = 1:numel(ec_t_grid) for it = 1:numel(ec_powers_tgrid)
unnormalised_p_dens = zeros(rho_grid, n_active_launchers); unnormalised_p_dens = zeros(n_rho,n_active_launchers);
unnormalised_p_integrated = zeros(rho_grid, n_active_launchers); unnormalised_p_integrated = zeros(n_rho,n_active_launchers);
unnormalised_cd_dens = zeros(rho_grid, n_active_launchers); unnormalised_cd_dens = zeros(n_rho,n_active_launchers);
unnormalised_cd_integrated = zeros(rho_grid, n_active_launchers); unnormalised_cd_integrated = zeros(n_rho,n_active_launchers);
for i_lau = 1:n_active_launchers for i_lau = 1:n_active_launchers
unnormalised_p_dens(:,i_lau) = interp_norm_p_dens(:,i_lau,t).* p_ec_injected(t, active_launchers(i_lau)); unnormalised_p_dens(:,i_lau) = interp_norm_p_dens(:,i_lau,it).* p_ec_injected(it, active_launchers(i_lau));
unnormalised_p_integrated(:,i_lau) = interp_norm_p_integrated(:,i_lau,t).* p_ec_injected(t, active_launchers(i_lau)); unnormalised_p_integrated(:,i_lau) = interp_norm_p_integrated(:,i_lau,it).* p_ec_injected(it, active_launchers(i_lau));
unnormalised_cd_dens(:,i_lau) = interp_norm_cd_dens(:,i_lau,t).* p_ec_injected(t, active_launchers(i_lau)); unnormalised_cd_dens(:,i_lau) = interp_norm_cd_dens(:,i_lau,it).* p_ec_injected(it, active_launchers(i_lau));
unnormalised_cd_integrated(:,i_lau) = interp_norm_cd_integrated(:,i_lau,t).* p_ec_injected(t, active_launchers(i_lau)); unnormalised_cd_integrated(:,i_lau) = interp_norm_cd_integrated(:,i_lau,it).* p_ec_injected(it, active_launchers(i_lau));
end end
interp_p_dens(:,:,t) = unnormalised_p_dens; interp_p_dens(:,:,it) = unnormalised_p_dens;
interp_p_integrated(:,:,t) = unnormalised_p_integrated; interp_p_integrated(:,:,it) = unnormalised_p_integrated;
interp_cd_dens(:,:,t) = unnormalised_cd_dens; interp_cd_dens(:,:,it) = unnormalised_cd_dens;
interp_cd_integrated(:,:,t) = unnormalised_cd_integrated; interp_cd_integrated(:,:,it) = unnormalised_cd_integrated;
end end
for ii = 1:ec_n_t % fill profiles_1d with interpolated profiles
for ii = 1:nt_ec_powers
for i_lau = active_launchers for i_lau = active_launchers
ids_core_sources.source{last_index+i_lau}.profiles_1d{ii}.time = ec_powers_tgrid(ii); % profiles time
launcher_index = find(active_launchers == i_lau); launcher_index = find(active_launchers == i_lau);
ids_core_sources.source{last_index+i_lau}.profiles_1d{ii}.grid.rho_tor_norm = ... ids_core_sources.source{last_index+i_lau}.profiles_1d{ii}.grid.rho_tor_norm = ...
ec_data.p_dens.rhotor_norm(1,:); ec_data.p_dens.rhotor_norm(1,:);
......
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