-
Notifications
You must be signed in to change notification settings - Fork 0
/
Example.py
201 lines (155 loc) · 42 KB
/
Example.py
1
2
3
4
5
6
7
8
9
10
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
from scipy import interpolate
from scipy.special import erf
from scipy.fft import fft, ifft
from scipy import special
import time
def FourierSci(a):
# FFT transform
return fft(np.concatenate((a,np.zeros(a.size-1))))
def invFourierSci(a):
# inverse FFT transform
return np.real(ifft(a))[0:int((a.size+1)/2)]
def ierf(X):
return X*special.erf(X)-(1/np.sqrt(np.pi))*(1-np.exp(-X**2))
def g_FLSjc_h(zi,zj,yi,yj,H1,H2,dx,lm,Cm,t):
# horizontal FLS Lamarche 2019
'''
r = radius pipe/borehole
ri = imagenary radius
H1 = length of pipe segment active
H2 = length of pipe segment of interest
dx = distance between active segment and segment of interest
if only one segment:
H1 = H2
dx = 0
'''
r = np.sqrt((yi-yj)**2 + (zi-zj)**2)
ri = np.sqrt((yi-yj)**2 + (zi+zj)**2)
'''
above pipe:
zj = zi-r
r = zi-(zi-r) = r
ri = zi+(zi-r) = 2zi-r
below pipe:
zj = zi+r
r = zi-(zi+r) = -r
ri = zi+(zi+r) = 2zi + r
'''
Dt = lm/Cm # thermal diffusivity [m2/s]
g1 = (1.0/2.0/H1)*(integrate.quad(lambda s,r,ri,H1,H2,dx,Dt,t:(np.exp(-r**2 * s**2) - np.exp(-ri**2 * s**2))/s**2 * (ierf(dx*s + H2*s) - ierf(dx*s) + ierf(dx*s-H1*s) - ierf(dx*s + H2*s - H1*s)),1/np.sqrt(4*Dt*t),np.inf,args = (r,ri,H1,H2,dx,Dt,t))[0])
g2 = (1.0/2.0/H1)*(integrate.quad(lambda s,r,ri,H1,H2,dx,Dt,t:(np.exp(-r**2 * s**2) - np.exp(-ri**2 * s**2))/s**2 * (ierf(dx*s + H2*s) - ierf(dx*s) + ierf(dx*s-H1*s) - ierf(dx*s + H2*s - H1*s)),1/np.sqrt(4*Dt*t),np.inf,args = (r,ri,H1,H2,dx,Dt,t))[0])
return (g1+g2)/2
# Time grid
dt = 3600. # [s]
nSteps = 8760
tlin = (np.arange(nSteps)+1)*dt
tlin_o = np.copy(tlin)
# Thermal properties of the ground, daily changing values
Time = np.arange(365)*24*3600
lm = 0.6*np.sin(2e-7*Time+0.675)+1.6 # thermal conductivity
cm = 350000*np.sin(2e-7*Time+0.675)+1850000 # heat capacity
# hourly load
load = np.array([10.2,10.1,10.1,10.1,10.5,10.1,10.4,10.1,10,10.2,9.9,10,10.1,9.7,10.3,10.2,9.9,9.8,10,10.2,10.2,10.2,10.3,10,10.4,9.5,9.9,10.1,10.5,10.1,10.4,9.9,10.2,10.1,9.7,9.8,9.1,9.9,9.2,9.4,9.5,9.6,9.8,10.2,9.9,9.9,10.3,9.8,10.2,9.5,10.1,10,10.2,9.5,10.3,10.1,9.6,9.6,9.6,9.4,8.9,8.9,8.9,9.9,9.3,8.9,9.4,9.6,10,10,10.3,10.4,10.1,10.1,9.7,10.7,10,10.3,10.3,10,10.2,10,10.3,10.2,10.1,10.3,9.8,10.4,10.3,10,10.3,9.8,10.4,10.1,10.3,10.2,10,9.8,9.8,10,10.3,9.9,10.4,9.8,10.3,9.9,10.1,10,9.4,9.9,9.8,10,9.8,9.2,10.1,9.7,10.3,9.8,10.4,9.9,10.6,9.5,10,10.1,10.4,9.8,10.3,9.7,10.2,9.9,9.5,10,9.7,9.9,0,9.5,9.2,9.7,9.9,9.7,10.1,9.9,9.8,9.9,10.1,9.6,10.1,9.9,10,9.9,10.3,9.7,10.1,9.9,9.6,9.9,10,9.6,9,9.2,8.9,9,9.1,9.1,8.9,9.5,9.8,9.7,10.2,9.4,9.9,9.7,9.7,9.5,9.3,9.2,9.2,8.9,8.6,8.6,9.4,8,8.7,8.7,8.6,8.7,9.1,9.3,10.1,10.6,10.9,10.5,10.6,10.3,10.3,10.4,10.5,10.4,10.5,10.4,10.2,10.7,9,9.3,8.7,8.1,7.3,7.2,7.5,7.9,8.2,8.9,9.6,9,10,10.6,9.6,10.7,9.8,9.8,9.9,10.5,9,9.7,10.9,9.4,9.7,9.6,8.2,9.3,7.7,8.7,9.8,8.2,9,8.6,8.2,9.3,9.5,8.3,10.2,8.1,8.9,9.4,8.6,9.9,9.3,8.9,9.6,9.2,9.8,9.4,8.7,9.1,8.7,8.3,8.5,8.7,9,8.2,9.5,9.2,9.6,8.9,9.2,9,8.7,9.2,9.3,9.1,9.2,9.1,8.7,8.9,7.9,9.1,8.5,9.4,9.4,9.4,10,10.3,9.8,10.3,9.7,10,10.5,9.9,10.5,9.8,9.7,9.9,0,0,0,0,0,0,10.3,10.1,9.8,9.7,9.3,8.8,9.6,9.2,9.4,9.8,10,9.7,10.4,10.1,10.4,9.6,10.1,10.1,10.5,9.9,10.7,9.9,10.4,9.6,9.8,9.9,9.7,9.5,9.8,8.9,9.6,10.3,9.9,8.9,10.6,10.6,10.4,10.6,10.4,10.4,10.4,10.1,10.4,10.6,9.9,10.3,10.5,10.1,10.2,10.7,9.1,9,9.1,7.6,7.5,9.3,10.1,9.7,10.6,10.7,10.6,10.6,10.5,10.4,10.4,9.9,10.2,10.5,10.3,9.9,10.4,10.2,10.8,8.5,5.4,1.8,0.8,0.2,-0.3,0.2,2.3,4.1,6.1,9.2,10.6,10.9,11.1,10.8,10.9,10.9,10.7,10.7,10.8,10.7,10.8,10.6,10.9,5.9,3.7,1.9,-1.5,-1.9,-0.3,-2.5,3.9,4.3,4.3,4,5.1,4.8,4.8,7.4,8.3,9.1,9,7.2,5.4,5.7,6,5.8,4.4,3.2,2.4,1.3,1.5,3.7,1.8,3.7,4.2,4.1,0,0,6.1,3.5,6.9,7.2,7.2,7.1,10.8,10,11.2,11.5,11.4,10.3,8.8,1.5,2.2,-1.4,1.5,-1,4.3,0,0,4.3,4.5,4.1,4.8,5,4.4,5.5,5.6,5.1,5.7,5,5.3,5.3,5,5.4,4.8,3.9,2.2,1.6,0.7,2,3.8,1.6,2.4,4.7,2.7,4.5,5.2,5,5,5.1,5.4,5,5.5,6.2,8.7,10.7,10.6,8.5,9.8,8,8.1,7.1,6.4,6.2,5.8,6.4,6.9,7.7,8.2,8.9,9.7,9.5,10.4,10.7,10.4,10.3,10.9,9.7,11.2,10.1,9.5,10.7,9.7,8,7.5,7.3,6.4,2.3,1.9,2.9,2.4,3.2,4.7,5.4,8.4,9.1,8.9,9,8.4,8.8,8.6,9.9,8.6,8.8,9.2,8.7,7.8,7,1.5,1.8,1.3,2.3,3.9,4.3,2.7,3.5,4.4,4.6,3.9,4.6,4.3,5.1,4.4,5.8,5.3,5.6,4.3,5,0,4.8,5.5,5.6,5.7,5.2,5.5,4.7,3.3,3.2,3.6,3.7,5.7,5.8,10.7,10.3,8.6,10.4,10.2,11.8,11.8,11.6,11.2,11.2,11.5,11.1,10.9,11.2,10.5,7.4,-1.7,-0.2,0.6,2.9,3.7,5.6,6,8.3,10.7,10.1,10.4,11.6,11.2,11.1,11.3,10.7,10.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.5,-0.4,0.9,1.1,2,0,2.6,4.8,4.4,0,5.4,5.9,7.2,8.3,8.8,8.2,6.7,6.8,2.6,4.4,4.6,0.5,0.2,4.2,2.8,0.2,0.5,1,1.5,3.5,3.6,3.7,0,3.9,4.1,4.4,5,4.8,4.8,4.7,4.4,3.8,3.8,3.6,3.1,5,3.8,4.1,4.5,4.7,5.3,5,5.1,5.6,5.6,5,4.9,4.9,5.5,0,4.8,4.9,6.4,7.5,7.7,7.9,9.4,9.1,9.5,8.5,8.9,9.8,9.6,9.4,9.1,9.5,9.7,9.4,9.2,9.4,9.5,9.4,9.5,9.4,9.3,9,8.9,8.9,8.7,8.9,8,7.2,6.4,6.5,6.4,6.6,6.7,7,7,7.1,7.2,7.4,7.4,7.7,7.6,7.6,7.7,7.7,7.7,7.8,7.1,7.4,7.2,7.2,7.4,7.3,7.4,8.7,5.2,5,4,3.6,3.5,5,4.9,5,5,5,3.9,3.6,4.6,5,5,5.3,5.1,0,5.4,6.6,7.2,7.2,8.7,10.5,9.5,9.1,8.2,9,8.7,9.5,9.5,9.2,10.1,9.4,10.4,9,10.6,10.2,10.4,10.2,10.5,10.2,10.4,10.4,10.3,10.5,10,8.7,7.5,8,7,7.9,8.6,8.2,9.5,8.8,8.7,8.4,8.9,8.4,7.5,8.7,8.5,8,7.6,7.5,7.5,7.6,3.8,2.2,4,0.1,5.6,7.6,4.2,4.7,5.1,3.5,4.1,4.5,5.6,5.3,5.2,5,3.1,4.9,5.1,4.5,5.9,0,5.1,7.3,8.5,8.2,9.3,0,0,0,0,0,0,8,9.1,9.5,9.7,9,9.3,9.4,8.9,10.2,9.7,8.9,10.5,10.4,9,8.9,10.1,8.1,8.6,7.4,6.6,7.6,6.8,7.3,7.6,7.8,7.9,8.4,8.1,8.2,8,9.2,9.1,9,8.6,8.6,9,7.5,8,8.4,8.3,7.7,7.3,9.8,7,6.4,5,3.3,4.5,6.3,6.1,7.5,8.4,8.3,9.1,8.2,9,8.7,10.2,9.3,10.1,9.1,6.3,4.6,6.6,5.6,4.3,5.2,5.3,6.3,8.4,10.8,9.8,10,10.3,10.3,10.1,10.1,10.5,10.2,10,10.2,10.4,10.2,10,10,10.3,9.8,9.8,10.1,10.1,9.8,9.5,8.8,10,9.6,9.8,9.7,10.1,9.9,9.7,9.6,9.6,10.3,9.8,9.6,9.5,9.6,9.7,10.2,9.6,9.9,9.3,8.4,8.8,8.5,7.2,8.2,6.9,8.3,7.3,8.5,8.7,8.3,10.6,10.1,10.2,10.2,9.9,9.8,9.9,9.9,10,10,10,9.7,10,10.2,9.7,9.9,10.2,9,8.8,10.1,9.8,9.7,10,9.7,10,10,10,10,10.3,9.9,9.8,9.9,10.4,10.1,9.7,10.4,9.8,10.1,9.6,9.3,8.5,8.2,5.4,5.3,7.2,8.3,7.7,8.9,9,9.4,9.7,9.3,9.8,9,10.1,9,10,9.8,8.8,8.3,7.2,8.4,5.7,5.1,4.6,4.4,4.8,6.2,4.7,4.5,5,6.1,7.1,7,9.3,9,9.8,8.9,9.3,8.9,8.7,8.5,9,8.1,8.9,5.9,8,6.9,7.7,5.7,8.2,5.4,6.2,8.5,7.4,6.4,8.2,7.8,7,5.9,8.2,7.9,6.9,10,8.5,9.1,10.3,10.6,10.1,9.7,9.1,8.3,7.9,9.5,9.9,10,9.8,10.1,10.3,10.2,10,10.1,10,9.9,10,10.1,9.8,10.2,10,9.8,9.8,10,9.8,10.1,8.4,9.5,9.1,8.5,7.6,7.2,8.5,9.1,9.3,9.4,9.5,9.2,9.1,8.8,9.5,9.2,9.5,9.5,9.2,9.3,9,8.6,8.8,8.5,7,7,6.8,6.1,7.1,7.4,7.2,8.9,8.6,9.3,10.2,9.9,10.3,10.1,10,10.1,10,9.9,10,10.3,8.5,8.7,8.4,6.6,4,2.4,1.2,3.6,0.5,2.9,3.9,4,4.3,5.6,8.1,9.4,9.3,9.6,9.1,10.6,9.1,10.9,9.9,10.4,9.3,4.1,4.1,0.1,0.1,1.6,3.4,1.7,0.6,1,1.4,4.7,3,4.9,2.6,0,4.7,4.9,5.2,5.9,8.1,10,9.5,10.3,8,2.6,-0.1,2.2,1.4,0.5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18.6,14.5,6.3,6.9,6.9,8.5,6.1,0,6.9,7.3,8.2,5,6.3,7.7,10,6.1,6.5,7.5,6.5,7,10.2,6.1,6.3,7.5,5.9,6.4,7.5,6,0,0,0,7.3,5.9,6.1,6.5,0,5,0,0,0,0,5,0,0,0,0,5,5,5.3,10.5,6.4,6.5,5.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.3,2.5,3.5,5,5,5,5,0,5,0,6.9,15.3,14.8,14.6,8.6,4.6,3.7,1.3,-0.2,0.7,2.8,1,3.1,3.1,0.8,1.5,4.3,3.1,0,4.2,5,0,5,0,0,0,7.2,7.6,6,3.4,2.6,1.9,1.1,1.1,0.8,0.8,0.9,0.8,0.8,1.5,3.6,3.4,4.2,4.2,5,5,0,5,5,0,0,0,5,0,5.1,5.6,4.1,4.9,3.4,3.1,4.1,3.1,5,5,7.8,7.3,6.9,7.3,7.9,12.6,8.1,13.8,8.9,11.7,16.1,11.4,6,8.5,6.7,3.4,2.8,2.4,1.2,0.7,4.7,0.8,0.9,0,4.5,1.9,4.7,3.7,0,5,4.6,3.9,4.1,0,3.8,4.3,2.6,2.1,2.2,4.2,2.1,1.8,2.3,3.1,3,0.8,1.9,3.4,0,3.3,4.1,4.8,5.5,5.9,6.5,6.4,6.2,6.5,7.6,7.4,7.1,6.5,5.5,5.4,5.3,4.4,4.4,4.7,4.5,5,5.2,5.5,7.3,5.8,5.7,5,0,5,0,6.5,12.3,6.7,12.8,6.1,7.4,7.6,4.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5.9,8.4,6.7,0,5,6.5,7.3,5.2,5.5,6.5,7.5,8,7.8,8.9,10.2,8.2,10.7,10,13.8,8.2,14.9,11.8,9,15.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13.4,16.5,7.2,6.7,4.9,4,4.2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.3,0.6,3.4,0.5,0.4,-0.7,0,1.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1.1,-3.8,-5.1,-2.5,-0.2,0.1,0.2,0.5,2.7,2.1,0.8,3.6,0,2.1,1.1,3.5,1.5,0.1,-0.3,-0.9,-0.4,-0.9,-2.7,-5.8,-5.7,-4.5,-4.7,-4.6,-1.2,0.1,0.2,0.6,0.8,0,0,0,3,2.1,3.5,2.5,3,-0.1,-0.3,-1.1,-1,-1.4,-3.9,-4.8,-5,-5.5,-5.1,-3.7,-2.2,0,0.7,0.4,0.7,5,0.3,0,0.7,0.7,4.8,0.2,0,-0.9,-0.4,-1.1,-1,-1.1,-2.4,-5.5,-4.9,-5.8,-5.1,-4.9,-1.6,-0.2,0.2,0.4,0.6,0,0,0,2.6,1.4,3.4,1.7,3,-0.8,-0.8,-1.6,-1.4,-3.3,-4.8,-6,-6.6,-4.9,-5.6,-5.2,-3.5,-0.8,-0.4,-0.1,0.2,2.2,0,0,0,0.6,0.3,0.3,3.3,0.9,-0.2,-0.4,-0.5,-1.1,-0.2,-0.9,-1.5,0,-1.2,-1.1,-0.7,-0.2,-0.2,-0.2,0,-0.1,0,0.1,0,0,0,-0.1,4.1,-0.8,-0.8,-0.8,-1.1,-3.7,-7,-8.4,-5.3,-5.3,-1.6,4.4,-0.3,0,0.1,0.1,0.2,3.6,1,0.3,0.4,1.9,2.9,0.3,0,0,0,-0.4,-0.7,-1.2,-0.7,-0.9,-0.8,-2.1,-0.9,3.9,0.2,0.3,0.1,0.6,0.2,3.7,1,3.7,1.2,3.3,2.1,1.2,0.3,1,2.5,0.2,-0.1,-0.4,-0.3,-0.5,-0.6,-1,-1.2,-1.2,-0.4,3.5,0.6,0.5,3.1,1.7,3,2.7,1.4,5,2.7,0.3,0.4,4.7,0,5,5,1.7,1,4.8,0.8,1.2,3.2,0,0,0,1.9,4.6,1.6,3.6,3.9,4.1,4.1,4.2,4.2,4.3,4.2,4.2,4,4,4.1,4,3.5,3.8,0,1.2,3,3,0.8,4.9,2.7,3.2,4.1,4.4,4.8,4.5,4.9,5.2,5.3,5.6,6.6,4.1,2.5,1.7,-0.6,0.2,-0.1,1,2.8,-0.4,-0.2,0.8,3.7,-0.3,1,0.1,0.5,4.4,0.9,3.6,1.6,1.1,1.4,1.2,0,-0.2,0,-0.4,-0.1,-0.6,-0.7,-0.2,3.7,-0.1,-0.4,-0.8,3,1.2,0.3,2.6,2.7,2.4,3.1,3.7,4.2,4.4,4.3,4.3,4.4,4.4,4.4,4,3.1,3.5,0.4,0,-0.9,-0.3,-0.5,-0.3,0.2,3.1,0,0,1.5,1.8,0,2.3,3.5,4,4.2,4.3,4.1,4.2,4,2.9,5,0,0,0,5,1.7,2.3,3,0.9,4.8,2.8,3.5,3.1,3,3.9,3.9,4.2,4.3,4.2,4.3,4.3,3.5,3.6,3.9,3.8,3.8,2.1,0,0.6,0,0.4,4.2,1.9,2.9,3.8,4.1,4.3,4.2,4.5,5,6.6,7.1,7.4,6.3,8.3,5.9,6.2,4.6,4.7,4.3,4.4,4.6,4.5,4.5,4.5,4.5,4.7,4.9,5.1,5.9,5.6,6.8,7.1,7.2,7.7,7.8,7.9,7.8,6.9,6.4,5.2,4.9,4.7,4.6,4.8,4.8,4.4,4.3,4.7,4.7,4.9,5.4,6.2,4.6,6.6,6.6,6.7,6.6,7.4,7.3,7.5,7.4,6.8,6,4.9,4.7,4.9,5.2,5,3.9,2.8,3.3,5,3.9,4.2,5.2,5.6,6.1,4.2,4.9,5.3,8.1,4.8,5.2,6.1,6.1,5.1,4.4,4.5,4.3,4.3,2.6,4.3,2.1,0.5,1.6,0,0,3.8,0.2,0,0,0.7,4.8,1.9,4.2,2.7,3.1,2.4,3.8,2.2,3,3.1,3.8,1.1,1.3,1.1,1,0.4,1.5,0.9,1.6,1,1.7,3.9,3,4.9,1.7,2.8,4,2.8,4.4,3.6,2.6,3.7,4,0.7,1.1,0.6,0,0,-0.5,0.3,-0.1,-0.4,0.5,3.8,1.5,3.4,5,0,1.8,1.5,1.7,0,1.8,3.8,3.3,2.3,3.5,2.9,4,2.8,1.2,0.5,0.4,0.1,-0.3,3.1,1.4,3.2,0,1.3,1.4,3.2,2.4,1.8,1.5,1.7,3.7,2.9,1.9,5,1.9,3.6,3.9,1.2,1.3,0.8,1.1,0.5,0,0.2,0.4,0.7,1.1,3.2,3.3,3.2,3.1,4.2,4.5,4.8,4.8,5.2,5.3,4.7,4.6,4.4,4.1,3.6,1.7,1.8,1.1,1.2,1,4.2,1.2,1.4,1.8,1.7,3.1,3.8,3.3,3.9,4.2,4.7,4.9,5.2,6.2,4.6,4.4,4.1,3.3,0,0,0,0,0,0,0,0,0,1.1,1.6,3.7,0,2.2,2.7,3.9,4.3,4.5,4.7,4.6,4.3,4.1,3.8,2.8,5,-0.8,-0.2,-0.2,0.4,4.1,-0.6,-0.5,-0.2,0.4,0.9,1.1,2.9,2.6,3.2,3.3,4.2,4.4,4.5,4.4,4.2,3.5,1.4,0.1,1.1,-0.3,-0.1,-0.4,-0.5,-0.7,-0.9,-0.5,3.6,1,1,0.5,2.6,5,0,0,3,2.6,3.8,4,3.8,2.2,1.4,-0.7,-0.2,-0.5,3.6,0.5,3.9,-1,4.5,-0.7,0.1,4.3,0,0,-0.1,2.7,5,5,1,2.6,3.9,2.6,3.4,3.9,3.5,3.8,3.1,2.8,2.3,3.8,0.2,0.2,0,0.1,0.1,0.2,-0.3,4.9,-0.2,1,0.6,1.2,0.8,1.2,1,1,1.1,0,0.2,0.1,-0.3,-0.9,-1.1,0,-0.1,-0.3,-1,0,0,-1.4,5,-0.4,0,0.4,0.3,0.4,0.6,0.8,0.7,0,0,0.1,-0.1,-0.9,-0.7,-1.6,-0.8,-1.2,-1.3,-0.2,-0.1,-0.1,0.1,3.6,0,0,0,-0.3,0.3,0.4,3.1,1.7,0.4,0.7,0.4,0.1,0,-0.1,0,0,0,0.1,3.7,-0.1,0,0,0.5,0.5,0,-0.3,-0.1,0,0,-0.3,0.3,0.9,0.9,1.3,1.5,1.3,1.6,1.3,1.8,3.6,3.1,0.9,0.3,-0.2,4.8,-0.4,0.1,0,0.2,0.4,0.7,0.9,1.1,1.2,1.1,0,2.3,1.9,3.7,1.2,1.3,0.6,-0.2,-0.8,0.8,3.1,-1.1,-3.3,-3,-2.2,-1.9,-0.3,2.3,0,0,0.2,3.1,0,0,1,0.6,0.4,-0.1,-0.3,-0.6,-1.4,-3.5,-3.5,-4.6,-5.7,-5.6,-5.7,-6.1,-5.5,-3.7,-2.1,-0.8,-0.6,2.6,0,0,0,0,1.8,2.4,-0.4,-0.3,-0.8,-2.1,-3.4,-4.8,-4.3,-5.8,-6.9,-6,-5,-5.8,-5.9,-4.6,-2,-0.8,-1.1,0,-1.1,0.2,0.2,2.7,2.3,0.4,-0.4,0,-1.2,-1.5,-1.2,-1.1,4.5,-1.8,-1.3,-2.8,-1.9,-1.2,-1.6,-1.8,-1.1,3.7,0.5,0,-0.1,0.1,1,4.7,-0.8,5,-1,-0.7,-1.1,-1.2,-1.7,-2.7,-4.4,-4.6,-3,-3.4,-3.4,-3.3,-4.4,-3.7,-2.4,-0.7,-0.5,-0.3,-0.5,-0.8,0,0,0,0,0,0,0,2.9,-2.9,-1.6,-1.7,-1.5,-2.3,-3.1,-2.9,-2.6,-2.9,-2.1,-1.2,-0.9,-1,0,-1.8,-0.2,0,0.2,0.6,0.6,2.6,1.3,2.7,1.6,-0.2,3,1.8,-0.7,-0.2,-0.6,-0.7,-0.2,-0.3,0.1,3.9,0.2,0.5,3,1,2.5,3.6,1.8,3.6,3.7,3.7,2.8,2.3,1.4,-0.5,-0.8,-1,0.7,1.1,-3.5,-5.1,-5.2,-5.1,-4,-2.1,-1.4,-0.9,-0.1,-1,-0.7,0,-0.9,-0.4,0.4,-0.3,-0.3,-0.3,-0.1,-1.2,-1.5,-1.6,-1.9,-2.4,-3.7,-4,-4.4,-4.6,-4.3,-2.7,-2.7,-0.9,-1,3.6,-0.8,-0.6,-1,-0.6,-0.3,-0.3,-1.2,-1.2,-2,-2.6,-4,-4.6,-4.8,-5.8,-5.4,-6.2,-5.3,-5.7,-5.4,-3.2,-2.3,-1.1,4,0,3,-1,3.2,0.5,2.7,-0.8,-2.1,-4,-5.8,-7.3,-6.2,-8.4,-10.2,-10.1,-9.6,-10.4,-11.2,-11.6,-8.6,-6.7,-5.9,-4.3,-3.4,-2.4,-1.9,-1.7,1.7,0.5,2.4,-2.4,-7.7,-8.3,-9.8,-10.5,-12.1,-11,-11.7,-13.3,-13.3,-11.6,-12.8,-13.3,-9.7,-8.2,-6.7,-7,-5.4,-5.4,-4.9,-3,-2.8,5,-2.2,-1.8,-1.2,-2.2,-2.3,-2.8,-3.1,-3.6,-4.1,-6.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2.7,-3.1,-4.8,-5.3,-9.3,-7.5,-8.9,-12.3,-11.6,-14.2,-12.3,-13,-12.9,-9.9,-7.6,-5.7,-4.6,-4,3.8,-2.9,-1.9,-2,3.4,-2.4,-2,-1.9,-4,-4.5,-5.9,-6.8,-5.5,-10.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3,-2.4,-2.8,-2.3,-2.3,-2.3,-3.4,-4.3,-4.3,-4.3,-2.8,-1.2,2.4,-0.4,3.3,-1.6,-0.9,2.5,0,2.6,-1.6,-2.3,-2.7,-3.3,-5.9,-7.9,-9.6,-15.5,-8.8,-7.2,-4.7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2.1,-3.6,-5.3,-5.6,-4.7,-4.7,-5.8,-7.9,-5.3,-4.1,-2.8,-2.4,-1.8,-1.9,-1.6,-1.4,3.7,-1.5,-1.1,-1.9,-2.1,-3.2,-3.9,-5.4,-6.5,-6.9,-9,-9,-11.9,-12.7,-10.7,-8.9,-9.2,-9.3,-6.8,-5.9,-5.9,-3.6,-2.8,-2.5,-1.6,-2.5,-1.6,-1.2,-1.7,-1.9,-2.8,-2.7,-3.5,-3.6,-5.6,-6.8,-5.8,-7.4,-9.7,-8,-6.8,-5.5,-2.8,0.8,-3.2,-3.2,-2.7,-2.3,-1.6,-1.7,-1.5,0.2,1.9,-2.6,-2.7,-2.9,-3.5,-3.3,-5.1,-6.3,-5.8,-6.2,-7.6,-8.9,-6.9,-5.8,-5.4,-3.5,-2.6,-2.5,-1.7,-1.5,2.1,0,-1.9,-2.1,-2.4,-3.7,-6.3,-6.4,-7.6,-8.8,-10,-9.8,-11.5,-13.2,-10.7,-10.9,-11.5,-11.4,-8.2,-6.4,-5.6,-4.8,-3.9,-2.8,-2.6,-2.3,-2,-2.2,-2.6,-5,-8.8,-9.2,-9.2,-12,-11.3,-9.6,-11.4,-11.6,-10.1,-11.8,-12.7,-10,-8.9,-7.2,-6.5,-5.4,-4,-3.4,-3.1,-2.5,-2.8,-2.9,-6,-8,-10.8,-11.4,-10.5,-12.2,-12.3,-5.6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-3.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-2.5,-2.8,-3.5,-3.7,-4.2,-4.9,-5.3,-6.4,-5.7,-8.5,-4.9,-6.3,-4.8,-3.4,-2.7,-0.6,0,0.5,0.8,0.2,-1.7,-1.9,-2.3,-2.9,-3.2,-4.1,-5,-6.3,-7.4,-9.4,-9.2,-9.5,-10.7,-11.4,-9.4,-8.3,-7.7,-5.6,-4.7,-4.1,-2.9,-2.8,-2.2,-2,-1.9,-2.2,-3,-4.7,-6.5,-8.5,-11.9,-12.4,-11.4,-13.2,-15.2,-12.8,-15.3,-12.4,-11.5,-10.7,-9.8,-7.3,-6,-6.9,-4.6,-5,-4.1,-3.1,-3.2,-3.2,-5,-6.3,-9.4,-12.6,-11.5,-13.2,-15.7,-13.3,-16.8,-12.8,-16.6,-13,-14.3,-13.2,-10.5,-10,-8.1,-6.9,-7.2,-6.9,-5.7,-4.8,-5.9,-5.8,-5.8,-9.1,-10.2,-15.6,-13.1,-16.4,-13.1,-16.4,-12.7,-16.4,-12.7,-16.1,-12.8,-13.6,-11.2,-9.8,-9.8,-8.7,-6.7,-6.5,-7.1,-5.3,-4.8,-4.6,-5.5,-4.2,-5.8,-9.4,-8.8,-12.5,-11.2,-13,-12.2,-12.7,-13.1,-12,-12.7,-10,-9.2,-8.5,-6.2,-5,-4.1,-3.8,-1.9,1,-3.3,-0.4,0,0,0,0,-3.3,-6.2,-9.1,-9,-10.4,-11.4,-11.7,-10.2,-10.5,-9.4,-7.8,-4.9,-4.4,-3.6,-3.1,-2.6,4.4,0,4.5,-6.5,1.1,-4.3,-1.1,-0.5,-6.4,-6,-7.4,-10.5,-12.9,-11.5,-13.4,-13.5,-11.7,-10,-8.9,-6.9,-6.1,-4,-4.1,0.1,-1.1,-3.2,1.3,-1.2,1.1,-5.1,-8.2,-11.3,-13.9,-13.1,-14.6,-16.5,-13.9,-15.6,-16.1,-14.7,-15.8,-13.6,-13.8,-9.4,-8.1,-7.6,-7.7,-6,-7.2,-6.6,-7.5,-9.7,-8.6,-9.2,-9.4,-10.2,-9.1,-10,-11.2,-9.7,-10.8,-12.4,-9.5,-9.8,-9.7,-8.5,-6.4,-5.7,-5.2,-4.2,-3.8,-4.9,-3.8,-3.4,-2.7,-3.2,-3.6,-3.4,-4.8,-8.1,-11.7,-11.2,-11.6,-14.8,-12.6,-16.5,-13.3,-16.9,-12.7,-13.9,-9.2,-8.2,-5.1,-4.9,-3.7,-3.2,-2.6,-2.9,-2.7,-3.4,-3.7,-3.9,-3.7,-5.9,-10.8,-10.6,-15.9,-12.6,-17.1,-14.2,-17.8,-14.1,-17.1,-12.2,-10.6,-8.3,-6.4,-5,-4.6,-3.9,-3.2,-3,-3.1,-3,-3.4,-3.4,-5.6,-11.5,-11.4,-17,-15,-17.8,-15.2,-18.9,-14.5,-17.5,-12.9,-14.6,-10.6,-9.4,-9.8,-8,-7,-6.6,-4.9,-4.3,-3.8,-4.2,-5,-8.6,-12,-10.5,-12.1,-12.5,-12.6,-13.5,-13.3,-13.7,-14.1,-15.2,-15.7,-13.6,-12.6,-11.7,-9.5,-10.8,-6.6,-6.1,-6,-4.6,-4.3,-4.4,-4.1,-4.5,-4.9,-8.4,-12,-11.7,-11.8,-11.5,-15.7,-13.3,-13.3,-13.6,-14.3,-11.8,-10.2,-8.4,-8,-5.9,-4.9,-4.2,-3.7,-3.5,-2.7,-3.4,-3.7,-3.7,-4.1,-5.3,-7.8,-9.6,-13.7,-13.3,-12.9,-15.6,-13.6,-14,-14.8,-11.9,-10.5,-11.2,-8,-7.6,-7.7,-6.1,-4.9,-4.4,-4.1,-3.4,-4.2,-4.6,-7.8,-10,-10.1,-10.7,-14.6,-12.4,-12.3,-16.1,-12.8,-12.5,-13.7,-10.5,-9.2,-9,-6.2,-5.2,-4.1,-3.8,-3,-3.1,-2.7,-3.2,-3.7,-3.7,-3.9,-4.7,-6.2,-9.3,-9.2,-13.1,-11.6,-11.6,-15.1,-12.6,-11.7,-14.1,-9.2,-8.1,-5.5,-4.6,-4.2,-4.1,-3.3,-3,-2.7,-3.6,-3.8,-3.7,-4.5,-4.8,-6.9,-8.3,-9.8,-16.8,-17.9,-15.6,-10.5,-12.2,-11.4,-7.8,-6.2,-7.7,-5.5,-5.7,-3.9,-3.9,-3.4,-1.9,-3.3,-3.5,-3.3,-2.7,-3.7,-3.8,-2.9,-4,-3.6,-5.3,-3.9,-4.5,-3.6,-3.2,-3.2,-3.2,-3.7,-3.9,-3.6,-3.4,-3,-2.6,-2.6,-3,-2.8,-1.3,-2.6,-3.5,-3.5,-4.2,-6.5,-9,-9.6,-11.4,-12,-12,-11.7,-10.8,-9.3,-7.2,-6.2,-6.1,-6.3,-5.9,-4.7,-4.4,-4.7,-3.9,-3.7,-3.8,-4,-4,-5,-5.1,-6.2,-9.8,-10.5,-12.7,-16.7,-14.4,-14.2,-15.6,-12.3,-10.8,-11.1,-10.3,-7.6,-6.7,-4.7,-3.8,-3.7,-3.6,-2.8,-3,-3.4,-3.5,-4.5,-6.3,-10.6,-11.7,-15.5,-13.8,-17,-14.7,-13.9,-17.5,-13.4,-13.6,-11.9,-9.6,-8.2,-7.6,-5,-4.6,-3.8,-3.7,-3.3,-3.3,-3.9,-4.3,-5.5,-7.4,-12,-11.8,-12.7,-16.5,-13.9,-17.2,-13.8,-15.1,-14.3,-11.9,-12.6,-8.3,-6.6,-6.7,-5.5,-4.2,-3.5,-3,-2.8,-3.5,-4.1,-4.3,-7.2,-9.8,-14.7,-13.4,-14.4,-17.4,-14.4,-18.3,-14.7,-16.6,-13.5,-11.6,-12.1,-8.5,-7.4,-6.6,-5.7,-4.6,-3.7,-3.8,-3.5,-3.4,-4.1,-4.9,-8.2,-12.8,-12.4,-14.8,-14.9,-14.1,-18.8,-15,-18.7,-14.5,-17.5,-13.2,-13.9,-9.5,-7.4,-7.7,-7.1,-6.9,-6.6,-5.5,-5.5,-4.9,-5,-5.6,-8.5,-9.4,-11.8,-13.9,-13.2,-16.8,-13.3,-16.2,-12.7,-11.9,-12.6,-11,-8.9,-7.5,-5.6,-4.9,-4.3,-3.6,-3.6,-3.5,-3.4,-3.3,-4,-4.5,-6.2,-9.7,-10.8,-12,-14,-12.4,-15.2,-14,-13.7,-16.2,-14.1,-14.2,-11.2,-8.5,-7.4,-6.6,-5,-4.8,-4,-3.6,-3.2,-3.5,-4.1,-4.2,-6.3,-10,-11.9,-13.8,-15.9,-14.4,-19.3,-15.6,-18.7,-14.8,-17.9,-12.8,-13.4,-9.5,-8.2,-6.5,-6.6,-5.7,-4.6,-4.3,-4,-3.4,-4.5,-4.8,-8.4,-11.2,-12.5,-14.1,-13.6,-17.5,-14.8,-18.1,-14,-13.6,-9.6,-9.8,-9.9,-10.1,-7.9,-7.1,-8.1,-7,-6.3,-5.2,-4.5,-4.8,-4.6,-6.3,-7.7,-10.9,-10.9,-12.5,-15,-13.9,-17.7,-15,-16.9,-14.6,-13.3,-11.9,-9.5,-8.5,-8.1,-7.1,-5.5,-4.3,-4.5,-4.1,-3.2,-3.8,-4.5,-4.6,-4.4,-6.4,-10,-12.2,-12.5,-15.9,-14.7,-14.9,-16.1,-12.4,-15.5,-11.7,-10.3,-11.4,-8.8,-7.6,-6.8,-5.8,-4.7,-4.9,-4.5,-5,-6.2,-8,-10.1,-10.4,-12.2,-12.6,-12.9,-16.6,-12.9,-17,-14.5,-17.4,-14.6,-16.4,-12.3,-11.8,-9.3,-8,-8,-6.5,-5.8,-6.1,-5.9,-5.2,-6.5,-10,-12.3,-16.7,-13.3,-18,-15,-18.6,-17,-18.1,-19.1,-15.9,-18.4,-14.8,-16.3,-13,-13.1,-10,-9.8,-9.2,-8.2,-7.1,-6.9,-6.4,-6.1,-7.6,-8.6,-12.6,-12.8,-17.2,-15.4,-17,-18.3,-14.2,-18.3,-15.6,-16.5,-9.9,-9.7,-8.2,-8.7,-10,-8.4,-7.6,-7.5,-7.4,-7.5,-7.3,-8.5,-11.1,-11.9,-14.4,-17.4,-18.3,-18.1,-15.8,-14.8,-16.4,-14.2,-16.8,-13.9,-14.4,-14.4,-11.7,-11,-10.5,-9.3,-8.8,-8.4,-9.3,-8.8,-8.4,-11.1,-11.8,-12.7,-14.1,-18.7,-17.9,-14.9,-16.2,-14.8,-18.8,-18.3,-16.5,-16.4,-15.5,-15.6,-12.6,-12.6,-11.8,-11.9,-11.1,-8.4,-7.4,-6.9,-5.9,-5.9,-5.6,-7.4,-7.8,-10.8,-10.9,-14.6,-12.5,-14.5,-12.3,-12.8,-13.3,-10.9,-11,-8.4,-6.5,-4.9,-5.6,-5.1,-4.3,-4.6,-4.1,-4.4,-4.6,-4.6,-4.9,-8.4,-10.4,-12.7,-12.5,-14.2,-14.4,-13.7,-16.7,-14.6,-17.5,-13.3,-13.8,-11,-11,-9.1,-8.8,-8.6,-7.7,-6.6,-6.8,-6.7,-6.9,-8.3,-8.1,-10.3,-13.4,-13.1,-17.3,-14.5,-18.7,-17.1,-16.6,-17.8,-13,-17.1,-15.5,-12.8,-12,-10.2,-8.7,-7.9,-6.1,-5.2,-6.1,-5.9,-5.2,-8.2,-10.2,-13.3,-12.5,-15.7,-13.6,-15.3,-15.6,-14.6,-16.5,-14,-15.7,-12.9,-12.1,-11.9,-9.1,-7.9,-7.7,-5.5,-5.6,-5.1,-4.8,-4.5,-4.9,-4.9,-4.7,-8,-10.3,-12.8,-12,-14.6,-14.6,-14.5,-17.1,-16.6,-15.5,-16.8,-13.4,-14.2,-11,-9.6,-9.8,-7.1,-6.4,-6.9,-5.5,-5.3,-5,-6.2,-7.5,-10.8,-12,-12.6,-17.1,-15.9,-18.4,-18.4,-17,-19,-15.5,-18.3,-15.7,-13.7,-12.7,-10.7,-9.1,-8.9,-7.6,-6.3,-6,-5.8,-5,-5.5,-7.4,-9.1,-14.9,-14.4,-18.8,-17.1,-20.2,-16.8,-19.5,-12.9,-21.2,-15.9,-16.4,-17,-12.7,-13.5,-10.8,-12.4,-9.9,-10,-8.7,-7.4,-7.7,-7.3,-7,-10.3,-10.5,-15.6,-13.6,-17.1,-14.6,-18.5,-16.9,-16.6,-17.9,-13.9,-14.8,-11.4,-10.2,-8.5,-8,-5.8,-6.8,-5.7,-5.6,-4.9,-4.5,-5,-4.9,-5.4,-6.4,-10.1,-10,-13.3,-13.2,-13.4,-17,-13.7,-16.2,-12.8,-14.3,-10.2,-9,-8.4,-6.4,-6,-5.1,-4.7,-4.7,-4.1,-4.6,-4.8,-6.7,-10.6,-15,-17.9,-15.9,-18.9,-16.8,-20.1,-17.6,-15.8,-18.9,-15.1,-18.4,-15.9,-12.9,-11.2,-11.3,-9,-8.2,-8.1,-6.5,-6.3,-6.1,-8,-11.3,-12.2,-16.6,-15.1,-17.7,-16.7,-18,-15,-18.7,-18,-14.5,-17.2,-15,-16.2,-11.5,-12.4,-13.3,-10.8,-10.9,-7,-5.6,-6,-6.1,-5.7,-6.9,-7.8,-9.1,-9.4,-12,-10.3,-10.4,-12.7,-10.1,-10.8,-11.9,-10.5,-8.9,-7.2,-7.3,-5.4,-5.5,-5,-4.5,-4.6,-4.6,-4.6,-4.8,-4.8,-7.8,-8.4,-10.7,-9.6,-15.5,-14.5,-15.6,-15,-13.8,-14.8,-12.2,-10.2,-7.5,-7.3,-5.4,-4.8,-4.6,-4.6,-4.1,-4.5,-4.2,-3.8,-4.2,-4.8,-4.9,-5.1,-5.2,-6.8,-8.6,-10.6,-12.4,-11.8,-12,-15.1,-11.9,-12.5,-10.8,-8.1,-7.2,-5.7,-5.4,-5.3,-5.4,-4.8,-3.9,-4.2,-4.2,-4.6,-4.6,-4.9,-4.8,-5.9,-6.4,-9,-9.4,-11.6,-11.7,-11.3,-13.2,-9.3,-8.1,-7.1,-5.2,-4.4,-4.2,-3.8,-3.2,-3.8,-2.9,-2.8,-3.1,-3.4,-4.7,-7.7,-10.2,-11.7,-13.2,-15.4,-14.3,-14.2,-18,-13.6,-13.7,-13.8,-12.1,-8.4,-6.8,-6.4,-5.1,-5.3,-7.6,-8.7,-9.7,-5.8,-4.5,-5,-4.2,-5,-5.9,-9.8,-9.9,-6.9,-8.8,-8.9,-9.8,-7.6,-10.4,-7.6,-8,-6.3,-5,-5.7,-5.7,-5.1,-5.4,-5,-5.1,-4.7,-4.8,-4.8,-4.3,-4.8,-5.2,-7,-9.5,-8.9,-8.8,-7.6,-7.2,-9,-7.5,-8.6,-8,-7.9,-7,-5.9,-5.6,-5,-4.9,-4.6,-4.3,-3.9,-3.6,-3.4,-3.8,-3.6,-5,-6.4,-8.6,-9.3,-12.5,-12.4,-11.8,-11.1,-14.4,-10.5,-8.9,-6.6,-6.6,-5.8,-5.2,-4.9,-4.5,-3.7,-3.8,-2.9,-3.4,-3.6,-3.5,-5.5,-7.8,-9.4,-12.3,-12.5,-13.4,-16.1,-17,-14.9,-16,-13.9,-11.9,-10,-9.8,-8.3,-6.4,-5.8,-5.2,-4.8,-4.1,-4.4,-4.7,-3.8,-3.7,-1.9,-1.7,-3.8,-1.8,-3.7,-1.7,-8.4,-9.3,-10.5,-12.1,-10.4,-8.1,-7,-6.2,-5.2,-2,-3.4,-3.3,-1.6,-3.1,-2.9,-1.9,-3.3,-3.9,-4.2,-4.6,-5.8,-7.2,-11.2,-10.5,-12.6,-13.7,-12.1,-11.9,-10.8,-8.7,-6.4,-5.5,-4.9,-4.6,-4,-3.8,-2.9,-3.8,-3.4,-3.3,-3.3,-3.8,-3.9,-4.9,-7.5,-8.4,-9.6,-10.9,-11.9,-14.9,-13.7,-12.9,-12,-11.2,-9.8,-7.7,-6.9,-7.1,-7.7,-6.1,-5.2,-4.9,-4.6,-4,-4.6,-4.7,-5.4,-5.5,-5.8,-6.3,-8.4,-8.6,-10.9,-10.5,-10,-11.7,-9.5,-8.4,-7.7,-7,-7.9,-7.1,-7.4,-5.9,-6.7,-5.7,-5.7,-5.4,-5.5,-5.4,-5.3,-6.3,-10.8,-10.9,-12.5,-12.2,-12.2,-13.8,-14.5,-11.9,-11.4,-11.6,-10.6,-8.5,-7.1,-7.5,-5.4,-4.9,-5.4,-4.5,-4.2,-3.9,-4.3,-2.5,-6,-8.3,-9.8,-13.7,-13,-13.2,-13.9,-15.9,-13.8,-13.7,-14.4,-10.9,-8.9,-8.1,-7.3,-7.1,-5.8,-4.9,-4.1,-4.2,-3.7,-3.8,-4.2,-4.5,-5.9,-7.6,-12,-11.8,-11.4,-14.1,-12,-11.6,-12.1,-12.2,-10.2,-8.6,-7.4,-7.8,-8,-6.8,-5.4,-4.3,-3.9,-2.6,-2.5,-3.7,-2.3,-3.4,-1.9,-1.8,-4.6,-4.5,-1.9,-5.4,-8.1,-9.3,-9.9,-10.3,-8.3,-9.6,-8.7,-7.3,-8.5,-5.5,-3.8,-3.1,-2.9,-3,-2.4,-2.9,-2.9,-2.3,-2,-2.7,-2.5,-2.7,-2.9,-3.6,-4.2,-3.7,-4.6,-4.5,-4.2,-4,-4.2,-4.1,-3.8,-3.5,-2.3,-1.4,-2.1,-1.7,-1.4,-1.8,-2.4,-2.6,-3.6,-3.9,-3.9,-4.6,-5.3,-6.4,-7.8,-8.2,-8.3,-8.4,-8.3,-8.6,-8.7,-7.2,-8,-4.6,-3.3,-2.9,-2.8,-2.8,-2.5,-2.7,-2.8,-3.4,-3.4,-3.7,-3.9,-4.7,-5.2,-5.3,-5.6,-6.8,-7.4,-8,-8.5,-8.2,-7.7,-7.7,-7.3,-4.5,-3.6,-3.1,-3,-3.3,-2.5,-2.8,-2.4,-3.9,-3.7,-4.2,-5.1,-6,-7,-8.6,-9.4,-9.4,-9.8,-11.2,-11.3,-9.4,-7,-5.4,-4.3,-3.4,-2.6,-2.6,-2.8,-2.6,-2.5,-3,-3.2,-3.4,-5.1,-10.3,-11.9,-12.2,-10.6,-12.2,-8.5,-9.1,-10,-11,-6.9,-6.4,-5,-3.7,-3.2,-2.8,-2.6,-2.8,-2.7,-2.3,-2.7,-3,-3.1,-3.1,-3.1,-3.5,-3.6,-3.9,-5,-5.4,-6.5,-6.7,-7.6,-7.2,-5.8,-5.1,-3.8,-3.5,-2.5,-3.1,-2.8,-2.4,-2,-2.2,-1.9,-2.4,-2.9,-2.8,-3.1,-3,-3.8,-4.6,-4.8,-5.9,-6.8,-7,-7.5,-7.3,-6.5,-4.7,-3.6,-2.9,-2.5,-2.1,-2.1,-1.9,-1.8,-1.8,-1.5,-1.5,-2,-2.8,-2.8,-3.5,-3.4,-4.6,-5.2,-6.5,-6.7,-9.4,-7.6,-8.7,-7.2,-4.2,-3.4,-2.7,-2.5,-2,-2,-1.9,-1.6,-1.8,-1.3,-1.8,-2.2,-2.8,-2.4,-3.2,-4.8,-7.9,-8,-11,-11.7,-9.6,-9.2,-8.7,-10.3,-7.3,-7.1,-6.7,-5.4,-3.8,-4,-3.7,-2.6,-2.9,-2.8,-2.8,-2.9,-3.1,-3.4,-3.9,-4.8,-5.6,-7.6,-7.3,-7,-8.4,-7.2,-7.1,-7.5,-5.7,-6.4,-5.4,-5,-4.7,-4.3,-4.3,-4.1,-3.9,-3.5,-3,-3.5,-3.5,-4,-4.5,-0.8,-7.9,-9,-13.4,-11.8,-10.3,-11.4,-13.1,-11.1,-8.4,-7,-7,-6.3,-6.5,-5.6,-4.3,-3.7,-3.3,-3.3,-3.5,-3.8,-2.8,-3.3,-6.9,-8,-11.5,-11.5,-12.7,-13.3,-14.1,-12.1,-11.4,-12.4,-8.9,-7.2,-6.6,-5,-1.6,-4,-3.7,-3.6,-3.2,-3.2,-1.7,-1.1,-0.4,-3.5,-1.3,-3,-1.7,-4.2,-6.9,-7.4,-8.6,-5.9,-6.8,-6.1,-5.5,-4.1,-3.7,-3.4,-2.6,-0.7,-1,-0.8,-2.7,-0.3,-1,-1.3,-2.2,-1.4,-1.9,-1.8,-2.8,-3.4,-3.1,-3.6,-4.6,-5,-4.9,-4.3,-3.3,-2.2,-2,-1.9,-1.9,-1.8,-1.8,-1.7,-1.1,-1.1,-1.1,-1.1,-1.9,-2.9,-3.1,-2.9,-3.4,-4.4,-6.3,-7.3,-8.8,-7.5,-6.9,-5,-4.2,-3.2,-3.2,-2.4,-2.6,-2.3,-2.1,-1.9,-2,-2.2,-2.2,-2.3,-2.3,-2.9,-3.9,-5.4,-9.4,-9.5,-11.1,-10.7,-13.2,-10.6,-10.2,-8.7,-7.6,-5.1,-3.9,-3.7,-5.2,-6.2,-6.6,-3.9,-3.6,-2.8,-2.8,-2.8,-3,-2.6,-3,-3.4,-4.3,-7,-9.2,-8.4,-10.2,-9.4,-10.8,-7.7,-6.6,-5.9,-4.7,-3.4,-3.2,-2.8,-2.7,-2.8,-2.1,-2,-2.3,-2.5,-2.8,-3.1,-4,-7.2,-8.5,-10.4,-15,-13.1,-13.1,-15.5,-13.9,-11.8,-9.8,-9.7,-7.3,-7.2,-4.9,-4.2,-3.4,-3.6,-2.7,-3.3,-2.7,-2.5,-3,-3.1,-4.5,-7.4,-8.1,-8.4,-11.4,-11.7,-7.9,-5.2,-3.6,-3.1,-2.5,-2.8,-2.3,-2.6,-3,-2.9,-2.4,-2,-2.3,-2.1,-2.5,-2.4,-2.4,-2.4,-2.5,-2.4,-2.6,-2.8,-3.1,-3.4,-3.4,-3.5,-3.7,-3.6,-3.1,-3,-2.4,-1.9,-2.2,-2.2,-2.1,-2,-1.4,-0.9,-1.1,-0.5,-0.6,-2.9,-3.2,-3.2,-3.7,-4.7,-5.6,-6.8,-8.5,-7.8,-5.8,-4.7,-3.3,-2.9,-2.7,-2.3,-2.7,-2.3,-1.7,-2.1,-1.8,-2.3,-2.2,-2.1,-0.8,-2.4,-2.8,-3.1,-3.1,-4,-5,-6.8,-7.1,-6,-6.2,-5,-3.6,-2.9,-2.4,-1.8,-2,-2.2,-2.1,-2.1,-1.8,-1.1,-1.5,-2,-3,-3,-3.6,-5.4,-8.7,-8.5,-11.1,-12.2,-11.9,-11.4,-10.8,-9.4,-5.1,-3.9,-4.5,-4.6,-4.6,-4.5,-4.3,-4.3,-3.8,-4,-4,-4.2,-3.2,-2.8,-3.5,-6.7,-10,-10.2,-11.2,-14,-11.7,-11.9,-11,-11.1,-6,-4.6,-5.6,-4.7,-3,-5,-6.9,-5.9,-5.2,-6.8,-7.3,-7.8,-7.7,-8.9,-9.6,-13.6,-12.4,-13.1,-10.2,-16,-13.3,-12.6,-14.3,-9,-7.2,-7.4,-6.3,-5.1,-4,-3.8,-3.2,-2.5,-2.6,-2.6,-2.4,-2.6,-2.9,-4.8,-8.5,-9.9,-10.4,-13.4,-11.6,-12,-12,-14.7,-11.6,-9.5,-6.7,-7.2,-5.3,-4,-3.5,-3,-3.1,-2.7,-3.1,-3.2,-2.5,-2.6,-2.8,-3.3,-4.8,-7.4,-7.1,-10,-10,-10.4,-15.7,-13.2,-11.8,-11.8,-8.3,-8.5,-6.9,-8.9,-8.8,-7.2,-7.8,-6.2,-7.7,-6.1,-6.9,-7.3,-7,-6.1,-3.8,-2.7,-2.8,-2.9,-3.1,-2.9,-2.9,-3,-2.8,-2.5,-1.9,-1.8,-1.7,-1.6,-0.5,-0.9,-1.1,-1.7,-0.9,-0.1,-0.5,-1.3,-0.6,-2.2,-2.1,-2.5,-2.6,-2.2,-1.8,-0.9,-0.9,-1.5,-1.3,-1.3,-1.3,-1.3,-1.5,-1.7,-1.9,-1.1,-1.5,-1.7,-0.6,-1,-1.2,-1.4,-1.4,-1.6,-1.7,-2,-2.5,-1.9,-1.9,-0.3,-0.9,-1,-0.7,-0.3,0.2,-0.7,-1.6,-1.6,-1.7,-1.3,-1.2,-0.8,1.5,2,1.8,2.1,2.1,1.3,0.9,-0.1,-0.5,-2.3,-2.6,-1,-1.9,-1.9,-1.9,-1.1,-0.3,-0.6,-1,-0.9,-0.2,0.4,0.5,1.6,1.9,3.1,3.4,3.6,3.2,1.9,0.7,-0.2,-1.6,-2.1,-2.8,-2.3,-1.9,-2.1,-1.8,-0.9,-0.7,-0.7,0.4,0.1,-0.3,-0.2,-0.1,0.8,2.2,2.6,2.6,2.8,2.9,2.5,2,-0.7,-1.6,-2.1,-2.4,-3,-4.2,-5.1,-4.8,-3.2,-1.9,-1.1,-1,-0.8,0.4,0.3,-0.1,0,0.1,-0.5,-0.4,-0.3,0.2,-0.4,-1.4,-2.2,-3.6,-5.6,-6.4,-7.1,-8.8,-6.9,-8,-3.6,-2.7,-2.1,-1.8,-0.9,-1.4,-0.9,-0.1,-0.5,-0.8,-0.9,-0.8,0.7,0.5,-0.5,-0.3,-0.3,-0.1,0,-0.9,0,-1,-0.9,-0.7,-0.4,-0.5,-0.8,-0.6,-0.2,0.7,0.5,0.2,-0.3,1.5,3.1,2.1,3.1,3.2,2.6,2.1,1.2,-0.6,-1,-2,-1.5,-1.8,-1.4,-0.2,-0.2,-0.3,-0.4,0.4,0.8,0.7,0,1.7,2.8,1.8,3.2,2.1,3.2,3.4,1.4,2.3,-0.9,-1.2,-1.8,-1.9,-1.1,-1.6,-1.5,-1.2,-0.4,-0.1,-0.6,-0.6,0.7,0.5,0.1,0,-0.3,0.3,0.1,-0.1,-0.2,0,-0.3,-1.8,-1.5,-1,-0.9,-1.1,-0.9,-0.9,0.2,-0.9,-0.4,0.2,2.4,3.2,3.3,3.8,3.6,3.9,4.3,4.2,4,3.7,3.8,3.7,3,3.8,2.6,4.5,1.2,0.9,0.5,0.6,-0.2,-0.4,-0.1,-0.1,0.3,0.3,0.4,0,-0.9,-0.3,0.9,0.3,0.9,0.6,0.8,0,0.2,-0.2,0.1,0.1,-1.4,-1.1,-1.2,-1.3,-1.4,-0.7,-0.6,-0.1,-0.3,-0.4,0.3,0.9,1,0.9,0.9,0.8,0.8,0.7,0.6,0.6,-1.7,0.8,-0.9,-1.1,-1.3,-1.5,-1.7,-2,-3.3,-2.3,-1.4,-0.3,-0.6,0,0.2,0.1,0.3,-0.5,0.7,1,0.5,0.4,1,-0.5,-1.4,0.3,-0.5,-3.2,-5,-5.8,-6.8,-7.4,-6.6,-6.6,-14.3,-8.4,-7.2,-8.5,-3.6,-1.3,-0.8,-0.8,-0.5,-0.3,-0.5,-0.6,0,-0.6,-2.4,-9.8,-9.3,-10.5,-13.7,-12.2,-11.8,-11,-12.5,-10.1,-7.3,-7.4,-6,-5.9,-5.6,-2.8,-1,-0.8,-0.7,-0.7,-0.4,-0.7,-0.4,0.6,-0.2,0.3,0.8,0.6,0.4,-0.6,-0.9,-1.2,-1,-0.8,-0.1,0.6,0.4,0.5,0.8,0.9,0.8,0.7,0.6,0.6,2.9,3.5,4,3.8,3,2.1,0.3,-1.3,-1.5,-2.1,-1.7,-1.3,-1.2,-1.2,-0.5,-0.7,0.1,0.5,0.3,0.3,0.4,0.8,0.9,0.9,-0.2,0.9,0.8,2,1.7,0.1,-1.2,-1.5,-2.6,-4.3,-5.3,-5.5,-5.1,-4.6,-3.2,-11.2,-3.6,-1.4,-0.9,-0.2,-0.7,0.5,0,-0.3,-0.1,0.3,0,0.1,-1.3,-1.5,-1.7,-3.8,-9.8,-8.9,-8.2,-12.2,-9.1,-8.1,-9.2,-9.3,-7,-7.7,-6,-7.5,-7.3,-6.5,-4.4,-1.3,-1.1,-1.3,-0.8,-1.5,-1.7,-2.3,-3.7,-5.1,-7.3,-9.6,-8.7,-8.3,-11,-9.3,-9.1,-7,-8.5,-7.4,-7.9,-8,-7.4,-6,-5.9,-6,-5.9,-5.4,-5.7,-2.2,-2.2,-2,-4.3,-7.5,-7.2,-8.4,-9.6,-10.4,-8.8,-6.7,-10.3,-8.9,-7.9,-7.7,-7.3,-8.3,-6.1,-7.4,-6.7,-5.8,-5.8,-5.7,-5.2,-4.5,-5.7,-8.1,-8.1,-9.5,-11.9,-10,-10.4,-10.2,-11.3,-7.8,-6.7,-6.9,-5.9,-4.4,-4.6,-5,-4.9,-4.6,-4.5,-4.6,-4.6,-4.7,-4.6,-4.7,-4.2,-5.2,-7.8,-7.4,-9.8,-8.8,-8.9,-7.8,-9.1,-7,-7.2,-5.7,-4.8,-4.3,-5.3,-3.2,-2.6,-3.1,-2.7,-2.4,-2.3,-2.2,-1.7,-1.7,-1.8,-2.5,-3.6,-5.9,-7.5,-7.4,-7.8,-9.4,-7.2,-5.9,-5.3,-7.5,-6.5,-6.2,-3.6,-0.1,0,-1.4,-0.9,-0.7,-0.8,-1.1,-0.1,-0.6,-0.3,-1.1,-2.5,-5.7,-10.1,-9.3,-9.2,-11.1,-8.9,-9.6,-9.8,-7.5,-5.8,-6.8,-6.2,-6.2,-5.8,-4.9,-6,-5.8,-6.1,-2.9,-0.9,-0.9,-1.5,-1.7,-2.4,-2.2,-3.7,-5,-6.1,-6.9,-8.1,-9.6,-6.5,-7.2,-4.7,-1.5,-1.3,-1.6,-1.1,-1.5,-0.1,-1.1,-1.4,-0.1,-0.6,-0.9,-1.2,-1.4,-1.4,-1.4,-1.6,-1.6,-2,-2.6,-2.5,-1.7,-1.4,-0.7,-0.9,-0.9,-0.7,0.5,-1.1,0.6,0.2,0.6,-0.6,0.4,-0.8,0.6,-1,0.6,-1.2,-1.4,-2.1,-2.3,-2.1,-2,-2.1,-1.5,-1,-0.7,-0.4,-0.2,0.2,0.8,0.7,0.4,0.1,0.2,0.4,0.8,2.4,2.8,2.5,2.3,1.9,0.7,-1.3,-1.7,0,-0.7,-1,-0.7,0.2,0.7,0.7,0.3,0.5,1.5,2.6,3.4,3.4,3.4,3.8,3.7,4.6,4.2,3.5,2.7,1.4,-0.2,-1.8,-1.6,-1.9,-2,-1.8,-1.1,-0.9,0.5,0.3,0.7,1,-0.2,-0.1,0.4,-0.1,0.6,0.2,0.1,-0.7,-0.3,0.2,-0.3,0.6,-0.6,0,-0.4,-0.6,-1.4,-1,-1,0.2,0.4,0.5,0.7,-0.4,0.9,1.8,3.7,4.2,4.6,4.5,5.2,5.8,6.5,6.7,6.4,6,4.2,2.6,1.4,0,-0.2,0.2,0,0.6,0.4,0,0.3,0.3,-0.1,-0.3,0.1,0.2,-0.3,-0.1,0.3,0.2,-0.3,0.1,-0.7,-1.2,0.5,0.3,-1.2,-0.9,0.7,-0.3,0.9,-4.4,-8.2,-7.3,-7.2,-6.8,-6.7,-6.3,-6.1,-5.6,-5.4,-5.3,-4.2,-3.9,-0.6,-0.1,0.9,0.5,0.9,0.3,-0.4,0.5,0.1,0.4,-3.8,-6.1,-5.5,-5.1,-4.8,-4.5,-4.1,0.5,0.8,0.7,-2,-3.7,-3.8,-3.7,0,0.3,0.5,0.9,0.8,0.6,0.3,0.2,-0.1,0.5,-2.6,-4.6,-2.8,0.5,1.5,2.2,2.3,2.9,3.4,2.9,2.7,3,3,3.6,4.2,4.5,4.9,3.9,4.3,4.3,3.9,3.6,3.1,2.9,2.2,3.4,3.7,4,4,3.9,3.7,3.6,3.8,4,3.9,4,4.2,4.5,5.1,5.7,6.4,4.8,4.5,4.5,3.8,3.7,3.3,3.6,3.7,3.8,4.1,4.3,4.5,4.7,5,4.9,5.8,5.1,5.2,4.9,7.9,5.8,7.4,9.2,9.8,9.6,9,9.2,9.2,9.3,9,9.5,9.4,9.1,8.8,9.1,8.9,8.7,9.1,9.1,8.6,9.1,8.7,9.4,9.3,8.7,9.1,8.7,8.5,9,9.2,8.9,9.2,8.9,8.9,8.7,8.7,8.9,8.6,9,8.6,8.6,9.1,8.7,9.4,9.1,9.1,9.1,9.3,9.3,9.4,9.6,9.4,9.2,9.5,9.2,9.2,9.2,8.9,8.5,6.1,6.1,5.9,5.6,8,6.5,6,5.9,6.5,7,8,8.4,8.5,8.2,8.3,8,8.1,7.6,5.6,4.4,3.7,2.1,2.4,1.8,2.3,2.4,2.1,1.8,2.2,9.4,9.7,9,9.3,9,7.4,7.2,7.7,6.3,7.4,8,8.2,6.2,6.6,4.5,3.2,2.8,2.4,2.9,3.1,4.3,6.3,6.5,7.8,9,9.5,9.1,8.8,9.1,9.4,9.3,9.5,9,9,8.9,9.1,8.9,8.5,8.4,8.9,6.1,3,3.3,3.2,5.5,6.7,8.5,8.4,8.6,8.5,8.3,8.5,9.3,8.9,8.7,8.6,8.4,8.5,8.6,8.5,9.3,8.2,4.2,2.6,2.2,2.7,2,2.4,1.7,1.8,1.8,1.9,5.1,9,8.3,8.2,8.7,8.5,8.6,9.2,8.9,9,8.8,9,8.5,8.5,5.6,3.3,2.4,2.7,2.2,2.1,2.8,2.8,2.3,1.9,1.9,4.2,9.7,9.2,7.4,6.1,4.5,3.9,3.2,2.9,3.3,3.8,2.8,2.3,1.9,-1.6,0.1,-0.1,0.5,2.5,1,0,4.3,1.7,1.2,3.2,0,0,0,0,0,5,2.4,3.9,2.5,2.2,2,1.8,4.9,-0.1,5,0.4,4.5,1.1,4.2,5,5,0,0,5,2.2,2.8,1.5,0,2.6,2.7,3.2,4.8,3.3,0,1.5,1.6,1.1,0.4,3.8,1.6,0.6,3.4,2.7,2.5,5,0,0,5,4.6,9.6,9.5,9.3,8.9,6.5,4.5,4.3,4.1,3.9,3.3,3.1,2.5,-2.5,-0.3,-1.3,-6,-2.8,2,2.8,5,-0.7,-7.3,-5.7,0,-5.4,4,-3.9,2,1.7,-3.2,4.7,5,-5,3.9,-3.1,2.7,-1.9,1.9,0,0,0,0,0,-4.5,4.7,-0.6,0,4.7,-0.1,2.7,2.2,2.8,3.7,1.1,3,3.7,3.5,3.9,2.3,2.3,2.4,3.7,2.5,1.5,-0.2,1.3,3.9,2.9,4.3,10.3,7.5,6.3,5,4.3,4.2,3.9,4,3.5,3.5,3.5,5.4,4.2,2.8,2.9,2.4,2.2,2.2,2.3,2.3,2.3,2.4,2.5,2.2,4,5.3,4.9,4.2,4.2,4.3,4.4,4.4,3.9,4.2,4.2,3.6,3,3.1,2.7,2.3,2.2,2.2,2.2,2.3,2.3,2.3,2.3,2.4,2.4,2.2,3.1,3.6,3.8,4.6,4.9,5,5.2,6.5,6.2,4.8,4.2,3.4,2.4,3.1,-1.8,-0.2,-0.2,0.1,5,0,1.8,5,6.1,7.8,7.6,10,7.8,9.7,9.7,9.3,9.6,9.9,9.5,9.6,9.2,6.4,3.7,2.5,1,-0.4,2.4,2.1,5.3,7,9.8,9.5,9.5,9.9,9.6,9.8,9.5,10.2,9.9,9.6,9.5,9.7,9.2,9.5,9.3,9.4,9.2,7.1,4.8,2.7,2.8,4.7,5.6,6.7,7.7,8.7,9.6,9.5,9.5,9.4,9.4,9.3,9.5,9.6,9.3,9.5,9.6,9.3,9.6,9.2,9.4,9.2,9,6.8,7.3,8.1,8.3,8.9,9.5,9.5,9.3,9.1,9.1,9.1,9.3,8.9,9.3,9.5,9.1,9.2,9,9,9.1,9.3,9.5,9.3,14.6,14.6,13.8,13.6,14.1,13.2,13.4,13.7,13.6,13.4,13.6,17.1,18.2,16.3,16.1,16.2,15.6,16.4,16.1,15.7,16.6,14.9,16.7,14.9,14.9,15.3,15.2,15.3,15.2,15.3,15.3,15.4,15.2,14.3,14.9,15.5,14.1,15.4,15.4,15,14.3,15.2,15.1,15.3,14.6,14.8,14.8,14.8,12,11.2,13.1,10.5,9.7,15.4,10.4,16.5,12.1,15.4,15.5,13.9,13.6,15,15.4,14,15,15.4,14.6,14.7,7.9,11.5,8.4,8.4,13.3,0,0,0,0,15.5,13.6,15.3,15.6,15.3,14.5,14.8,15.6,14.3,15.4,14.4,15.3,14.2,15.2,15.3,14,14.9,14.5,11.1,10,9.8,7.7,8.8,13.3,10.5,9.4,14.3,11.5,13.8,15,15.6,15.5,14.2,14.3,15,14.2,14.5,14.8,14.4,11.1,4.2,2.7,3.6,3.8,4.1,4,3.3,9.4,9.3,9.6,15,11.3,14.1,14.2,12.7,14.6,15.4,14.2,14.2,15.4,15.4,13.7,15.2,14.2,15,13.6,12.3,12.4,11.6,14.5,8.8,9.1,12.9,11.2,8.6,12.7,13.1,10,14.3,11.8,11.4,13.4,14.9,11.4,12.3,15.2,13.3,12.8,13.2,14.8,12.5,15.1,13.7,14.9,14,15,14.2,14.6,15.1,14.3,14.3,15.1,14.1,14.4,15.1,14.2,14.2,15.2,14,13.6,14.6,13.5,14.6,14.2,10.9,11.3,14.3,8,9.1,13.1,11.4,9.9,11.2,14.3,12.6,11.7,14.1,14.5,13.9,13.5,13.4,14.9,13.5,14.8,13.5,14.7,11.9,11.5,13.6,10.1,7.7,11.3,11.6,9,12.4,13.9,12,12.4,14.1,14.5,11.8,13.4,11.9,14.6,9.1,8.5,11.9,11.7,8,8.9,11.4,8,5.1,6.3,8.3,9.8,8.7,7.4,16,9.8,16.1,8.4,8.4,12.7,9.3,7.4,8.8,10.4,8.7,6.4,6.8,8.1,5.6,7.3,4,4.8,5.5,5.4,6.6,5.2,5.7,4.8,6.7,7.8,7.4,6.7,4.6,5.2,7.6,7.3,6.5,6.3,5.4,5.3,7,6.4,8.6,7.3,6.4,5.2,5.4,4.2,3.7,4.1,4.6,5.4,6.5,7.8,7.2,7.9,7.3,9,9.3,10.2,9.5,8.3,9.1,10.9,12.1,8.2,8.4,9.1,9.2,7.7,6.2,6.4,7.5,8.5,10.3,9,7.6,6.1,6.9,6.5,7.7,7.5,6.9,6.7,7.2,5.9,6.3,5.6,6.3,5.8,5.5,4.4,4.2,3.2,3.7,3.8,4,4.2,4.4,4.3,4,3.8,3.6,3.5,3.4,3.4,3.4,4.2,5,2.8,5,4.4,5,6.2,6.1,4.7,5.5,4.8,4.7,4.5,3,3.9,4.1,5,5.2,5.5,5.4,5,8,0,5,5,5,0,6.2,13.6,13.9,13.7,12.1,13.3,10.9,10.2,11,9.5,8.8,9.9,10.4,12.1,11.3,13.6,14.1,13.9,15.4,15.6,15.4,14.2,15.5,14.3,15.1,13,12.7,13.5,11.2,11.9,10.4,8.2,6.5,0.3,4,4.5,4.8,5.9,7,4.8,0,0,0,5.3,11.4,0,0,5,5.9,9.3,0,5,9.1,5.6,5.6,4,4,2.3,2.4,2.8,2.9,3.3,2.5,0,4.3,4,3.4,3.8,4.2,4.2,2.9,4.4,4.4,4.5,4.6,4,3.9,3.4,3.2,2.7,3.1,2.9,3.1,3.2,4,5,4.6,7,8.4,8.9,9.1,9.3,9.3,9.8,10,9.6,9.7,10.1,8.7,9.7,9.3,9.8,8.3,8.1,8.1,7.5,7.5,7.6,7.7,8.2,8.1,8,7.7,7.6,7.5,7.5,8.8,7.5,8.2,8.4,9.4,7.5,8.8,9,8,9,9.8,10.4,11.1,10.1,10.7,10.6,10.3,10.2,10.3,10.5,10.6,10.4,10.2,10.2,10.1,10.4,10.3,10.2,10.4,10.4,10.1,10,10.5,10.1,8.5,9.4,9.5,9.7,9.5,10.6,9.9,9.3,10.3,10,10,10,10.5,9.7,9.7,10,10.2,10,10.3,10.1,10,9.9,9.8,10.5,9.7,9.7,10.1,8.6,8.8,9.9,8.7,10,9.7,10.5,10.2,10.1,10.2,9.9,9.7,10.3,10.4,10.3,10.5,10.6,10.4,10.3,9.9,10,10.1,10.2,10,10,10,10,10.3,10.5,10.2,10.3,10.2,10.3,10.2,10.1,9.9,10.6,10.2,10.2,10.5,10.3,10.3,10.2,10.1,9.8,10.1,10,10.3,10.1,10.2,10.1,10.2,10.3,10.1,10.2,10.2,9.9,9.9,9.9,10.1,10.3,10,10.1,9.8,10.1,10.2,10.1,10,9.9,10.1,9.8,9.7,10.1,10,10.1,10.3,10.3,10,10,10,10.2,10.4,9.6,9.7,10.3,10.3,10.1,10.2,10.1,10.1,10.3,10.2,10.2,10.5,10.5,10.5,10.2,10.3,10.6,10.7,10.5,10.3,10.4,10.6,10.7,10.5,9.9,10.3,10.7,10.5,10.5,10.6,10.6,10.4,10.3,10.2,10.6,10.4,10.4,10.5,10.5,10.4,10.4,10.2,10.5,10.5,10.4,10.3,10.5,10.6,10.2,10.1,10.5,10.6,10.6,10.4,10.3,10.2,10.5,10.3,10.5,10,9.8,9.5,9.3,8.7,9.7,8.9,9.9,9.8,10.3,10.2,9.8,9.8,9.7,9.9,9.6,10.5,10,10.1,10.2,10.2,10,10.1,8.8,8.4,7.9,8,9.5,9,9.7,10.4,10.1,11.2,10.9,10.3,9.7,10.1,9.9,9.7,10.3,9.7,10.1,9.7,9.4,10,8.3,9.7,8.1,7.3,7.4,6.8,7,7,7.5,8.1,7.8,8.6,9.8,9.3,8.5,9.7,9.8,9.8,9.3,9.9,10.2,9.6,10,11.3,9.4,10.1,10,10,9.2,9.5,9.9,8.6,9.8,9,9.7,9.2,10.4,9.3,9.6,8.9,9.7,8.9,9.3,9.2,9.3,9.6,8.6,9.3,8.4,8.4,5.7,4.9,4,2.8,1.6,1.8,5.3,6,7.3,6.9,5.1,4.9,6.1,6.6,9.5,8.9,7.9,6.2,6.8,7.7,7.5,4.9,0,5.6,0,5.5,0,5.1,5.7,8.5,11.8,9.9,10.6,10.8,11.5,11.1,10.9,10.7,11.2,10.6,10.6,10.6,10.8,10.7,10.4,10.5,10.9,10.8,10.5,10.6,10.8,10.9,10.7,10.4,9.3,9.1,7.9,7.7,6.4,5.5,5.3,0,5,0,5,0,0,0,0,0,0,0,5,0,5,0,0,0,0,0,0,0,0,0,0,5,0,5,0,0,0,5,5,0,5,0,5,5,0,0,5,0,5,5,5,5,0,5,0,0,0,0,5,0,0,0,0,5,5,0,0,5,0,0,0,5,0,5,5,5,0,0,5,0,0,0,5,5,0,0,5,5,0,0,0,0,0,5,6.3,8.5,11.8,12.1,12.6,11.8,12,12,11.5,11.2,11.1,11.7,11.3,11.2,11.4,11.3,11.2,11.6,11.6,11.6,11.1,11.5,11.2,11,11.2,11.5,11.3,11.1,11,11,11.1,10.9,10.9,11,10.9,10.9,10.8,10.8,10.9,10.8,10.6,10.7,10.6,10.8,10.9,11,10.9,11.2,10.9,10.9,10.9,10.9,11,10.9,10.8,10.7,10.5,10.9,10.7,10.7,10.5,10.7,10.6,10.7,10.8,10.7,10.8,11,10.8,10.9,10.7,10.6,10.6,10.5,10.6,10.7,10.8,10.7,10.6,10.7,10.7,10.7,10.7,11.1,10.7,10.8,10.8,10.8,10.7,11,10.4,10.4,10.4,10.6,11,10.5,10.6,10.4,10.6,10.5,10.6,10.5,10.7,10.8,10.8,10.8,10.8,10.8,10.6,10.7,10.8,10.8,10.7,10.7,10.7,10.8,10.6,10.5,10.7,10.6,10.7,10.4,10.6,10.7,10.9,10.9,10.7,10.4,10.8,10.7,10.6,10.8,10.8,10.8,10.5,10.6,10.9,10.6,10.6,10.7,10.8,10.6,10.7,10.4,10.5,10.5,10.7,10.7,10.8,10.7,10.8,10.8,10.4,10.8,10.9,10.6,10.7,10.6,10.8,10.8,10.6,10.8,10.6,10.6,10.5,10.6,10.7,10.6,10.6,10.6,10.5,10.7,10.6,10.7,10.5,10.5,10.5,10.8,10.6,10.7,10.7,10.6,10.6,10.7,10.5,10.5,10.5,10.5,10.5,10.6,10.6,10.6,10.6,10.5,10.5,10.6,10.5,10.6,10.4,10.3,10.5,10.5,10.4,10.7,10.4,10.5,10.6,10.5,10.3,10.5,10.6,10.4,10.4,10.4,10.4,10.5,10.4,10.5,10.5,10.4,10.5,10.4,10.5,10.6,10.6,10.4,10.3,10.5,10.5,10.5,10.4,10.5,10.4,10.4,10.4,10.4,10.5,10.4,10.4,10.5,10.5,10.2,10.4,10.4,10.2,10.5,10.4,10.5,10.5,10.4,10.4,10.5,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.4,10.2,10.8,10.6,10.4,10.5,10.3,10.2,10.2,10.6,10.5,10.3,10,10.7,10.4,10.3,10.3,10.3,10.4,10.4,10.4,10.3,10.3,10.3,10.4,10.3,10.4,10.5,10.5,10.2,10.1,10.4,10.2,10.2,10.3,10.4,10.2,10.4,10.3,10.4,10.3,10.1,10.2,10.3,10.4,10.2,10.5,10.2,10.2,10.3,10.4,10.4,9.3,9.7,9.5,9.6,9.6,9.5,9.4,10.1,10,9.6,10.1,9.7,9.5,10.2,10.2,9.9,9.9,10.1,9.9,9.4,10,10,9.9,10.1,10.2,9.7,9.6,9.8,9.8,9.9,9.8,10.4,10.2,9.9,10.2,9.4,10,10.4,10.1,10,10.4,9.9,10.3,10,10.2,9.8,9.9,10,10.2,10,9.3,9.1,9.1,9.3,9.2,9.5,6.7,5.9,6,6.2,6.3,6.4,6.5,6.9,7.9,7.5,8.2,8.3,9.4,9.1,9.3,11.4,11,11,10.9,10.9,10.8,10.9,11,10.6,10.8,10.8,10.6,10.5,10.6,10.6,10.5,10.5,10.4,10.2,10.4,10.4,10.4,10.3,10.9,10.6,10.4,10.5,10.5,10.3,10.4,10.3,10.4,10.5,10.2,10.5,10.5,10.5,10.4,10.6,10.5,10.5,10.4,10.1,10.3,10.4,10.7,10.5,10.5,10.3,10.3,10.5,10.3,10.3,10.6,10.5,10.6,10.4,10.5,10.5,10.4,10.4,10.3,10.3,10.5,10.1,9.9,10.7,10.5,10.4,10.2,10.4,10.6,10.3,10.3,10.6,10,10.2,10.8,10.5,10.4,10.6,10.1,10.3,10.4,10.4,10.4,10.5,10.5,10.3,10.4,10.4,10.7,10.7,10.5,10.3,10.4,10.3,10.5,10.3,10.6,10.3,10.2,10.6,10.4,10.3,10.3,10.4,10.5,10.5,10.2,10.4,10.2,10.6,10.5,10.2,10.5,10.2,10.3,10.5,10.3,10.9,10.4,10.4,10.3,10.4,10.2,10.4,10.6,10.4,10.6,10.3,10.4,10.6,10.4,10.6,10.6,10.4,10.3,10.1,10.5,10.5,10.4,10.5,10.5,10.8,8.8,9.7,9.4,9.7,10,9.8,9.5,9.8,10,9.4,9.9,9.5,9.8,9.7,9.9,10.2,9.7,9.8,10.1,9.6,9.9,9.9,9,9.7,9.5,9.7,10.2,9.6,9.8,10.2,9.8,9.8,10,9.7,10,9.4,9.8,10.1,9.7,10,9.7,9.8,9.9,9.7,10.1,9.4,9.3,9.9,9.6,9.7,10,9.7,10.1,10.1,9.7,10.1,9.7,9.8,9.9,9.4,9.7,9.6,10.1,9.4,10,9.7,10,9.5,9.6,9.5,9.2,9.2,9.3,9.9,9.6,9.9,10.1,9.5,9.9,9.8,10.2,9.9,10.1,9.3,9.8,10.1,10.1,10.2,10.2,9.7,10.3,10.1,9.8,9.6,9.9,9.8,9.7,9.7,9.5,9.9,10.1,9.8,9.6,10.3,9.8,10.2,9.7,9.9,9.7,10.3,10.2,10.2,9.9,10.3,10.3,10.1,10.3,9.9,9.9,9.9,10,10,10,9.7,9.8,10.1,10.1,10,10.4,10.3,9.9,10,9.7,10.5,10.3,10,10.3,10.1,10.4,9.8,10.3,9.9,10.3,9.9,10.4,10.1,9.6,10,9.9,10.2,10.4,10.6,9.8,10.5,10,10.1,10.1,9.6,10.4,10.1,10.3,10.4,10,10.2,10.2,10.1,10.5,9.9,9.8,10.4,10.2,10.1,10,10,10.3,9.9,10.4,10.4,9.9,9.5,9.4,10,9.6,9.5,9.6,9.3,9.3,9.6,9.3,9.6,9.5,9.2,9.4,9.7,9,9.6,9.3,9.4,9.3,9.6,9.5,9,9.6,8.9,9.4,9.6,9.3,9.7,9.5,9.2,9.3,9.8,9.3,9.3,9.6,9.5,9.6,9.3,9.9,9.9,9.4,10.2,9.7,10.1,10.3,9.8,10.3,9.4,9.9,10.1,10.2,10.3,10,10,10.1,10.2,9.7,10,10.1,9.9,9.7,10.3,9.8,10.4,10,9.7,10.2,10.3,10.6,9.9,10.4,9.8,10,10.2,10.3,10.3,10.2,10.2,9.9,10.4,10,10.3,10.1,9.6,10.1,10.1,9.4,9.7,9.4,10,10.3,10.4,10.3,10.6])
# make ground properties hourly
lm = np.repeat(lm,24)
cm = np.repeat(cm,24)
# pipe properties
zi = 1.2 # [m] depth
yi = 0.
H1 = 20
H2 = 20
dx = 0
# initial and final ground temperature
T0 = np.zeros(nSteps)
Tcalc = np.copy(T0)
#-----------------------------------------------------------------------------------------
#
# extend all arrays to ensure whole time period is covered after transformation
#
#-----------------------------------------------------------------------------------------
alpha = lm/cm
changeInd = alpha[1:]-alpha[:-1]
changeInd = np.roll(changeInd,1)
nChange = np.count_nonzero(changeInd)
bounds = np.concatenate((np.array([0]),np.where(changeInd!=0)[0],np.array([alpha.size-1]))) # index where alpha changes
alpha_unique = np.zeros(bounds.size-1)
for i in range(bounds.size-1):
alpha_unique[i] = alpha[bounds[i]]
nsec = bounds.size-1
tmax = np.zeros(nsec-1)
for n in range(nsec-1):
p1 = 0
for i in range(0+n,nsec-1):
p1 += alpha_unique[i]*tlin[bounds[i+1]]
p2 = 0
for i in range(1+n,nsec):
p2 += alpha_unique[i]*tlin[bounds[i]]
tmax[n] = (p1-p2 + alpha_unique[nsec-1]*tlin[-1])/alpha_unique[0+n]
tmax_new = np.max(tmax)
diff = tmax_new - tlin[-1]
if diff >0:
extra_steps = int(diff/dt+1) # extra timesteps on tlin grid so that conversions cover full period
# adjust all inputs
lm = np.concatenate((lm,np.ones(extra_steps)*lm[-1]))
cm = np.concatenate((cm,np.ones(extra_steps)*cm[-1]))
alpha = lm/cm
load = np.concatenate((load,np.zeros(extra_steps)))
T0 = np.concatenate((T0,np.ones(extra_steps)*T0[-1]))
tlog = np.geomspace(dt,(nSteps+extra_steps)*dt,600)
tlin = (np.arange(nSteps+extra_steps)+1)*dt
Tcalc = np.copy(T0)
tlog = np.geomspace(dt/100,1000*365*24*3600,600)
gfunc_log = np.zeros(tlog.size)
alpha_0 = lm[0]/cm[0]
for j in range(tlog.size):
gfunc_log[j] = g_FLSjc_h(zi,zi,yi,yi+0.02,H1,H2,dx,lm[0],cm[0],tlog[j])
#--------------------------------------------------
#
# start of simulation
#
#--------------------------------------------------
tstart = time.time()
for i in range(nChange+1):
print('change', i)
start = bounds[i] # start of current section
stop = bounds[i+1] # end of current section
lm_sec = lm[start] # lm of current section
cm_sec = cm[start] # cm of current section
alpha_sec = alpha[start]
gfunc_interp = interpolate.interp1d(tlog*alpha_0/alpha_sec,gfunc_log)
gfunc_lin = 1./(2.*np.pi*lm_sec)*gfunc_interp(tlin)
# process load
load_sec = np.copy(load)
load_sec[:start] = 0. # set loads outside current section to zero
load_sec[stop:] = 0.
dload = np.copy(load_sec) # transform to load increments
dload[1:] -= np.roll(load_sec,1)[1:]
# apply FFT to calc dT
FFT_gfunc_lin = FourierSci(gfunc_lin)
FFT_dload = FourierSci(dload)
dT = np.real(invFourierSci(FFT_dload*FFT_gfunc_lin)) # temperature change
# superposition dT
Tcalc[start:stop] = Tcalc[start:stop] - dT[start:stop] # temperature change during current segment
dT0 = np.copy(dT)
# future section
for k in range(i+1,nChange+1):
n_start = bounds[k] # start of current section
n_stop = bounds[k+1] # end of current section
n_alpha = alpha[n_start] # thermal diff of next section
tlin_new = alpha_sec/n_alpha*tlin - (tlin[n_start]-dt) * (alpha_sec/n_alpha-1)
fg = interpolate.interp1d(tlin_new,dT,fill_value = 0,bounds_error = False)
n_dT = fg(tlin_o[n_start:n_stop])
n_dT_full = fg(tlin)
Tcalc[n_start:n_stop] = Tcalc[n_start:n_stop] - n_dT
dT = n_dT_full
alpha_sec = n_alpha
print('calc Time: ',time.time()-tstart)
Tcalc = Tcalc[:nSteps]
plt.plot(tlin_o/3600,alpha[:tlin_o.size]*1e6,label = 'alpha*1e6')
plt.plot(tlin_o/3600,Tcalc,label = 'dT')
plt.legend()
plt.show()