grid_F0F1F2.py 1.68 KB
Newer Older
1
2
3
import pyfstat
import numpy as np
import matplotlib.pyplot as plt
4
5
6
7
8
9
10

try:
    from gridcorner import gridcorner
except ImportError:
    raise ImportError(
        "Python module 'gridcorner' not found, please install from "
        "https://gitlab.aei.uni-hannover.de/GregAshton/gridcorner")
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

F0 = 30.0
F1 = 1e-10
F2 = 0
Alpha = 1.0
Delta = 1.5

# Properties of the GW data
sqrtSX = 1e-23
tstart = 1000000000
duration = 10*86400
tend = tstart+duration
tref = .5*(tstart+tend)

depth = 20
label = 'grid_F0F1F2'
outdir = 'data'

h0 = sqrtSX / depth

data = pyfstat.Writer(
    label=label, outdir=outdir, tref=tref,
    tstart=tstart, F0=F0, F1=F1, F2=F2, duration=duration, Alpha=Alpha,
    Delta=Delta, h0=h0, sqrtSX=sqrtSX)
data.make_data()

m = 0.01
dF0 = np.sqrt(12*m)/(np.pi*duration)
dF1 = np.sqrt(180*m)/(np.pi*duration**2)
dF2 = 1e-17
N = 100
DeltaF0 = N*dF0
DeltaF1 = N*dF1
DeltaF2 = N*dF2
F0s = [F0-DeltaF0/2., F0+DeltaF0/2., dF0]
F1s = [F1-DeltaF1/2., F1+DeltaF1/2., dF1]
F2s = [F2-DeltaF2/2., F2+DeltaF2/2., dF2]
Alphas = [Alpha]
Deltas = [Delta]
search = pyfstat.GridSearch(
    'grid_F0F1F2', 'data', data.sftfilepath, F0s, F1s,
    F2s, Alphas, Deltas, tref, tstart, tend)
search.run()

F0_vals = np.unique(search.data[:, 2]) - F0
F1_vals = np.unique(search.data[:, 3]) - F1
F2_vals = np.unique(search.data[:, 4]) - F2
twoF = search.data[:, -1].reshape((len(F0_vals), len(F1_vals), len(F2_vals)))
xyz = [F0_vals, F1_vals, F2_vals]
labels = ['$f - f_0$', '$\dot{f} - \dot{f}_0$', '$\ddot{f} - \ddot{f}_0$',
          '$\widetilde{2\mathcal{F}}$']
62
fig, axes = gridcorner(
63
    twoF, xyz, projection='log_mean', labels=labels, whspace=0.1, factor=1.8)
64
fig.savefig('{}/{}_projection_matrix.png'.format(outdir, label))