|
|
|
|
@@ -7,7 +7,8 @@ ATerm::usage = "Calculates A term from notes";
|
|
|
|
|
BTerm::usage = "B term";
|
|
|
|
|
CTerm::usage = "C term";
|
|
|
|
|
DTerm::usage = "D term";
|
|
|
|
|
Fs::usage "Free energy for sc case";
|
|
|
|
|
Fs::usage = "Free energy for sc case";
|
|
|
|
|
Fn::usage = "Free energy for n case";
|
|
|
|
|
|
|
|
|
|
Begin["`Private`"];
|
|
|
|
|
|
|
|
|
|
@@ -17,28 +18,37 @@ Begin["`Private`"];
|
|
|
|
|
*)
|
|
|
|
|
fs[energy_, delta_, temp_, mustar_] := 1 / (Exp[(Sqrt[energy^2 + delta^2] - mustar) / temp] + 1);
|
|
|
|
|
|
|
|
|
|
ffree[energy_, temp_] := 1 / (Exp[energy/temp] + 1);
|
|
|
|
|
|
|
|
|
|
(* Entropy calculation *)
|
|
|
|
|
entropyPart[delta_?NumericQ, temp_?NumericQ, mustar_?NumericQ,
|
|
|
|
|
energy_?NumericQ] :=
|
|
|
|
|
With[{f =
|
|
|
|
|
fs[energy, delta, temp, mustar]}, (f *
|
|
|
|
|
Log[f]) + (1 - f) * (Log[1 - f])];
|
|
|
|
|
|
|
|
|
|
entropy[delta_?NumericQ, temp_?NumericQ, mustar_?NumericQ,
|
|
|
|
|
N0_?NumericQ] := - 2 * N0 *
|
|
|
|
|
NIntegrate[entropyPart[delta, temp, mustar, e], {e, 0, Infinity}];
|
|
|
|
|
|
|
|
|
|
entropyPartNormal[temp_?NumericQ, energy_?NumericQ] :=
|
|
|
|
|
With[{f = ffree[energy, temp]}, (f * Log[f]) + (1 - f) *(Log[1 - f])];
|
|
|
|
|
|
|
|
|
|
entropyNormal[temp_?NumericQ, N0_?NumericQ] := - 2 * N0 *
|
|
|
|
|
NIntegrate[entropyPartNormal[temp, e], {e, 0, Infinity}];
|
|
|
|
|
|
|
|
|
|
(* A from notes *)
|
|
|
|
|
ATermIntegrand[energy_?NumericQ, delta_?NumericQ, temp_?NumericQ,
|
|
|
|
|
mustar_?NumericQ] :=
|
|
|
|
|
Abs[energy] * ((
|
|
|
|
|
Abs[energy] * (
|
|
|
|
|
Abs@energy /
|
|
|
|
|
Sqrt[energy^2 + delta^2]) (2 * fs[energy, delta, temp, mustar] -
|
|
|
|
|
1) + 1);
|
|
|
|
|
1);
|
|
|
|
|
|
|
|
|
|
ATerm[delta_?NumericQ, temp_?NumericQ, mustar_?NumericQ,
|
|
|
|
|
debyeFreq_?NumericQ] :=
|
|
|
|
|
2 * NIntegrate[
|
|
|
|
|
ATermIntegrand[en, delta, temp, mustar], {en, 0, debyeFreq}];
|
|
|
|
|
NIntegrate[
|
|
|
|
|
ATermIntegrand[en, delta, temp, mustar], {en, -debyeFreq, debyeFreq}];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(* B term *)
|
|
|
|
|
@@ -67,6 +77,9 @@ Fs[delta_?NumericQ, temp_?NumericQ, mustar_?NumericQ,
|
|
|
|
|
CTerm[delta, temp, mustar, N0] +
|
|
|
|
|
DTerm[delta, temp, mustar, debyeFreq, N0];
|
|
|
|
|
|
|
|
|
|
Fn[temp_?NumericQ, debyeFreq_?NumericQ, N0_?NumericQ] :=
|
|
|
|
|
(2 * N0) *NIntegrate[en * ffree[en, temp], {en, -debyeFreq, debyeFreq}] - temp * entropyNormal[temp, 2 * N0];
|
|
|
|
|
|
|
|
|
|
End[]; (* `Private` *)
|
|
|
|
|
|
|
|
|
|
EndPackage[];
|