Ejemplo n.º 1
0
def elliptic():
    alpha = random.uniform(0, interval)
    theta = random.uniform(0, interval)
    u, v, g = diskload.elliptic(alpha,
                                diskload.Compensation.UNCOMPENSATED,
                                theta,
                                W,
                                40000,
                                love,
                                computeU=computeU,
                                computeV=computeV,
                                computeG=computeG)
Ejemplo n.º 2
0
trials = 100

love = diskload.love_numbers.read()
love = diskload.love_numbers.extrapolate(love, 12000000)

csv = open('l2-norm.csv', 'w')
csv.write("cutoff U V G\n")

for cutoff in range(20000, 4000000, 100000):
    uTotal = 0.0
    vTotal = 0.0
    gTotal = 0.0

    for _ in range(trials):
        alpha = random.uniform(0.05, 0.5)
        theta = random.uniform(0.05, 0.5)
        uC, vC, gC = diskload.truncated(alpha,
                                        diskload.Compensation.UNCOMPENSATED,
                                        theta, W, cutoff, love)
        u, v, g = diskload.elliptic(alpha, diskload.Compensation.UNCOMPENSATED,
                                    theta, W, 40000, love)
        uTotal += (uC - u) * (uC - u)
        vTotal += (vC - v) * (vC - v)
        gTotal += (gC - g) * (gC - g)

    line = "%d %e %e %e\n" % (cutoff, sqrt(
        uTotal / trials), sqrt(vTotal / trials), sqrt(gTotal / trials))
    csv.write(line)
    print(line)
Ejemplo n.º 3
0
N = 1000

alpha = 0.001
min_theta = alpha * 10.0
max_theta = alpha * 1000.0

base = math.exp(math.log(max_theta / min_theta) / (N - 1))

f = open("fake-point-load.csv", "w")
f.write("alpha theta alpha/theta U V G U40K V40K G40K Upoint Vpoint Gpoint\n")

for i in range(N):
    theta = (base**i) * min_theta

    w = 1.0

    f.write("%e %e %e " % (alpha, theta, theta / alpha))
    f.write("%e %e %e " %
            diskload.elliptic(alpha, uncompensated, theta, w, 40000, love))
    f.write("%e %e %e " %
            diskload.truncated(alpha, uncompensated, theta, w, 40000, love))

    radius = 2.0 * 1000.0 * diskload.earth.default.radius * sin(
        alpha * diskload.constants.DEGREES / 2.0)
    area = (pi * radius * radius)
    w = area * 4.0 * diskload.earth.default.gravity / 1e16

    f.write("%e %e %e " % diskload.point(theta, w, 40000, love))
    f.write("\n")