From c9967adc9f7545667f747fd066ea61cbc20d8d13 Mon Sep 17 00:00:00 2001 From: Jaron Kent-Dobias Date: Fri, 26 Mar 2021 17:17:45 +0100 Subject: Fixed efficiency problems, having convergence issues now. --- schofield.wl | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) (limited to 'schofield.wl') diff --git a/schofield.wl b/schofield.wl index 0d18848..646881d 100644 --- a/schofield.wl +++ b/schofield.wl @@ -35,28 +35,26 @@ t[θ_] := (θ)^2 - 1 h[n_][θ_] := (1 - (θ/θc)^2) Sum[gC[i] θ^(2i+1), {i, 0, n}] RFf[y_] := π^-1 y Exp[1/y] ExpIntegralEi[-1/y] -RF[n_][θ_] := A (RFf[B(θc-θ)] + RFf[B(θc+θ)]) + Sum[FC[i] θ^(2i) , {i, 0, n}] +RFnonsingular[n_][θ_] := A RFf[B(θc+θ)] + Sum[FC[i] θ^(2i) , {i, 0, n}] +RF[n_][θ_] := A RFf[B(θc-θ)] + RFnonsingular[n][θ] + +RFfCoeff[m_] := 0 /; m < 2 +RFfCoeff[m_] := Gamma[m - 1] / π /; m > 1 ruleB[g_] := π / (2 1.3578383417066) (- g'[θc] / t[θc]^Δ[2]) -eqLow[F_, h_][m_] := SeriesCoefficient[ - F[θ] - t[θ]^2 (Gl[h[θ] t[θ]^-Δ[2]] + Log[t[θ]^2]/(8 π)), - {θ, θc, m}, - Assumptions -> Join[$Assumptions, {θ < θc, θ > 1}] -] +eqLow[n_, h_][m_] := -A B^m RFfCoeff[m] + D[ + RFnonsingular[n][θ] - t[θ]^2 (Gl[h[θ] t[θ]^-Δ[2]] + Log[t[θ]^2]/(8 π)), + {θ, m} ] / m! /. θ -> θc -eqHigh[F_, h_][m_] := SeriesCoefficient[ - F[θ] - (-t[θ])^2 (Gh[h[θ] (-t[θ])^-Δ[2]] + Log[(-t[θ])^2]/(8 π)), - {θ, 0, m}, - Assumptions -> Join[$Assumptions, {θ > 0, θ < 1}] -] +eqHigh[n_, h_][m_] := D[ + RF[n][θ] - (-t[θ])^2 (Gh[h[θ] (-t[θ])^-Δ[2]] + Log[(-t[θ])^2]/(8 π)), + {θ, m} ] /. θ -> 0 -eqMid[F_, h_][m_] := SeriesCoefficient[ - F[θ] - t[θ]^2 Log[h[θ]^2]/(8 Δ[2]π) - h[θ]^((2-α[2])/Δ[2]) Φ[η] +eqMid[n_, h_][m_] := D[ + RF[n][θ] - t[θ]^2 Log[h[θ]^2]/(8 Δ[2]π) - h[θ]^((2-α[2])/Δ[2]) Φ[η] /. η -> t[θ] / h[θ]^(1 / Δ[2]), - {θ, 1, m}, - Assumptions -> Join[$Assumptions, {θ > 0, θ < θc}] -] + {θ, m} ] /. θ -> 1 Φs = { -1.197733383797993, @@ -103,7 +101,7 @@ GhRules = MapIndexed[dRule[Gh], Ghs]; rules[g_] := Join[{B -> ruleB[g]}, ΦRules, GlRules, GhRules] -eq[F_, g_][m_] := Select[Flatten[{eqLow[F, g][#], eqMid[F, g][#], eqHigh[F, g][#]} & /@ Range[0, m]] /. rules[g], !(# === 0) &] +eq[F_, g_][m_] := Flatten[Join[{eqLow[F, g][#], eqMid[F, g][#]} & /@ Range[0, m], eqHigh[F, g] /@ Range[0, m, 2]]] /. rules[g] EndPackage[] -- cgit v1.2.3-54-g00ecf