Preamble for export of figures

(*<<peeters` ;
peeters`setGitDir[ "phy487\figures" ] *)

Physical constants in desired units.

ClearAll[ physicalConstants ]
physicalConstants::usage = "Lookup of: ℏ, (Subscript[k, B]), ...  An array of two hashes, the first with values of the quantities, the second with the names of those quantities." ;
physicalConstants = {
{
"Hbar" -> WolframAlpha["hbar in electronVolt seconds",{{"Result",1},"ComputableData"}],
"HbarSI" -> WolframAlpha["hbar in Joule seconds",{{"Result",1},"ComputableData"}],
"BoltzmannKbEvPk" -> WolframAlpha["Boltzmann constant in electronVolts per kelvin",{{"Result",1},"ComputableData"}],
"BoltzmannKbSI" -> WolframAlpha["Boltzmann constant in Joules per kelvin",{{"Result",1},"ComputableData"}],
"MassOfElectronInKg" -> WolframAlpha["mass of electron in kilograms",{{"Result",1},"ComputableData"}],
"Ge: mnStar factor" -> 0.12
},
{ 
"Hbar" -> Quantity[ "hbar" ], 
"HbarSI" -> Quantity[ "hbar" ], 
"BoltzmannKbEvPk" -> "(Subscript[k, B])",
"BoltzmannKbSI" -> "(Subscript[k, B])",
"MassOfElectronInKg" -> "(Subscript[m, e]) (mass of electron)",
"Ge: mnStar factor" -> "Ge: (SuperStar[(Subscript[m, n])])/(Subscript[m, e])"
}
}  ;

physicalConstants[[1]] /.physicalConstants[[2]] /. Rule->List // TableForm

Clear[pv]
pv[v_] := v/. physicalConstants[[1]] ;

Range of ((Subscript[N, eff])^C)(T)

(* units are effectively m^(-3), but UnitSimplify fails miserably. *)
nEffC[t_] = Module[ {mnGe, h, kB},
mnGe = pv[ "Ge: mnStar factor" ] pv[ "MassOfElectronInKg" ] ;
h = 2 Pi pv[ "HbarSI" ] ;
kB =  pv[ "HbarSI" ] Quantity[1, "kelvin"];

 UnitSimplify[ 2(2 Pi mnGe kB t/h^2 )^(3/2) ]
]

nEffC[1]
nEffC[293]

Clear[p, nEffCdimensionless]
(* hack: cut and pasted the value from nEffC[1] *)
nEffCdimensionless[t_] = 4235.058618246827` t^(3/2) ;
p = Plot[ nEffCdimensionless[t], {t, 1, 293}, AxesLabel -> {"T, (K)", "((Subscript[N, eff])^C)(T), ((m^(-3)))"}]

(*peeters`exportForLatex[ "ps10p2Fig2", p ]*)

Now, plot the factor in the square root: (Subscript[N, D])/((Subscript[N, eff])^C)(e^((Subscript[E, d])/(Subscript[k, B])T)) to get an idea of it’s range and form

Clear[f,eD,kB, nD, eDoverkBnonDim]
kB=pv["BoltzmannKbEvPk"]
eD=Quantity[0.0127,"eV"]
eD/kB
nD = 10^22 ;
eDoverkBnonDim = 147.38307995822208 ;
f[t_]= 4(nD/nEffCdimensionless[t]) E^(eDoverkBnonDim/ t)
Clear[p]
p = Plot[ f[t], {t, 1, 293}, AxesLabel -> {T, None}]
f[1]
f[293]
f[100]
f[1000]

(*peeters`exportForLatex[ "ps10p2Fig3", p ]*)

Plot of just a linear approximation (ignoring temperature dependence of ((Subscript[N, eff])^C))

Clear[p]
p = Plot[
 { - eDoverkBnonDim iT}
, {iT, 1/293, 1}
, AxesLabel->{1/T, Log[n] - Log[ (Subscript[N, D])((Subscript[N, eff])^C)]/2} 
, PlotRange->Full
]

Plot of the exact relation, and it’s log against temperature (not inverse temperature)

n[t_] = 2 nD/(1 + Sqrt[1 + f[t]]) ;
Plot[ n[t], {t, 1, 293}, AxesLabel->{T, n}]
Plot[ Log[n[t]], {t, 1, 293}]

Plot against inverse temperature with linear asymptote (i.e. that ignores temperature dependence of ((Subscript[N, eff])^C))

p = Plot[ {Log[n[1/b]], 29.475460842985516`- 73 b}, {b, 1/293, 1},AxesLabel->{1/T, Log[n]}, Ticks -> {Automatic, None}]

Approximate numerical value of (Subscript[E, d])/2 (Subscript[k, B])

(*peeters`exportForLatex[ "ps10p2Fig1", p ]*)

eDoverkBnonDim/2

The intercept

11Log[10]+Log[4]/2+(3/2) Log [10] // N

Second inverse temperature plot requested in the problem

(*Plot[ 29 - 3 Log[b]/4 - 73 b, {b, 1/293, 1}]*)

p = Plot[ {Log[n[1/b]], 29.475460842985516`- 73 b}, {b, 1/1000, 1/100},AxesLabel->{1/T, Log[n]}, Ticks -> {Automatic, None}, PlotRange -> Full]

(*peeters`exportForLatex[ "ps10p2Fig4", p ]*)

(*p = Plot[ {Log[n[1/b]], 29.475460842985516`- 73 b}, {b, 1, 1/0.01},AxesLabel->{1/T, Log[n]}, Ticks -> {Automatic, None}, PlotRange -> Full]*)

Numerical evaluation of the densities at a couple temperatures

n[1]
n[293]
n[100]
n[1000]