diff options
Diffstat (limited to 'schofield.wl')
-rw-r--r-- | schofield.wl | 81 |
1 files changed, 69 insertions, 12 deletions
diff --git a/schofield.wl b/schofield.wl index fdb76e3..6adbe10 100644 --- a/schofield.wl +++ b/schofield.wl @@ -1,12 +1,7 @@ BeginPackage["Schofield`"] -β::usage = "Gives the exponent for the magnetization." -δ::usage = "Exponent." -α::usage = "Exponent." -Δ::usage = "Exponent." - -$Assumptions = {θc > 0, θi > 0, θc > θi, gC[_] ∈ Reals, B > 0, γ > 0} +$Assumptions = {θc > 0, θc > 1, gC[_] ∈ Reals, B > 0, γ > 0} β[D_:2] := Piecewise[ { @@ -37,18 +32,80 @@ $Assumptions = {θc > 0, θi > 0, θc > θi, gC[_] ∈ Reals, B > 0, γ > 0} Δ[D_:2] := β[D] δ[D] -f[θi_:1][n_][θ_] := (θ / θi)^2 - 1 +f[θ_] := θ^2 - 1 g[gC_:gC, θc_:θc][n_][θ_] := (1 - (θ/θc)^2) Sum[gC[i] θ^(2i+1), {i, 0, n}] -I\[ScriptCapitalM]f[γ_][y_] := (1 + (1 + γ x) / x) Exp[-1/x] -R\[ScriptCapitalM]f[γ_][y_] := (1 - y - γ y) Exp[1/y] ExpIntegralEi[-1/y] / (π y) +I\[ScriptCapitalM]f[y_] := (1 + 1 / x) Exp[-1/x] +R\[ScriptCapitalM]f[y_] := (1 - y) Exp[1/y] ExpIntegralEi[-1/y] / (π y) + +R\[ScriptCapitalM][2][B_, θc_, M0_][θ_] := - M0 (R\[ScriptCapitalM]f[B(θc - θ)] - R\[ScriptCapitalM]f[B(θc + θ)]) -R\[ScriptCapitalM][2][γ_, B_, θc_, M0_][θ_] := - M0 (R\[ScriptCapitalM]f[γ][B(θc - θ)] - R\[ScriptCapitalM]f[γ][B(θc + θ)]) +ruleB[2][f_, g_] := π / (2 1.3578383417066) (Δ g[θc] f[θc]^(-Δ[2]-1) f'[θc] - g'[θc] / f[θc]^Δ[2]) eqLow[D_:2][f_, g_][m_] := SeriesCoefficient[ - R\[ScriptCapitalM][D][γ, B, θc, M0][θ] + f[θ]^β[D] Gl'[g[θ] f[θ]^(-Δ[D])], + R\[ScriptCapitalM][D][B, θc, M0][θ] + f[θ]^β[D] Gl'[g[θ] / f[θ]^Δ[D]], {θ, θc, m}, - Assumptions -> Join[$Assumptions, {θ < θc, θ > θi}] + Assumptions -> Join[$Assumptions, {θ < θc, θ > 1}] +] + +eqHigh[D_:2][f_, g_][m_] := SeriesCoefficient[ + R\[ScriptCapitalM][D][B, θc, M0][θ] + (-f[θ])^β[D] Gh'[g[θ] / (-f[θ])^Δ[D]], + {θ, 0, m}, + Assumptions -> Join[$Assumptions, {θ > 0, θ < 1}] ] + +eqMid[D_:2][f_, g_][m_] := SeriesCoefficient[ + R\[ScriptCapitalM][D][B, θc, M0][θ] + g[θ]^(1/δ[D]) ((2 - α[D]) Φ'[η] - η Φ'[η]) / Δ[D] /. η -> f[θ] / g[θ]^(1 / Δ[D]), + {θ, 1, m}, + Assumptions -> Join[$Assumptions, {θ > 0, θ < θc}] +] + +eq[D_:2][f_, g_][m_] := Flatten[{eqLow[D][f, g][#], eqMid[D][f, g][#], eqHigh[D][f, g][#]} & /@ Range[0, m]] + +Φs = { + -1.197733383797993, + -0.318810124891, + 0.110886196683, + 0.01642689465, + -2.639978 10^-4, + -5.140526 10^-4, + 2.08856 10^-4, + -4.4819 10^-5 +} + +Gls = { + 0, + -1.3578383417066, + -0.048953289720, + 0.038863932, + -0.068362119, + 0.18388370, + -0.6591714, + 2.937665, + -15.61 +} + +Ghs = { + 0, + 0, + -1.8452280782328, + 0, + 8.333711750, + 0, + -95.16896, + 0, + 1457.62, + 0, + -25891 +} + +dRule[sym_][f_, i_] := Derivative[i[[1]] - 1][sym][0] -> f (i[[1]] - 1)! + +ΦRules = MapIndexed[dRule[Φ], Φs]; +GlRules = MapIndexed[dRule[Gl], Gls]; +GhRules = MapIndexed[dRule[Gh], Ghs]; + +rules[f_, g_] := Join[{B -> ruleB[2][f, g]}, ΦRules, GlRules, GhRules] + EndPackage[] |