diff options
author | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2022-03-31 16:38:55 +0200 |
---|---|---|
committer | Jaron Kent-Dobias <jaron@kent-dobias.com> | 2022-03-31 16:38:55 +0200 |
commit | 8aeb86c75c525887119655f72a5f2ef5d68b0940 (patch) | |
tree | d9e3c3e26244e5a597e0a34a9ae3ad73bb2c1b57 /schofield.py | |
parent | 07531dcf8fce5ffc2401794e65c3813e86090228 (diff) | |
download | mma-8aeb86c75c525887119655f72a5f2ef5d68b0940.tar.gz mma-8aeb86c75c525887119655f72a5f2ef5d68b0940.tar.bz2 mma-8aeb86c75c525887119655f72a5f2ef5d68b0940.zip |
Old work
Diffstat (limited to 'schofield.py')
-rw-r--r-- | schofield.py | 23 |
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) |