% Display the geometry of the gt170 gyrotron gun for the first prototype. % The magnetic field is the one of the asg magnet % This also creates the h5 files of the geometry and of the magnetic field % to be used in FENNECS %% Define and calculate the magnetic field % z=linspace(-0.05,0.2,100); % r=linspace(0.02,0.09,100); % [Z,R] = meshgrid(z,r); % % % I = [ 9.7 7.7 96.2499 91.0124 87.4723]; % % I = [0 0 6.79541 1.967 88.2799]; % % I = [0 0 5 1.967 88.2799]; % % Current in coils % I = 0.6*[61.56 66.45 113.43 108.09 ]; % res=zeros([size(Z),3]); % % % for i=1:size(R,1) % res(i,:,:) = B_Ellip_Cryogenic_170({'aphi','bz','br'},'cryogenic',I,R(i,:),Z(i,:)); % end % Aphi=res(:,:,1); % Bz=res(:,:,2); % Br=res(:,:,3); %% Define the individual boundaries %read from input file geom=importgt115('gt115.data'); geomcells={}; j=1; i=1; n=1; points=zeros(2,1); % clean and separate the curves while i<=size(geom.Z,1) if isnan(geom.Z(i)) j=j+1; while isnan(geom.Z(i)) i=i+1; end n=1; end points(:,geom.cp(i))=[geom.Z(i) geom.R(i)]; geomcells{j}.Z(n)=geom.Z(i); geomcells{j}.R(n)=geom.R(i); i=i+1; n=n+1; end % create the geometry structure geomcells{1}.name='Cathode'; geomcells{1}.Dval=-30000; geomcells{2}.name='Body'; geomcells{2}.Dval=0; geomcells{3}.name='Coaxial insert'; geomcells{3}.Dval=0; % geomcells{4}.name='insulator left'; % geomcells{4}.Dval=0; % geomcells{5}.name='insulator right'; % geomcells{5}.Dval=0; for k=1:length(geomcells) geomcells{k}.order=2; geomcells{k}.dim=2; geomcells{k}.epsce=1e-9; geomcells{k}.epsge=1e-9; geomcells{k}.type=0; geomcells{k}.periodic=0; end % geomcells{end-1}.type=2; % geomcells{end}.type=2; %% Plots f=figure; for k=1:length(geomcells) plothandle=plot(geomcells{k}.Z, geomcells{k}.R,'k-','linewidth',1.5); hold on geomcells{k}.points=[geomcells{k}.Z; geomcells{k}.R]; order=geomcells{k}.order; knots=linspace(0,1,length(geomcells{k}.Z)-(order-2)); knots=augknt(knots, order); sizec=size(geomcells{k}.Z); order=length(knots)-sizec(end); coeffs=[geomcells{k}.Z; geomcells{k}.R]; pp=spmak(knots,coeffs); s=linspace(0,1,10000); fittedpos=fnval(pp,s); %plot(fittedpos(1,:),fittedpos(2,:),'x-') end hold on %end %axis equal %Plot the magnetic field lines %[~,cont1]=contour(Z,R,R.*Aphi,15,'r:','linewidth',3); legend([plothandle],{'Gun geometry','Wall approximation'},'location','southwest') f.PaperUnits='centimeters'; f.PaperSize=[12,8]; xlabel('z [m]') ylabel('r [m]') print(f,'phiBprofile_protoasg','-dpdf','-fillpage') savefig(f,'phiBprofile_protoasg') hold off %% Save magnetic field and geometry to disk save=true; overwrite=true; if save % idr=1:1:length(magnet.r); % idz=1:1:length(magnet.z); % Aphi=zeros(length(idr),length(idz)); % Bz=zeros(length(idr),length(idz)); % Br=zeros(length(idr),length(idz)); % % for i=1:size(magnet.subcoils,1) % Aphi=Aphi+Icoil(i)*magnet.subcoils{i,1}(idr,idz); % Bz=Bz+Icoil(i)*magnet.subcoils{i,2}(idr,idz); % Br=Br+Icoil(i)*magnet.subcoils{i,3}(idr,idz); % end % savemagtoh5([name,'.h5'],magnet.r,magnet.z,Aphi,Br,Bz,overwrite); savegeomtoh5('proto_geom.h5',geomcells,1e-2,overwrite); end