summaryrefslogtreecommitdiff
path: root/schofield.py
diff options
context:
space:
mode:
authorJaron Kent-Dobias <jaron@kent-dobias.com>2022-03-31 16:38:55 +0200
committerJaron Kent-Dobias <jaron@kent-dobias.com>2022-03-31 16:38:55 +0200
commit8aeb86c75c525887119655f72a5f2ef5d68b0940 (patch)
treed9e3c3e26244e5a597e0a34a9ae3ad73bb2c1b57 /schofield.py
parent07531dcf8fce5ffc2401794e65c3813e86090228 (diff)
downloadmma-8aeb86c75c525887119655f72a5f2ef5d68b0940.tar.gz
mma-8aeb86c75c525887119655f72a5f2ef5d68b0940.tar.bz2
mma-8aeb86c75c525887119655f72a5f2ef5d68b0940.zip
Old work
Diffstat (limited to 'schofield.py')
-rw-r--r--schofield.py23
1 files changed, 17 insertions, 6 deletions
diff --git a/schofield.py b/schofield.py
index 96fe68a..0894a42 100644
--- a/schofield.py
+++ b/schofield.py
@@ -1,5 +1,5 @@
-from sympy import *
-from mpmath import glaisher, pi
+from sympy import Rational, Symbol, Ei, diff
+from mpmath import glaisher, pi, exp, factorial
β = Rational(1/8)
δ = 15
@@ -9,19 +9,29 @@ from mpmath import glaisher, pi
s = 2**Rational(1, 12) * exp(-β) * glaisher**Rational(3, 2)
+
def f(B, θc, θ):
- return (θc * Ei(-1 / (B * θc)) * exp(1 / (B * θc)) + (θ - θc) * Ei(1/(B * (θ - θc))) * exp(-1/(B * (θ - θc)))) / pi
+ return (θc * Ei(-1 / (B * θc)) * exp(1 / (B * θc))
+ + (θ - θc) * Ei(1/(B * (θ - θc))) * exp(-1/(B * (θ - θc)))) / pi
+
def FH(θ0, θ):
return (θ**2 + θ0**2)**σ - (θ0**2)**σ
+
+def FA(As, θ):
+ return sum([A * θ**(2 * i + 2) for i, A in enumerate(As)])
+
+
def FR(AL, AH, As, B, θc, θ0, θ):
- return AL * f(B, θc, -θ) + AH * FH(θ0, θ) + sum([A * θ**(2 * i + 2) for i,A in enumerate(As)])
+ return AL * f(B, θc, -θ) + AH * FH(θ0, θ) + FA(As, θ)
+
def F(AL, AH, As, B, θc, θ0, θ):
return FR(AL, AH, As, B, θc, θ0, θ) + AL * f(B, θc, θ)
-def dfc(AL, B, m):
+
+def dfc(AL, B, θc, m):
if m == 0:
return AL * θc * Ei(-1 / (B * θc)) * exp(1 / (B * θc)) / pi
elif m == 1:
@@ -29,6 +39,7 @@ def dfc(AL, B, m):
else:
return AL * factorial(m) * factorial(m - 2) * B**(m-1) / pi
+
def dFc(AL, AH, As, B, θc, θ0, m):
θ = Symbol['θ']
- return dfc(AL, B, m) + diff(FR(AL, AH, As, B, θc, θ0, θ), θ).subs(θ, θc)
+ return dfc(AL, B, m) + diff(FR(AL, AH, As, B, θc, θ0, θ), θ).subs(θ, θc)