Contents

Fuel mix analysis demo creating contour plots

Uses a fixed electron temperature for all computations.

- to make the colormaps uniform: caxis([0.2 50]) - to lighten the colors: brighten(0.5)

Reference: Carpenter 1999, Figure 4

%--------------------------------------------------------------------------
% See also: PowerDHe3, Synchrotron
%--------------------------------------------------------------------------

%--------------------------------------------------------------------------
%	Copyright (c) 2018 Princeton Satellite Systems, Inc. All rights reserved.
%--------------------------------------------------------------------------

ratios = logspace(-1.6,0.5);
temps = linspace(40,140);

d = PowerDHe3;

ne = 4e20;
zI = [1 2];
b = 5;

d.tE   = 30;   % electron temp
d.fD   = 1;    % as low as 0.25
d.fT   = 1;

pF = zeros(length(temps),length(ratios));
pN = [];
pB = [];
pS = [];

Model with equal temperatures, full T; electron temp is 0.9 Ti

d.fD   = 1;    % as low as 0.25
d.fT   = 1;
for k=1:length(ratios)
  % calculate ion densities from electron density assuming fuel ratio
  den = 1 + 2*ratios(k);
  density = 1/den*ne;
  d.nD = density;
  d.nHe3 = density*ratios(k);
  for j = 1:length(temps)
    d.tHe3 = temps(j);   % potentially uo to 140 keV
    d.tD   = temps(j);   % potentially 70 keV
    d.tE   = 0.9*temps(j);

    % these are powers in MW per cubic meter
    [pF(j,k), pN(j,k), pB(j,k), nNd, nNt] = PowerDHe3( d );
    pS(j,k) = Synchrotron( [d.nD d.nHe3], zI, b, d.tE );
  end
end

MakePlots( ratios, temps, pN, pB, pS, pF,...
  [2 3 4 5 6 7 8 9 10 20 30 40 50], 'D-D and D-T' )
drawnow;

Model with equal temperatures, all T removed

d.fD   = 1;    % as low as 0.25
d.fT   = 0;
d.tE   = 30;   % electron temp
pF = [];
pN = [];
pB = [];
pS = [];
for k=1:length(ratios)
  % calculate ion densities from electron density assuming fuel ratio
  den = 1 + 2*ratios(k);
  density = 1/den*ne;
  d.nD = density;
  d.nHe3 = density*ratios(k);
  for j = 1:length(temps)
    d.tHe3 = temps(j);   % potentially uo to 140 keV
    d.tD   = temps(j);   % potentially 70 keV

    % these are powers in MW per cubic meter
    [pF(j,k), pN(j,k), pB(j,k), nNd, nNt] = PowerDHe3( d );
    pS(j,k) = Synchrotron( [d.nD d.nHe3], zI, b, d.tE );
  end
end

MakePlots( ratios, temps, pN, pB, pS, pF,...
  [0.3 0.5 1 2 3 4 5 6 7 8 9 10 20], 'zero D-T' )
drawnow

Model with different temperatures

temps2 = linspace(70,140);
d.fD   = 1;    % as low as 0.25
d.fT   = 0;
d.tD   = 70;   % potentially 70 keV
d.tE   = 30;   % electron temp
pF = [];
pN = [];
pB = [];
pS = [];
for k=1:length(ratios)
  % calculate ion densities from electron density assuming fuel ratio
  den = 1 + 2*ratios(k);
  density = 1/den*ne;
  d.nD = density;
  d.nHe3 = density*ratios(k);
  for j = 1:length(temps2)
    d.tHe3 = temps2(j);   % potentially uo to 140 keV

    % these are powers in MW per cubic meter
    [pF(j,k), pN(j,k), pB(j,k), nNd, nNt] = PowerDHe3( d );
    pS(j,k) = Synchrotron( [d.nD d.nHe3], zI, b, d.tE );
  end
end

MakePlots( ratios, temps2, pN, pB, pS, pF,...
  [0.1 0.2 0.3 0.5 1 2 3 4 5 6 7 8 9 10 20], '70 keV D, zero D-T' )

Finished

Figui;


function MakePlots( ratioPlot, tempPlot, pN, pB, pS, pF, N, str )

NewFig('Neutron Power')
[c,h] = contourf(ratioPlot,tempPlot,pN./pF*100,N);
clabel(c,h);
set(gca,'xscale','log')
grid on;
title(['% Power in 3He-D Neutrons, ' str])
xlabel('Fuel Ratio (3He/D)')
ylabel('Kinetic Temperature (keV)')
set(gca,'xtick',[0.03 0.1 0.5 1 3])
set(gcf,'colormap',flipud(parula))
line([1 1],[100 140])
line([1 3],[100 100])

NewFig('Bremsstrahlung Power')
[c,h] = contourf(ratioPlot,tempPlot,pB./pF*100);
clabel(c,h);
set(gca,'xscale','log')
grid on;
title(['% Power in Bremsstrahlung, ' str])
xlabel('Fuel Ratio (3He/D)')
ylabel('Kinetic Temperature (keV)')
set(gca,'xtick',[0.03 0.1 0.5 1 3])
set(gcf,'colormap',flipud(parula))
line([1 1],[100 140])
line([1 3],[100 100])

NewFig('% Power in Synchrotron (10% volume)')
[c,h] = contourf(ratioPlot,tempPlot,0.1*pS./pF*100);
clabel(c,h);
set(gca,'xscale','log')
set(gca,'xtick',[0.03 0.1 0.5 1 3])
grid on;
xlabel('Fuel Ratio (3He/D)')
title(['Synchrontron Power, ' str])

NewFig('Total Fusion Power')
[c,h] = contourf(ratioPlot,tempPlot,pF);
clabel(c,h);
set(gca,'xscale','log')
set(gca,'xtick',[0.03 0.1 0.5 1 3])
grid on;
xlabel('Fuel Ratio (3He/D)')
title(['Fusion Power, ' str])
caxis([0 16]) % Note: will change if tE, etc are changed!!
cb = colorbar;
cb.Title.String = 'MW/m3';

end


%--------------------------------------