A basic FE method for the acoustic wave equation

2.3. A basic FE method for the acoustic wave equation#

download as jupyter notebook

We follow the method of lines approach for Galerkin methods to discretize the second order wave equation (2.1) on a spacial domain \(\Omega:=(0,1)\times(0,1)\).

In NGSolve the domain \((0,1)\times(0,1)\) is readily available as unit_square

# import ngsolve and webgui
from ngsolve import *
from ngsolve.webgui import Draw

# draw the unit_square shape
Draw(unit_square.shape);

but can also be generated by hand as follows

# import occ geometry tools
from netgen.occ import *

unit_square_wp = Rectangle(1,1) # this actually returns a WorkPlane object
Draw(unit_square_wp.Face());

Specifically we pick a so-called finite-element method for the spacial discretization. In our context this means that the domain \(\Omega\) is split up into a family of disjoint open subdomains \(\mathcal T\) such that

\[\bar{\Omega} = \bigcup_{T\in\mathcal T}\bar T\]

The subdomains \(T\) are usually triangles or quadrilaterals (in 2d) or tetrahedra or hexahedra (in 3d) but in theory can take any shape. The decomposition into subdomains is called meshing and the set \(\mathcal T\) is called mesh. In NGSolve this can be done as follows where the parameter maxh defines the size of the triangles.

geo = OCCGeometry(unit_square.shape, dim = 2) # explicitely state dimension, otherwise dx integrals will vanish
mesh = Mesh(geo.GenerateMesh(maxh = 0.05))
Draw(mesh);

Next we need to define basis functions for the discrete space \(V\). In this example this is done using the command H1 as follows.

V = H1(mesh)

A function \(u\in V\) is called GridFunction and is represented by a coefficient vector.

gfu = GridFunction(V)

print(gfu.vec)
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0
       0

By setting single entries of gfu.vec to one we obtain the respective basis functions.

scene = Draw (gfu)
from time import sleep
#sleep(5)

for i in range(V.ndof):
    gfu.vec[:] = 0
    gfu.vec[i] = 1
    scene.Redraw()
    #sleep(1)

We want to solve the semi-discrete weak problem to find \(u_h\in C^2([0,T];V)\)

(2.6)#\[\begin{split}\begin{aligned} \int_\Omega \partial_t^2 u_h(t,x)u_h'(x)dx+\int_\Omega\nabla u_h(t,x)\cdot\nabla u'_h(x)dx&=0,\\ u_h(0,\cdot) &= u_{h,0} \end{aligned}\end{split}\]

for all \(u_h'\in V\). Or equivalently if \(u_h,u_{h,0}\) are represented by the coefficient vectors \(\mathbf u(t)\), \(\mathbf u^0\)

(2.7)#\[\begin{split}\begin{aligned} \frac{d^2}{dt}\mathbf M \mathbf u(t)+\mathbf S\mathbf u(t) &= 0\\ \mathbf u(0) &= \mathbf u^0 \end{aligned}\end{split}\]

where the matrices \(\mathbf M,\mathbf S\) are defined by

\[\begin{aligned} (\mathbf M)_{i,j}&:=\int_\Omega b_j(x)b_i(x)dx,& (\mathbf S)_{i,j}&:=\int_\Omega \nabla b_j(x)\cdot \nabla b_i(x)dx \end{aligned}\]

for a basis \(b_0,\ldots,b_N\) of \(V\).

To this end we need to assemble the matrices \(\mathbf S,\mathbf M\). In NGSolve this can be done by

u,u_ = V.TnT() # get test and trial functions

M = BilinearForm(u*u_*dx).Assemble()
S = BilinearForm(grad(u)*grad(u_)*dx).Assemble()

print(M.mat)
Row 0:   0: 0.000208333   4: 0.000104167   79: 0.000104167
Row 1:   1: 0.000342367   22: 8.54832e-05   23: 8.57001e-05   98: 0.000171183
Row 2:   2: 0.000208333   41: 0.000104167   42: 0.000104167
Row 3:   3: 0.000341315   60: 8.54003e-05   61: 8.52571e-05   135: 0.000170657
Row 4:   0: 0.000104167   4: 0.000763462   5: 0.000126639   79: 0.000255092   80: 0.000277565
Row 5:   4: 0.000126639   5: 0.00073938   6: 0.000102417   80: 0.000267273   81: 0.000243051
Row 6:   5: 0.000102417   6: 0.000594258   7: 9.30758e-05   81: 0.000204053   82: 0.000194712
Row 7:   6: 9.30758e-05   7: 0.000547278   8: 8.94372e-05   82: 0.000184202   83: 0.000180563
Row 8:   7: 8.94372e-05   8: 0.000531263   9: 8.81101e-05   83: 0.000177521   84: 0.000176194
Row 9:   8: 8.81101e-05   9: 0.000525946   10: 8.75873e-05   84: 0.000175386   85: 0.000174863
Row 10:   9: 8.75873e-05   10: 0.000523909   11: 8.73887e-05   85: 0.000174566   86: 0.000174367
Row 11:   10: 8.73887e-05   11: 0.000523275   12: 8.73798e-05   86: 0.000174258   87: 0.000174249
Row 12:   11: 8.73798e-05   12: 0.000523056   13: 8.73503e-05   87: 0.000174178   88: 0.000174148
Row 13:   12: 8.73503e-05   13: 0.000522952   14: 8.73609e-05   88: 0.000174115   89: 0.000174126
Row 14:   13: 8.73609e-05   14: 0.000522603   15: 8.72745e-05   89: 0.000174027   90: 0.000173941
Row 15:   14: 8.72745e-05   15: 0.000521021   16: 8.69036e-05   90: 0.000173607   91: 0.000173236
Row 16:   15: 8.69036e-05   16: 0.000518299   17: 8.64754e-05   91: 0.000172674   92: 0.000172246
Row 17:   16: 8.64754e-05   17: 0.000515322   18: 8.60603e-05   92: 0.000171601   93: 0.000171185
Row 18:   17: 8.60603e-05   18: 0.000513015   19: 8.57385e-05   93: 0.000170769   94: 0.000170447
Row 19:   18: 8.57385e-05   19: 0.0005117   20: 8.53148e-05   94: 0.000170535   95: 0.000170111
Row 20:   19: 8.53148e-05   20: 0.000498635   21: 8.20445e-05   95: 0.000167273   96: 0.000164003
Row 21:   20: 8.20445e-05   21: 0.000464266   22: 7.7567e-05   96: 0.000154566   97: 0.000150088
Row 22:   1: 8.54832e-05   21: 7.7567e-05   22: 0.000469087   97: 0.000149061   98: 0.000156977
Row 23:   1: 8.57001e-05   23: 0.000471385   24: 7.82184e-05   98: 0.000157474   99: 0.000149993
Row 24:   23: 7.82184e-05   24: 0.000470957   25: 8.35656e-05   99: 0.000151913   100: 0.00015726
Row 25:   24: 8.35656e-05   25: 0.000513677   26: 8.82753e-05   100: 0.000168563   101: 0.000173273
Row 26:   25: 8.82753e-05   26: 0.000535098   27: 8.94693e-05   101: 0.00017808   102: 0.000179274
Row 27:   26: 8.94693e-05   27: 0.000536947   28: 8.91474e-05   102: 0.000179326   103: 0.000179004
Row 28:   27: 8.91474e-05   28: 0.000532249   29: 8.84193e-05   103: 0.000177705   104: 0.000176977
Row 29:   28: 8.84193e-05   29: 0.000527853   30: 8.78759e-05   104: 0.000176051   105: 0.000175507
Row 30:   29: 8.78759e-05   30: 0.000524819   31: 8.75913e-05   105: 0.000174818   106: 0.000174533
Row 31:   30: 8.75913e-05   31: 0.000523938   32: 8.7557e-05   106: 0.000174412   107: 0.000174378
Row 32:   31: 8.7557e-05   32: 0.000524859   33: 8.77186e-05   107: 0.000174711   108: 0.000174872
Row 33:   32: 8.77186e-05   33: 0.000526046   34: 8.79714e-05   108: 0.000175051   109: 0.000175304
Row 34:   33: 8.79714e-05   34: 0.000528212   35: 8.83514e-05   109: 0.000175755   110: 0.000176135
Row 35:   34: 8.83514e-05   35: 0.000531596   36: 8.88682e-05   110: 0.00017693   111: 0.000177447
Row 36:   35: 8.88682e-05   36: 0.000535362   37: 8.95445e-05   111: 0.000178137   112: 0.000178813
Row 37:   36: 8.95445e-05   37: 0.000541101   38: 9.04358e-05   112: 0.000180115   113: 0.000181006
Row 38:   37: 9.04358e-05   38: 0.000548879   39: 9.13642e-05   113: 0.000183076   114: 0.000184004
Row 39:   38: 9.13642e-05   39: 0.000553215   40: 9.11462e-05   114: 0.000185461   115: 0.000185243
Row 40:   39: 9.11462e-05   40: 0.000546593   41: 8.86457e-05   115: 0.000184651   116: 0.00018215
Row 41:   2: 0.000104167   40: 8.86457e-05   41: 0.000634166   42: 0.000228437   116: 0.000212916
Row 42:   2: 0.000104167   41: 0.000228437   42: 0.000816728   43: 8.28747e-05   116: 0.000221323   117: 0.000179927
Row 43:   42: 8.28747e-05   43: 0.000505887   44: 9.52776e-05   117: 0.000157666   118: 0.000170069
Row 44:   43: 9.52776e-05   44: 0.000585882   45: 9.90607e-05   118: 0.000193881   119: 0.000197664
Row 45:   44: 9.90607e-05   45: 0.00059059   46: 9.6029e-05   119: 0.000199266   120: 0.000196234
Row 46:   45: 9.6029e-05   46: 0.000571322   47: 9.38961e-05   120: 0.000191765   121: 0.000189632
Row 47:   46: 9.38961e-05   47: 0.000560722   48: 9.28762e-05   121: 0.000187485   122: 0.000186465
Row 48:   47: 9.28762e-05   48: 0.000556108   49: 9.23946e-05   122: 0.00018566   123: 0.000185178
Row 49:   48: 9.23946e-05   49: 0.00055317   50: 9.1926e-05   123: 0.000184659   124: 0.000184191
Row 50:   49: 9.1926e-05   50: 0.000550369   51: 9.15149e-05   124: 0.00018367   125: 0.000183258
Row 51:   50: 9.15149e-05   51: 0.000547693   52: 9.10881e-05   125: 0.000182758   126: 0.000182331
Row 52:   51: 9.10881e-05   52: 0.000544246   53: 9.04602e-05   126: 0.000181663   127: 0.000181035
Row 53:   52: 9.04602e-05   53: 0.000539253   54: 8.95555e-05   127: 0.000180071   128: 0.000179166
Row 54:   53: 8.95555e-05   54: 0.000532511   55: 8.84734e-05   128: 0.000177782   129: 0.0001767
Row 55:   54: 8.84734e-05   55: 0.000524765   56: 8.72511e-05   129: 0.000175131   130: 0.000173909
Row 56:   55: 8.72511e-05   56: 0.000517857   57: 8.6335e-05   130: 0.000172593   131: 0.000171677
Row 57:   56: 8.6335e-05   57: 0.00051289   58: 8.54452e-05   131: 0.000171   132: 0.00017011
Row 58:   57: 8.54452e-05   58: 0.000498016   59: 8.2056e-05   132: 0.000166952   133: 0.000163563
Row 59:   58: 8.2056e-05   59: 0.000463572   60: 7.75398e-05   133: 0.000154246   134: 0.00014973
Row 60:   3: 8.54003e-05   59: 7.75398e-05   60: 0.000468148   134: 0.000148674   135: 0.000156534
Row 61:   3: 8.52571e-05   61: 0.000467977   62: 7.75132e-05   135: 0.000156475   136: 0.000148732
Row 62:   61: 7.75132e-05   62: 0.000465576   63: 8.2443e-05   136: 0.000150345   137: 0.000155275
Row 63:   62: 8.2443e-05   63: 0.000505007   64: 8.65328e-05   137: 0.000165971   138: 0.00017006
Row 64:   63: 8.65328e-05   64: 0.000522515   65: 8.72903e-05   138: 0.000173967   139: 0.000174725
Row 65:   64: 8.72903e-05   65: 0.000522866   66: 8.69429e-05   139: 0.00017449   140: 0.000174143
Row 66:   65: 8.69429e-05   66: 0.000519598   67: 8.65832e-05   140: 0.000173216   141: 0.000172856
Row 67:   66: 8.65832e-05   67: 0.000517374   68: 8.65102e-05   141: 0.000172177   142: 0.000172104
Row 68:   67: 8.65102e-05   68: 0.000518479   69: 8.68042e-05   142: 0.000172435   143: 0.000172729
Row 69:   68: 8.68042e-05   69: 0.000520881   70: 8.72388e-05   143: 0.000173202   144: 0.000173636
Row 70:   69: 8.72388e-05   70: 0.000523074   71: 8.76698e-05   144: 0.000173867   145: 0.000174298
Row 71:   70: 8.76698e-05   71: 0.00052663   72: 8.81634e-05   145: 0.000175151   146: 0.000175645
Row 72:   71: 8.81634e-05   72: 0.000528806   73: 8.86626e-05   146: 0.000175741   147: 0.00017624
Row 73:   72: 8.86626e-05   73: 0.000532448   74: 8.92744e-05   147: 0.00017695   148: 0.000177561
Row 74:   73: 8.92744e-05   74: 0.000536116   75: 9.01279e-05   148: 0.00017793   149: 0.000178784
Row 75:   74: 9.01279e-05   75: 0.000543681   76: 9.17085e-05   149: 0.000180132   150: 0.000181713
Row 76:   75: 9.17085e-05   76: 0.000560497   77: 9.55241e-05   150: 0.000184724   151: 0.00018854
Row 77:   76: 9.55241e-05   77: 0.000607397   78: 0.000104691   151: 0.000199007   152: 0.000208174
Row 78:   77: 0.000104691   78: 0.00074982   79: 0.000128453   80: 0.000270219   152: 0.000246457
Row 79:   0: 0.000104167   4: 0.000255092   78: 0.000128453   79: 0.000767089   80: 0.000279378
Row 80:   4: 0.000277565   5: 0.000267273   78: 0.000270219   79: 0.000279378   80: 0.00188566   81: 0.000267144   152: 0.000269667   154: 0.000254411
Row 81:   5: 0.000243051   6: 0.000204053   80: 0.000267144   81: 0.00133548   82: 0.00019646   153: 0.000196546   154: 0.000228232
Row 82:   6: 0.000194712   7: 0.000184202   81: 0.00019646   82: 0.00111475   83: 0.000178929   153: 0.000183733   220: 0.000176713
Row 83:   7: 0.000180563   8: 0.000177521   82: 0.000178929   83: 0.00105908   84: 0.000174964   155: 0.000173087   220: 0.00017401
Row 84:   8: 0.000176194   9: 0.000175386   83: 0.000174964   84: 0.00104738   85: 0.000174169   155: 0.000173329   156: 0.000173342
Row 85:   9: 0.000174863   10: 0.000174566   84: 0.000174169   85: 0.00104404   86: 0.000173763   156: 0.000173392   157: 0.000173283
Row 86:   10: 0.000174367   11: 0.000174258   85: 0.000173763   86: 0.00104209   87: 0.000173586   157: 0.000173089   158: 0.000173022
Row 87:   11: 0.000174249   12: 0.000174178   86: 0.000173586   87: 0.00104123   88: 0.000173484   158: 0.00017288   159: 0.000172849
Row 88:   12: 0.000174148   13: 0.000174115   87: 0.000173484   88: 0.00104123   89: 0.000173564   159: 0.000172901   160: 0.000173014
Row 89:   13: 0.000174126   14: 0.000174027   88: 0.000173564   89: 0.00104033   90: 0.000173195   160: 0.000172844   161: 0.000172574
Row 90:   14: 0.000173941   15: 0.000173607   89: 0.000173195   90: 0.00103777   91: 0.000172678   161: 0.000172267   162: 0.000172084
Row 91:   15: 0.000173236   16: 0.000172674   90: 0.000172678   91: 0.0010333   92: 0.000171681   162: 0.000171735   163: 0.0001713
Row 92:   16: 0.000172246   17: 0.000171601   91: 0.000171681   92: 0.00102539   93: 0.000170071   163: 0.000170379   164: 0.000169414
Row 93:   17: 0.000171185   18: 0.000170769   92: 0.000170071   93: 0.0010159   94: 0.000168801   164: 0.000167965   165: 0.000167112
Row 94:   18: 0.000170447   19: 0.000170535   93: 0.000168801   94: 0.00101642   95: 0.000170315   165: 0.000167449   166: 0.000168875
Row 95:   19: 0.000170111   20: 0.000167273   94: 0.000170315   95: 0.00102144   96: 0.000168338   166: 0.000172271   167: 0.000173132
Row 96:   20: 0.000164003   21: 0.000154566   95: 0.000168338   96: 0.000955878   97: 0.000145874   167: 0.000168062   168: 0.000155035
Row 97:   21: 0.000150088   22: 0.000149061   96: 0.000145874   97: 0.000811087   98: 0.000126342   168: 0.000129113   169: 0.000110609
Row 98:   1: 0.000171183   22: 0.000156977   23: 0.000157474   97: 0.000126342   98: 0.000848508   99: 0.000126729   169: 0.000109803
Row 99:   23: 0.000149993   24: 0.000151913   98: 0.000126729   99: 0.000818322   100: 0.000148158   169: 0.000111011   171: 0.00013052
Row 100:   24: 0.00015726   25: 0.000168563   99: 0.000148158   100: 0.000983636   101: 0.000175371   170: 0.000175096   171: 0.000159186
Row 101:   25: 0.000173273   26: 0.00017808   100: 0.000175371   101: 0.00107959   102: 0.000181897   170: 0.000184622   172: 0.000186341
Row 102:   26: 0.000179274   27: 0.000179326   101: 0.000181897   102: 0.00108689   103: 0.000180279   172: 0.000183892   173: 0.000182221
Row 103:   27: 0.000179004   28: 0.000177705   102: 0.000180279   103: 0.00107117   104: 0.000176919   173: 0.000179663   174: 0.000177602
Row 104:   28: 0.000176977   29: 0.000176051   103: 0.000176919   104: 0.00105416   105: 0.000174803   174: 0.000175299   175: 0.00017411
Row 105:   29: 0.000175507   30: 0.000174818   104: 0.000174803   105: 0.00104402   106: 0.000173454   175: 0.000173048   176: 0.000172389
Row 106:   30: 0.000174533   31: 0.000174412   105: 0.000173454   106: 0.00104102   107: 0.000173435   176: 0.000172541   177: 0.000172643
Row 107:   31: 0.000174378   32: 0.000174711   106: 0.000173435   107: 0.0010425   108: 0.000174166   177: 0.000172705   178: 0.000173103
Row 108:   32: 0.000174872   33: 0.000175051   107: 0.000174166   108: 0.00104583   109: 0.000174536   178: 0.000173509   179: 0.0001737
Row 109:   33: 0.000175304   34: 0.000175755   108: 0.000174536   109: 0.0010507   110: 0.000175487   179: 0.000174556   180: 0.000175057
Row 110:   34: 0.000176135   35: 0.00017693   109: 0.000175487   110: 0.00105733   111: 0.000177092   180: 0.000175436   181: 0.000176246
Row 111:   35: 0.000177447   36: 0.000178137   110: 0.000177092   111: 0.00106619   112: 0.000178474   181: 0.000177174   182: 0.000177865
Row 112:   36: 0.000178813   37: 0.000180115   111: 0.000178474   112: 0.0010786   113: 0.000181034   182: 0.000179455   183: 0.000180713
Row 113:   37: 0.000181006   38: 0.000183076   112: 0.000181034   113: 0.00109899   114: 0.000185696   183: 0.000182791   184: 0.000185384
Row 114:   38: 0.000184004   39: 0.000185461   113: 0.000185696   114: 0.00113102   115: 0.000190822   184: 0.000190686   185: 0.000194354
Row 115:   39: 0.000185243   40: 0.000184651   114: 0.000190822   115: 0.0011394   116: 0.000188192   185: 0.000196265   186: 0.000194227
Row 116:   40: 0.00018215   41: 0.000212916   42: 0.000221323   115: 0.000188192   116: 0.00115559   117: 0.000176686   186: 0.000174321
Row 117:   42: 0.000179927   43: 0.000157666   116: 0.000176686   117: 0.000826764   118: 0.000153821   186: 0.000158664
Row 118:   43: 0.000170069   44: 0.000193881   117: 0.000153821   118: 0.00116217   119: 0.000217516   186: 0.000193499   188: 0.000233382
Row 119:   44: 0.000197664   45: 0.000199266   118: 0.000217516   119: 0.00127994   120: 0.000200679   187: 0.000223186   188: 0.000241625
Row 120:   45: 0.000196234   46: 0.000191765   119: 0.000200679   120: 0.00116857   121: 0.000189979   187: 0.000198073   189: 0.000191842
Row 121:   46: 0.000189632   47: 0.000187485   120: 0.000189979   121: 0.00112845   122: 0.000186848   189: 0.000187743   190: 0.000186759
Row 122:   47: 0.000186465   48: 0.00018566   121: 0.000186848   122: 0.0011171   123: 0.000185577   190: 0.000186509   191: 0.000186043
Row 123:   48: 0.000185178   49: 0.000184659   122: 0.000185577   123: 0.00111034   124: 0.000184496   191: 0.000185496   192: 0.000184934
Row 124:   49: 0.000184191   50: 0.00018367   123: 0.000184496   124: 0.00110445   125: 0.000183641   192: 0.000184392   193: 0.000184058
Row 125:   50: 0.000183258   51: 0.000182758   124: 0.000183641   125: 0.00109896   126: 0.000182668   193: 0.000183556   194: 0.000183083
Row 126:   51: 0.000182331   52: 0.000181663   125: 0.000182668   126: 0.00109227   127: 0.000181379   194: 0.000182423   195: 0.000181804
Row 127:   52: 0.000181035   53: 0.000180071   126: 0.000181379   127: 0.00108286   128: 0.000179473   195: 0.000180925   196: 0.000179982
Row 128:   53: 0.000179166   54: 0.000177782   127: 0.000179473   128: 0.00106854   129: 0.000176609   196: 0.000178497   197: 0.000177018
Row 129:   54: 0.0001767   55: 0.000175131   128: 0.000176609   129: 0.00104938   130: 0.000173092   197: 0.000174898   198: 0.000172949
Row 130:   55: 0.000173909   56: 0.000172593   129: 0.000173092   130: 0.00102908   131: 0.000170211   198: 0.00017042   199: 0.000168854
Row 131:   56: 0.000171677   57: 0.000171   130: 0.000170211   131: 0.00101917   132: 0.00016982   199: 0.000168086   200: 0.000168373
Row 132:   57: 0.00017011   58: 0.000166952   131: 0.00016982   132: 0.00101605   133: 0.000167107   200: 0.00017081   201: 0.000171255
Row 133:   58: 0.000163563   59: 0.000154246   132: 0.000167107   133: 0.000949354   134: 0.000145087   201: 0.000166027   202: 0.000153324
Row 134:   59: 0.00014973   60: 0.000148674   133: 0.000145087   134: 0.000806866   135: 0.000125634   202: 0.000128069   203: 0.000109672
Row 135:   3: 0.000170657   60: 0.000156534   61: 0.000156475   134: 0.000125634   135: 0.000843973   136: 0.000125695   203: 0.000108976
Row 136:   61: 0.000148732   62: 0.000150345   135: 0.000125695   136: 0.00081022   137: 0.000146392   203: 0.000109986   205: 0.00012907
Row 137:   62: 0.000155275   63: 0.000165971   136: 0.000146392   137: 0.000967474   138: 0.000171961   204: 0.000171375   205: 0.000156502
Row 138:   63: 0.00017006   64: 0.000173967   137: 0.000171961   138: 0.00105303   139: 0.000176621   204: 0.000179835   206: 0.000180588
Row 139:   64: 0.000174725   65: 0.00017449   138: 0.000176621   139: 0.00105406   140: 0.000174565   206: 0.00017774   207: 0.000175919
Row 140:   65: 0.000174143   66: 0.000173216   139: 0.000174565   140: 0.00103814   141: 0.000172011   207: 0.000172915   208: 0.000171288
Row 141:   66: 0.000172856   67: 0.000172177   140: 0.000172011   141: 0.0010279   142: 0.000170743   208: 0.000170351   209: 0.000169762
Row 142:   67: 0.000172104   68: 0.000172435   141: 0.000170743   142: 0.00102736   143: 0.000171672   209: 0.000169905   210: 0.000170503
Row 143:   68: 0.000172729   69: 0.000173202   142: 0.000171672   143: 0.00103211   144: 0.000172664   210: 0.000170661   211: 0.00017118
Row 144:   69: 0.000173636   70: 0.000173867   143: 0.000172664   144: 0.00103842   145: 0.000173245   211: 0.000172327   212: 0.000172678
Row 145:   70: 0.000174298   71: 0.000175151   144: 0.000173245   145: 0.0010445   146: 0.000174954   212: 0.000173   213: 0.000173856
Row 146:   71: 0.000175645   72: 0.000175741   145: 0.000174954   146: 0.00105047   147: 0.000175113   213: 0.000174476   214: 0.00017454
Row 147:   72: 0.00017624   73: 0.00017695   146: 0.000175113   147: 0.00105537   148: 0.00017648   214: 0.000174964   215: 0.000175621
Row 148:   73: 0.000177561   74: 0.00017793   147: 0.00017648   148: 0.0010602   149: 0.000177015   215: 0.000175525   216: 0.000175691
Row 149:   74: 0.000178784   75: 0.000180132   148: 0.000177015   149: 0.00106793   150: 0.000178929   216: 0.00017625   217: 0.000176816
Row 150:   75: 0.000181713   76: 0.000184724   149: 0.000178929   150: 0.00108201   151: 0.000182796   217: 0.000176495   218: 0.000177349
Row 151:   76: 0.00018854   77: 0.000199007   150: 0.000182796   151: 0.00113817   152: 0.000200195   218: 0.000180352   219: 0.000187283
Row 152:   77: 0.000208174   78: 0.000246457   80: 0.000269667   151: 0.000200195   152: 0.00135396   154: 0.000230328   219: 0.000199139
Row 153:   81: 0.000196546   82: 0.000183733   153: 0.00105892   154: 0.000188899   220: 0.000168758   251: 0.000164157   278: 0.000156829
Row 154:   80: 0.000254411   81: 0.000228232   152: 0.000230328   153: 0.000188899   154: 0.00126685   219: 0.000190114   251: 0.000174862
Row 155:   83: 0.000173087   84: 0.000173329   155: 0.00102937   156: 0.000172593   220: 0.00017018   222: 0.000171178   279: 0.000169006
Row 156:   84: 0.000173342   85: 0.000173392   155: 0.000172593   156: 0.00103689   157: 0.000172706   221: 0.000172462   222: 0.000172399
Row 157:   85: 0.000173283   86: 0.000173089   156: 0.000172706   157: 0.00103511   158: 0.000172267   221: 0.000172008   250: 0.000171761
Row 158:   86: 0.000173022   87: 0.00017288   157: 0.000172267   158: 0.00103345   159: 0.000172184   223: 0.00017158   250: 0.000171521
Row 159:   87: 0.000172849   88: 0.000172901   158: 0.000172184   159: 0.00103328   160: 0.000172249   223: 0.00017154   224: 0.000171553
Row 160:   88: 0.000173014   89: 0.000172844   159: 0.000172249   160: 0.00103286   161: 0.000171999   224: 0.000171415   225: 0.000171335
Row 161:   89: 0.000172574   90: 0.000172267   160: 0.000171999   161: 0.00103125   162: 0.000171682   225: 0.000171368   226: 0.000171358
Row 162:   90: 0.000172084   91: 0.000171735   161: 0.000171682   162: 0.00102719   163: 0.000170629   226: 0.000170885   227: 0.000170181
Row 163:   91: 0.0001713   92: 0.000170379   162: 0.000170629   163: 0.00101852   164: 0.000168696   227: 0.000169266   228: 0.000168255
Row 164:   92: 0.000169414   93: 0.000167965   163: 0.000168696   164: 0.00100415   165: 0.000165783   228: 0.000166879   229: 0.000165415
Row 165:   93: 0.000167112   94: 0.000167449   164: 0.000165783   165: 0.000985434   166: 0.000163889   229: 0.000161717   230: 0.000159485
Row 166:   94: 0.000168875   95: 0.000172271   165: 0.000163889   166: 0.00101172   167: 0.000175347   230: 0.000161639   231: 0.000169701
Row 167:   95: 0.000173132   96: 0.000168062   166: 0.000175347   167: 0.00110552   168: 0.000184972   231: 0.000194657   232: 0.000209351
Row 168:   96: 0.000155035   97: 0.000129113   167: 0.000184972   168: 0.000941441   169: 0.000114486   171: 0.000156635   232: 0.000201199
Row 169:   97: 0.000110609   98: 0.000109803   99: 0.000111011   168: 0.000114486   169: 0.000560691   171: 0.000114782
Row 170:   100: 0.000175096   101: 0.000184622   170: 0.00118019   171: 0.000190404   172: 0.000193736   232: 0.000221263   235: 0.000215069
Row 171:   99: 0.00013052   100: 0.000159186   168: 0.000156635   169: 0.000114782   170: 0.000190404   171: 0.000955117   232: 0.00020359
Row 172:   101: 0.000186341   102: 0.000183892   170: 0.000193736   172: 0.00113517   173: 0.000185108   233: 0.00018996   235: 0.000196137
Row 173:   102: 0.000182221   103: 0.000179663   172: 0.000185108   173: 0.00108857   174: 0.00017814   233: 0.000183925   234: 0.000179515
Row 174:   103: 0.000177602   104: 0.000175299   173: 0.00017814   174: 0.0010507   175: 0.00017281   234: 0.000174937   236: 0.000171911
Row 175:   104: 0.00017411   105: 0.000173048   174: 0.00017281   175: 0.00103099   176: 0.000170947   236: 0.000170437   237: 0.000169635
Row 176:   105: 0.000172389   106: 0.000172541   175: 0.000170947   176: 0.00102621   177: 0.000171482   237: 0.000169234   238: 0.000169618
Row 177:   106: 0.000172643   107: 0.000172705   176: 0.000171482   177: 0.00102918   178: 0.000171776   238: 0.00017017   239: 0.000170402
Row 178:   107: 0.000173103   108: 0.000173509   177: 0.000171776   178: 0.00103498   179: 0.000172814   239: 0.000171574   240: 0.000172205
Row 179:   108: 0.0001737   109: 0.000174556   178: 0.000172814   179: 0.00104124   180: 0.000174467   240: 0.000172453   241: 0.00017325
Row 180:   109: 0.000175057   110: 0.000175436   179: 0.000174467   180: 0.00104827   181: 0.000175207   241: 0.00017387   242: 0.000174232
Row 181:   110: 0.000176246   111: 0.000177174   180: 0.000175207   181: 0.00105814   182: 0.000177153   242: 0.00017567   243: 0.000176688
Row 182:   111: 0.000177865   112: 0.000179455   181: 0.000177153   182: 0.00107095   183: 0.000180198   243: 0.00017741   244: 0.000178867
Row 183:   112: 0.000180713   113: 0.000182791   182: 0.000180198   183: 0.001089   184: 0.000183784   244: 0.000180002   245: 0.00018151
Row 184:   113: 0.000185384   114: 0.000190686   183: 0.000183784   184: 0.00113559   185: 0.000196177   245: 0.000186232   246: 0.000193323
Row 185:   114: 0.000194354   115: 0.000196265   184: 0.000196177   185: 0.0012644   186: 0.000218465   188: 0.000239761   246: 0.000219383
Row 186:   115: 0.000194227   116: 0.000174321   117: 0.000158664   118: 0.000193499   185: 0.000218465   186: 0.00117257   188: 0.000233394
Row 187:   119: 0.000223186   120: 0.000198073   187: 0.00122802   188: 0.000235233   189: 0.000188247   248: 0.000180704   249: 0.000202576
Row 188:   118: 0.000233382   119: 0.000241625   185: 0.000239761   186: 0.000233394   187: 0.000235233   188: 0.00164326   246: 0.000234091   249: 0.000225776
Row 189:   120: 0.000191842   121: 0.000187743   187: 0.000188247   189: 0.00111155   190: 0.000185278   247: 0.000179783   248: 0.000178653
Row 190:   121: 0.000186759   122: 0.000186509   189: 0.000185278   190: 0.00111552   191: 0.000186498   247: 0.000184503   252: 0.000185973
Row 191:   122: 0.000186043   123: 0.000185496   190: 0.000186498   191: 0.00111755   192: 0.000185758   252: 0.000186972   253: 0.000186779
Row 192:   123: 0.000184934   124: 0.000184392   191: 0.000185758   192: 0.00111067   193: 0.000184427   253: 0.000185975   254: 0.000185186
Row 193:   124: 0.000184058   125: 0.000183556   192: 0.000184427   193: 0.0011036   194: 0.000183458   254: 0.000184283   255: 0.000183817
Row 194:   125: 0.000183083   126: 0.000182423   193: 0.000183458   194: 0.00109799   195: 0.000182457   255: 0.000183457   256: 0.000183116
Row 195:   126: 0.000181804   127: 0.000180925   194: 0.000182457   195: 0.00109029   196: 0.000180842   256: 0.000182499   257: 0.000181762
Row 196:   127: 0.000179982   128: 0.000178497   195: 0.000180842   196: 0.00107664   197: 0.000177835   257: 0.000180502   258: 0.00017898
Row 197:   128: 0.000177018   129: 0.000174898   196: 0.000177835   197: 0.00105422   198: 0.000173292   258: 0.000176803   259: 0.000174379
Row 198:   129: 0.000172949   130: 0.00017042   197: 0.000173292   198: 0.00102261   199: 0.000167415   259: 0.000170939   260: 0.000167593
Row 199:   130: 0.000168854   131: 0.000168086   198: 0.000167415   199: 0.000988411   200: 0.000163204   260: 0.000162147   261: 0.000158704
Row 200:   131: 0.000168373   132: 0.00017081   199: 0.000163204   200: 0.00100257   201: 0.000172961   261: 0.000159951   262: 0.000167271
Row 201:   132: 0.000171255   133: 0.000166027   200: 0.000172961   201: 0.00108777   202: 0.000181851   262: 0.000190778   263: 0.000204895
Row 202:   133: 0.000153324   134: 0.000128069   201: 0.000181851   202: 0.000927741   203: 0.000113319   205: 0.00015395   263: 0.000197227
Row 203:   134: 0.000109672   135: 0.000108976   136: 0.000109986   202: 0.000113319   203: 0.00055561   205: 0.000113656
Row 204:   137: 0.000171375   138: 0.000179835   204: 0.00114722   205: 0.000186019   206: 0.000187113   263: 0.000215124   266: 0.000207758
Row 205:   136: 0.00012907   137: 0.000156502   202: 0.00015395   203: 0.000113656   204: 0.000186019   205: 0.000938077   263: 0.000198881
Row 206:   138: 0.000180588   139: 0.00017774   204: 0.000187113   206: 0.00109091   207: 0.000177467   264: 0.000180601   266: 0.000187398
Row 207:   139: 0.000175919   140: 0.000172915   206: 0.000177467   207: 0.00104071   208: 0.000169994   264: 0.000174443   265: 0.000169973
Row 208:   140: 0.000171288   141: 0.000170351   207: 0.000169994   208: 0.00101326   209: 0.000168174   265: 0.000167166   267: 0.000166283
Row 209:   141: 0.000169762   142: 0.000169905   208: 0.000168174   209: 0.00100817   210: 0.00016871   267: 0.000165612   268: 0.000166005
Row 210:   142: 0.000170503   143: 0.000170661   209: 0.00016871   210: 0.00101555   211: 0.000169554   268: 0.000167718   269: 0.000168404
Row 211:   143: 0.00017118   144: 0.000172327   210: 0.000169554   211: 0.00102619   212: 0.000172143   269: 0.000169774   270: 0.000171216
Row 212:   144: 0.000172678   145: 0.000173   211: 0.000172143   212: 0.00103324   213: 0.000172677   270: 0.000171264   271: 0.000171476
Row 213:   145: 0.000173856   146: 0.000174476   212: 0.000172677   213: 0.00104157   214: 0.000173969   271: 0.000172962   272: 0.000173633
Row 214:   146: 0.00017454   147: 0.000174964   213: 0.000173969   214: 0.00104445   215: 0.000174672   272: 0.000173011   273: 0.00017329
Row 215:   147: 0.000175621   148: 0.000175525   214: 0.000174672   215: 0.00104853   216: 0.000174439   273: 0.000174203   274: 0.000174065
Row 216:   148: 0.000175691   149: 0.00017625   215: 0.000174439   216: 0.00105065   217: 0.000175311   274: 0.000174323   275: 0.000174635
Row 217:   149: 0.000176816   150: 0.000176495   216: 0.000175311   217: 0.00104433   218: 0.000172578   275: 0.000172772   276: 0.000170361
Row 218:   150: 0.000177349   151: 0.000180352   217: 0.000172578   218: 0.00102882   219: 0.000172082   276: 0.000164981   277: 0.000161482
Row 219:   151: 0.000187283   152: 0.000199139   154: 0.000190114   218: 0.000172082   219: 0.0010727   251: 0.000165128   277: 0.000158952
Row 220:   82: 0.000176713   83: 0.00017401   153: 0.000168758   155: 0.00017018   220: 0.00101142   278: 0.000158818   279: 0.000162943
Row 221:   156: 0.000172462   157: 0.000172008   221: 0.00102977   222: 0.000172241   250: 0.000170965   328: 0.000171456   329: 0.000170635
Row 222:   155: 0.000171178   156: 0.000172399   221: 0.000172241   222: 0.00103541   279: 0.00017134   328: 0.000173968   330: 0.000174288
Row 223:   158: 0.00017158   159: 0.00017154   223: 0.00102401   224: 0.000170682   250: 0.000170687   282: 0.000169777   332: 0.000169742
Row 224:   159: 0.000171553   160: 0.000171415   223: 0.000170682   224: 0.00102488   225: 0.000170877   281: 0.000170343   282: 0.00017001
Row 225:   160: 0.000171335   161: 0.000171368   224: 0.000170877   225: 0.00102508   226: 0.000170751   281: 0.000170452   327: 0.000170294
Row 226:   161: 0.000171358   162: 0.000170885   225: 0.000170751   226: 0.00102192   227: 0.00016978   283: 0.000169322   327: 0.000169821
Row 227:   162: 0.000170181   163: 0.000169266   226: 0.00016978   227: 0.00101532   228: 0.000168552   283: 0.000168929   284: 0.000168616
Row 228:   163: 0.000168255   164: 0.000166879   227: 0.000168552   228: 0.00100445   229: 0.000165787   284: 0.000168185   285: 0.000166796
Row 229:   164: 0.000165415   165: 0.000161717   228: 0.000165787   229: 0.000975578   230: 0.000157709   285: 0.000164665   286: 0.000160285
Row 230:   165: 0.000159485   166: 0.000161639   229: 0.000157709   230: 0.000906868   231: 0.000149148   286: 0.000144801   287: 0.000134086
Row 231:   166: 0.000169701   167: 0.000194657   230: 0.000149148   231: 0.00105202   232: 0.000215986   280: 0.000182207   287: 0.000140324
Row 232:   167: 0.000209351   168: 0.000201199   170: 0.000221263   171: 0.00020359   231: 0.000215986   232: 0.00150788   235: 0.000231072   280: 0.000225414
Row 233:   172: 0.00018996   173: 0.000183925   233: 0.00112481   234: 0.000180414   235: 0.00019572   290: 0.00018276   291: 0.000192031
Row 234:   173: 0.000179515   174: 0.000174937   233: 0.000180414   234: 0.00104915   236: 0.000170158   290: 0.000174902   292: 0.000169224
Row 235:   170: 0.000215069   172: 0.000196137   232: 0.000231072   233: 0.00019572   235: 0.00124833   280: 0.000213374   291: 0.000196953
Row 236:   174: 0.000171911   175: 0.000170437   234: 0.000170158   236: 0.00100926   237: 0.000167307   288: 0.000164033   292: 0.00016541
Row 237:   175: 0.000169635   176: 0.000169234   236: 0.000167307   237: 0.00100147   238: 0.000167118   288: 0.000163981   293: 0.000164193
Row 238:   176: 0.000169618   177: 0.00017017   237: 0.000167118   238: 0.00100986   239: 0.000169063   293: 0.00016625   294: 0.000167642
Row 239:   177: 0.000170402   178: 0.000171574   238: 0.000169063   239: 0.00102128   240: 0.000171505   294: 0.000168736   295: 0.000170005
Row 240:   178: 0.000172205   179: 0.000172453   239: 0.000171505   240: 0.00102944   241: 0.000171828   295: 0.000170689   296: 0.000170764
Row 241:   179: 0.00017325   180: 0.00017387   240: 0.000171828   241: 0.00103612   242: 0.000173067   296: 0.000171745   297: 0.000172364
Row 242:   180: 0.000174232   181: 0.00017567   241: 0.000173067   242: 0.00104604   243: 0.000176044   297: 0.000172742   298: 0.000174281
Row 243:   181: 0.000176688   182: 0.00017741   242: 0.000176044   243: 0.00106117   244: 0.000177891   298: 0.000176004   299: 0.000177128
Row 244:   182: 0.000178867   183: 0.000180002   243: 0.000177891   244: 0.0010733   245: 0.000179248   299: 0.000178534   300: 0.000178756
Row 245:   183: 0.00018151   184: 0.000186232   244: 0.000179248   245: 0.0010802   246: 0.000183792   300: 0.0001748   301: 0.000174621
Row 246:   184: 0.000193323   185: 0.000219383   188: 0.000234091   245: 0.000183792   246: 0.00120857   249: 0.000201108   301: 0.000176869
Row 247:   189: 0.000179783   190: 0.000184503   247: 0.00109313   248: 0.00017367   252: 0.000188234   302: 0.000178549   306: 0.000188393
Row 248:   187: 0.000180704   189: 0.000178653   247: 0.00017367   248: 0.000973734   249: 0.000156268   302: 0.000151946   304: 0.000132494
Row 249:   187: 0.000202576   188: 0.000225776   246: 0.000201108   248: 0.000156268   249: 0.0010728   301: 0.000154355   304: 0.000132714
Row 250:   157: 0.000171761   158: 0.000171521   221: 0.000170965   223: 0.000170687   250: 0.00102455   329: 0.000169825   332: 0.000169788
Row 251:   153: 0.000164157   154: 0.000174862   219: 0.000165128   251: 0.000889958   277: 0.000135307   278: 0.00013481   331: 0.000115695
Row 252:   190: 0.000185973   191: 0.000186972   247: 0.000188234   252: 0.00113326   253: 0.00018792   303: 0.000191422   306: 0.000192735
Row 253:   191: 0.000186779   192: 0.000185975   252: 0.00018792   253: 0.00112097   254: 0.000185692   303: 0.000188014   305: 0.000186591
Row 254:   192: 0.000185186   193: 0.000184283   253: 0.000185692   254: 0.00110935   255: 0.000184275   305: 0.000185217   307: 0.000184702
Row 255:   193: 0.000183817   194: 0.000183457   254: 0.000184275   255: 0.00110436   256: 0.00018388   307: 0.000184485   308: 0.00018445
Row 256:   194: 0.000183116   195: 0.000182499   255: 0.00018388   256: 0.00110114   257: 0.00018302   308: 0.000184436   309: 0.000184192
Row 257:   195: 0.000181762   196: 0.000180502   256: 0.00018302   257: 0.00109192   258: 0.000180526   309: 0.000183672   310: 0.000182439
Row 258:   196: 0.00017898   197: 0.000176803   257: 0.000180526   258: 0.00107088   259: 0.000176101   310: 0.000180361   311: 0.000178113
Row 259:   197: 0.000174379   198: 0.000170939   258: 0.000176101   259: 0.00103697   260: 0.000168994   311: 0.000175113   312: 0.000171446
Row 260:   198: 0.000167593   199: 0.000162147   259: 0.000168994   260: 0.000982572   261: 0.000157061   312: 0.000166631   313: 0.000160145
Row 261:   199: 0.000158704   200: 0.000159951   260: 0.000157061   261: 0.00089574   262: 0.000146253   313: 0.000142913   314: 0.000130857
Row 262:   200: 0.000167271   201: 0.000190778   261: 0.000146253   262: 0.00102462   263: 0.000209149   289: 0.000175278   314: 0.000135889
Row 263:   201: 0.000204895   202: 0.000197227   204: 0.000215124   205: 0.000198881   262: 0.000209149   263: 0.00146499   266: 0.000223043   289: 0.000216674
Row 264:   206: 0.000180601   207: 0.000174443   264: 0.00105482   265: 0.000168685   266: 0.000184118   316: 0.000168848   317: 0.000178123
Row 265:   207: 0.000169973   208: 0.000167166   264: 0.000168685   265: 0.000987554   267: 0.000162516   316: 0.000161288   318: 0.000157926
Row 266:   204: 0.000207758   206: 0.000187398   263: 0.000223043   264: 0.000184118   266: 0.00119043   289: 0.000203338   317: 0.000184772
Row 267:   208: 0.000166283   209: 0.000165612   265: 0.000162516   267: 0.000974633   268: 0.000162722   315: 0.000159189   318: 0.000158312
Row 268:   209: 0.000166005   210: 0.000167718   267: 0.000162722   268: 0.000990916   269: 0.000167244   315: 0.000162209   319: 0.000165018
Row 269:   210: 0.000168404   211: 0.000169774   268: 0.000167244   269: 0.00101005   270: 0.000170043   319: 0.000166578   320: 0.000168007
Row 270:   211: 0.000171216   212: 0.000171264   269: 0.000170043   270: 0.00102333   271: 0.000170372   320: 0.000170079   321: 0.000170361
Row 271:   212: 0.000171476   213: 0.000172962   270: 0.000170372   271: 0.00103075   272: 0.000173268   321: 0.000170633   322: 0.000172043
Row 272:   213: 0.000173633   214: 0.000173011   271: 0.000173268   272: 0.00103608   273: 0.000171884   322: 0.000172523   323: 0.000171761
Row 273:   214: 0.00017329   215: 0.000174203   272: 0.000171884   273: 0.00103762   274: 0.000173606   323: 0.000171913   324: 0.000172722
Row 274:   215: 0.000174065   216: 0.000174323   273: 0.000173606   274: 0.00104238   275: 0.000174473   324: 0.000172652   325: 0.000173263
Row 275:   216: 0.000174635   217: 0.000172772   274: 0.000174473   275: 0.00104535   276: 0.000172155   325: 0.000175885   326: 0.00017543
Row 276:   217: 0.000170361   218: 0.000164981   275: 0.000172155   276: 0.000996677   277: 0.000157249   326: 0.000170729   333: 0.000161203
Row 277:   218: 0.000161482   219: 0.000158952   251: 0.000135307   276: 0.000157249   277: 0.000865834   331: 0.000116717   333: 0.000136128
Row 278:   153: 0.000156829   220: 0.000158818   251: 0.00013481   278: 0.00085886   279: 0.000155691   331: 0.00011691   369: 0.000135802
Row 279:   155: 0.000169006   220: 0.000162943   222: 0.00017134   278: 0.000155691   279: 0.000989389   330: 0.000169997   369: 0.000160412
Row 280:   231: 0.000182207   232: 0.000225414   235: 0.000213374   280: 0.00117401   287: 0.000155712   291: 0.000205881   374: 0.000191426
Row 281:   224: 0.000170343   225: 0.000170452   281: 0.00101798   282: 0.000169517   327: 0.000169753   339: 0.000168897   373: 0.000169023
Row 282:   223: 0.000169777   224: 0.00017001   281: 0.000169517   282: 0.00101568   332: 0.000169044   339: 0.000168787   377: 0.000168547
Row 283:   226: 0.000169322   227: 0.000168929   283: 0.00101382   284: 0.000168265   327: 0.000169567   336: 0.000168416   372: 0.000169325
Row 284:   227: 0.000168616   228: 0.000168185   283: 0.000168265   284: 0.00100698   285: 0.000167579   335: 0.000167038   336: 0.000167294
Row 285:   228: 0.000166796   229: 0.000164665   284: 0.000167579   285: 0.00100349   286: 0.000166202   335: 0.000168746   349: 0.000169501
Row 286:   229: 0.000160285   230: 0.000144801   285: 0.000166202   286: 0.000979564   287: 0.000145342   349: 0.000184155   374: 0.000178779
Row 287:   230: 0.000134086   231: 0.000140324   280: 0.000155712   286: 0.000145342   287: 0.00073819   374: 0.000162726
Row 288:   236: 0.000164033   237: 0.000163981   288: 0.000957821   292: 0.000158719   293: 0.000160806   359: 0.000154072   360: 0.00015621
Row 289:   262: 0.000175278   263: 0.000216674   266: 0.000203338   289: 0.0011198   314: 0.000149518   317: 0.000193708   379: 0.000181284
Row 290:   233: 0.00018276   234: 0.000174902   290: 0.0010459   291: 0.00018427   292: 0.000165868   361: 0.000163777   371: 0.000174321
Row 291:   233: 0.000192031   235: 0.000196953   280: 0.000205881   290: 0.00018427   291: 0.00119106   371: 0.000197619   374: 0.000214308
Row 292:   234: 0.000169224   236: 0.00016541   288: 0.000158719   290: 0.000165868   292: 0.000968146   359: 0.000152795   361: 0.000156129
Row 293:   237: 0.000164193   238: 0.00016625   288: 0.000160806   293: 0.00097952   294: 0.00016597   337: 0.000162705   360: 0.000159597
Row 294:   238: 0.000167642   239: 0.000168736   293: 0.00016597   294: 0.00100353   295: 0.000168501   337: 0.000165621   341: 0.000167059
Row 295:   239: 0.000170005   240: 0.000170689   294: 0.000168501   295: 0.0010184   296: 0.000170065   341: 0.000169128   342: 0.000170008
Row 296:   240: 0.000170764   241: 0.000171745   295: 0.000170065   296: 0.00102345   297: 0.000171373   342: 0.000169589   343: 0.000169916
Row 297:   241: 0.000172364   242: 0.000172742   296: 0.000171373   297: 0.00102723   298: 0.000171712   343: 0.000169537   344: 0.000169498
Row 298:   242: 0.000174281   243: 0.000176004   297: 0.000171712   298: 0.00104466   299: 0.000176197   344: 0.000171852   345: 0.000174615
Row 299:   243: 0.000177128   244: 0.000178534   298: 0.000176197   299: 0.00107576   300: 0.000181511   345: 0.000179241   346: 0.000183148
Row 300:   244: 0.000178756   245: 0.0001748   299: 0.000181511   300: 0.0010623   301: 0.000170198   346: 0.000182193   347: 0.000174837
Row 301:   245: 0.000174621   246: 0.000176869   249: 0.000154355   300: 0.000170198   301: 0.000959697   304: 0.000132781   347: 0.000150872
Row 302:   247: 0.000178549   248: 0.000151946   302: 0.00105918   304: 0.000134302   306: 0.000204576   347: 0.000173066   358: 0.000216737
Row 303:   252: 0.000191422   253: 0.000188014   303: 0.00114944   305: 0.00018708   306: 0.000196686   351: 0.000196217   368: 0.000190019
Row 304:   248: 0.000132494   249: 0.000132714   301: 0.000132781   302: 0.000134302   304: 0.000666591   347: 0.000134299
Row 305:   253: 0.000186591   254: 0.000185217   303: 0.00018708   305: 0.0011109   307: 0.00018398   350: 0.000183155   368: 0.000184881
Row 306:   247: 0.000188393   252: 0.000192735   302: 0.000204576   303: 0.000196686   306: 0.00123169   351: 0.000218534   358: 0.000230766
Row 307:   254: 0.000184702   255: 0.000184485   305: 0.00018398   307: 0.00110413   308: 0.000184454   348: 0.0001836   350: 0.000182908
Row 308:   255: 0.00018445   256: 0.000184436   307: 0.000184454   308: 0.00111048   309: 0.000185587   348: 0.000185203   352: 0.00018635
Row 309:   256: 0.000184192   257: 0.000183672   308: 0.000185587   309: 0.001114   310: 0.000185236   352: 0.000187573   353: 0.000187742
Row 310:   257: 0.000182439   258: 0.000180361   309: 0.000185236   310: 0.00110055   311: 0.00018113   353: 0.000186708   354: 0.000184681
Row 311:   258: 0.000178113   259: 0.000175113   310: 0.00018113   311: 0.00106714   312: 0.00017405   354: 0.000181406   355: 0.000177325
Row 312:   259: 0.000171446   260: 0.000166631   311: 0.00017405   312: 0.00102193   313: 0.000165845   355: 0.000173676   356: 0.000170286
Row 313:   260: 0.000160145   261: 0.000142913   312: 0.000165845   313: 0.000962611   314: 0.000141217   356: 0.000179944   379: 0.000172547
Row 314:   261: 0.000130857   262: 0.000135889   289: 0.000149518   313: 0.000141217   314: 0.000714047   379: 0.000156566
Row 315:   267: 0.000159189   268: 0.000162209   315: 0.000949112   318: 0.000154758   319: 0.000162317   338: 0.00015305   340: 0.000157589
Row 316:   264: 0.000168848   265: 0.000161288   316: 0.000939859   317: 0.00016607   318: 0.000149762   334: 0.000142571   376: 0.00015132
Row 317:   264: 0.000178123   266: 0.000184772   289: 0.000193708   316: 0.00016607   317: 0.00109282   376: 0.000174579   379: 0.000195568
Row 318:   265: 0.000157926   267: 0.000158312   315: 0.000154758   316: 0.000149762   318: 0.000909604   334: 0.000142117   338: 0.000146728
Row 319:   268: 0.000165018   269: 0.000166578   315: 0.000162317   319: 0.00098884   320: 0.000166314   340: 0.000163088   357: 0.000165525
Row 320:   269: 0.000168007   270: 0.000170079   319: 0.000166314   320: 0.00101364   321: 0.000170699   357: 0.000168112   362: 0.000170424
Row 321:   270: 0.000170361   271: 0.000170633   320: 0.000170699   321: 0.0010227   322: 0.000170809   362: 0.00017018   363: 0.000170018
Row 322:   271: 0.000172043   272: 0.000172523   321: 0.000170809   322: 0.00103069   323: 0.000171832   363: 0.000171469   364: 0.000172013
Row 323:   272: 0.000171761   273: 0.000171913   322: 0.000171832   323: 0.00102769   324: 0.000171564   364: 0.000170518   365: 0.000170097
Row 324:   273: 0.000172722   274: 0.000172652   323: 0.000171564   324: 0.0010273   325: 0.000170874   365: 0.000170052   366: 0.000169432
Row 325:   274: 0.000173263   275: 0.000175885   324: 0.000170874   325: 0.00104653   326: 0.000178358   366: 0.000171646   367: 0.000176507
Row 326:   275: 0.00017543   276: 0.000170729   325: 0.000178358   326: 0.00111272   333: 0.000185226   367: 0.000195703   378: 0.000207273
Row 327:   225: 0.000170294   226: 0.000169821   281: 0.000169753   283: 0.000169567   327: 0.00101837   372: 0.00016961   373: 0.000169323
Row 328:   221: 0.000171456   222: 0.000173968   328: 0.00103646   329: 0.000169684   330: 0.000176855   370: 0.000174579   375: 0.000169919
Row 329:   221: 0.000170635   250: 0.000169825   328: 0.000169684   329: 0.00101346   332: 0.000168699   375: 0.000167398   407: 0.000167222
Row 330:   222: 0.000174288   279: 0.000169997   328: 0.000176855   330: 0.00110833   369: 0.000184505   370: 0.000195373   378: 0.000207313
Row 331:   251: 0.000115695   277: 0.000116717   278: 0.00011691   331: 0.000587881   333: 0.000119166   369: 0.000119395
Row 332:   223: 0.000169742   250: 0.000169788   282: 0.000169044   329: 0.000168699   332: 0.00101334   377: 0.000168227   407: 0.000167836
Row 333:   276: 0.000161203   277: 0.000136128   326: 0.000185226   331: 0.000119166   333: 0.000953605   369: 0.000155449   378: 0.000196434
Row 334:   316: 0.000142571   318: 0.000142117   334: 0.00077104   338: 0.0001371   376: 0.000125267   381: 0.000118136   414: 0.000105849
Row 335:   284: 0.000167038   285: 0.000168746   335: 0.000994431   336: 0.000165774   349: 0.000167606   390: 0.000162695   408: 0.000162571
Row 336:   283: 0.000168416   284: 0.000167294   335: 0.000165774   336: 0.00100324   372: 0.000168744   408: 0.000165581   410: 0.000167429
Row 337:   293: 0.000162705   294: 0.000165621   337: 0.000981212   341: 0.000166566   360: 0.000159195   393: 0.000165791   401: 0.000161335
Row 338:   315: 0.00015305   318: 0.000146728   334: 0.0001371   338: 0.00087724   340: 0.00015366   381: 0.000138232   383: 0.00014847
Row 339:   281: 0.000168897   282: 0.000168787   339: 0.00100912   373: 0.000168568   377: 0.000167829   415: 0.000167206   417: 0.000167835
Row 340:   315: 0.000157589   319: 0.000163088   338: 0.00015366   340: 0.000964136   357: 0.000165872   383: 0.000158607   397: 0.00016532
Row 341:   294: 0.000167059   295: 0.000169128   337: 0.000166566   341: 0.0010126   342: 0.000170539   380: 0.000170604   393: 0.0001687
Row 342:   295: 0.000170008   296: 0.000169589   341: 0.000170539   342: 0.00101803   343: 0.000168657   380: 0.000170351   384: 0.000168887
Row 343:   296: 0.000169916   297: 0.000169537   342: 0.000168657   343: 0.00100677   344: 0.000166546   384: 0.000166921   385: 0.000165189
Row 344:   297: 0.000169498   298: 0.000171852   343: 0.000166546   344: 0.0010061   345: 0.00017051   385: 0.000163043   386: 0.000164652
Row 345:   298: 0.000174615   299: 0.000179241   344: 0.00017051   345: 0.00105693   346: 0.000183631   386: 0.000170218   387: 0.000178713
Row 346:   299: 0.000183148   300: 0.000182193   345: 0.000183631   346: 0.00117931   347: 0.000200022   358: 0.000223828   387: 0.000206483
Row 347:   300: 0.000174837   301: 0.000150872   302: 0.000173066   304: 0.000134299   346: 0.000200022   347: 0.00104792   358: 0.000214824
Row 348:   307: 0.0001836   308: 0.000185203   348: 0.00110554   350: 0.000181985   352: 0.000186761   391: 0.00018241   394: 0.000185583
Row 349:   285: 0.000169501   286: 0.000184155   335: 0.000167606   349: 0.00107193   374: 0.000201593   389: 0.000184203   390: 0.00016487
Row 350:   305: 0.000183155   307: 0.000182908   348: 0.000181985   350: 0.00108624   368: 0.000181031   391: 0.00017918   411: 0.00017798
Row 351:   303: 0.000196217   306: 0.000218534   351: 0.00123   358: 0.000233392   368: 0.000189132   399: 0.000207334   416: 0.000185391
Row 352:   308: 0.00018635   309: 0.000187573   348: 0.000186761   352: 0.00113565   353: 0.00019132   388: 0.000193492   394: 0.000190156
Row 353:   309: 0.000187742   310: 0.000186708   352: 0.00019132   353: 0.00114756   354: 0.000189802   382: 0.000195749   388: 0.000196234
Row 354:   310: 0.000184681   311: 0.000181406   353: 0.000189802   354: 0.00111757   355: 0.00018188   382: 0.000192225   395: 0.000187578
Row 355:   311: 0.000177325   312: 0.000173676   354: 0.00018188   355: 0.00105867   356: 0.00017239   395: 0.000179619   396: 0.000173778
Row 356:   312: 0.000170286   313: 0.000179944   355: 0.00017239   356: 0.00105261   379: 0.000189816   396: 0.000166202   409: 0.000173971
Row 357:   319: 0.000165525   320: 0.000168112   340: 0.000165872   357: 0.00100761   362: 0.000170195   392: 0.000169823   397: 0.000168087
Row 358:   302: 0.000216737   306: 0.000230766   346: 0.000223828   347: 0.000214824   351: 0.000233392   358: 0.00157213   387: 0.000226159   399: 0.000226427
Row 359:   288: 0.000154072   292: 0.000152795   359: 0.00087484   360: 0.000150144   361: 0.000143341   400: 0.000134481   406: 0.000140007
Row 360:   288: 0.00015621   293: 0.000159597   337: 0.000159195   359: 0.000150144   360: 0.000927864   401: 0.00015419   406: 0.000148527
Row 361:   290: 0.000163777   292: 0.000156129   359: 0.000143341   361: 0.000892837   371: 0.000157402   400: 0.000132887   418: 0.0001393
Row 362:   320: 0.000170424   321: 0.00017018   357: 0.000170195   362: 0.00102213   363: 0.000169523   392: 0.000171119   398: 0.00017069
Row 363:   321: 0.000170018   322: 0.000171469   362: 0.000169523   363: 0.00102499   364: 0.00017223   398: 0.000170249   402: 0.000171505
Row 364:   322: 0.000172013   323: 0.000170518   363: 0.00017223   364: 0.00102577   365: 0.000169241   402: 0.000171632   403: 0.000170137
Row 365:   323: 0.000170097   324: 0.000170052   364: 0.000169241   365: 0.00101367   366: 0.000167967   403: 0.000168769   404: 0.000167542
Row 366:   324: 0.000169432   325: 0.000171646   365: 0.000167967   366: 0.000997444   367: 0.000167765   404: 0.000161526   405: 0.000159109
Row 367:   325: 0.000176507   326: 0.000195703   366: 0.000167765   367: 0.00108508   378: 0.000205869   405: 0.000160164   412: 0.000179073
Row 368:   303: 0.000190019   305: 0.000184881   350: 0.000181031   351: 0.000189132   368: 0.00110208   411: 0.00017703   416: 0.000179992
Row 369:   278: 0.000135802   279: 0.000160412   330: 0.000184505   331: 0.000119395   333: 0.000155449   369: 0.00095151   378: 0.000195948
Row 370:   328: 0.000174579   330: 0.000195373   370: 0.00107795   375: 0.000165332   378: 0.000206303   412: 0.000178273   413: 0.000158096
Row 371:   290: 0.000174321   291: 0.000197619   361: 0.000157402   371: 0.00106516   374: 0.000207148   389: 0.000177561   418: 0.000151113
Row 372:   283: 0.000169325   327: 0.00016961   336: 0.000168744   372: 0.00101668   373: 0.000169702   410: 0.000169313   428: 0.000169987
Row 373:   281: 0.000169023   327: 0.000169323   339: 0.000168568   372: 0.000169702   373: 0.00101536   417: 0.000168955   428: 0.000169789
Row 374:   280: 0.000191426   286: 0.000178779   287: 0.000162726   291: 0.000214308   349: 0.000201593   371: 0.000207148   374: 0.00135893   389: 0.000202947
Row 375:   328: 0.000169919   329: 0.000167398   370: 0.000165332   375: 0.000984048   407: 0.000165064   413: 0.000157041   449: 0.000159294
Row 376:   316: 0.00015132   317: 0.000174579   334: 0.000125267   376: 0.000888198   379: 0.00018192   409: 0.000144253   414: 0.000110859
Row 377:   282: 0.000168547   332: 0.000168227   339: 0.000167829   377: 0.00100657   407: 0.000167554   415: 0.000167185   431: 0.000167229
Row 378:   326: 0.000207273   330: 0.000207313   333: 0.000196434   367: 0.000205869   369: 0.000195948   370: 0.000206303   378: 0.00141884   412: 0.0001997
Row 379:   289: 0.000181284   313: 0.000172547   314: 0.000156566   317: 0.000195568   356: 0.000189816   376: 0.00018192   379: 0.00125934   409: 0.000181636
Row 380:   341: 0.000170604   342: 0.000170351   380: 0.00103448   384: 0.000171114   393: 0.000171845   420: 0.000175045   439: 0.000175522
Row 381:   334: 0.000118136   338: 0.000138232   381: 0.000775071   383: 0.00014622   414: 0.000103882   421: 0.000145422   445: 0.00012318
Row 382:   353: 0.000195749   354: 0.000192225   382: 0.00122059   388: 0.000205788   395: 0.000197579   425: 0.000216964   434: 0.00021228
Row 383:   338: 0.00014847   340: 0.000158607   381: 0.00014622   383: 0.000946463   397: 0.00016676   421: 0.000158002   436: 0.000168404
Row 384:   342: 0.000168887   343: 0.000166921   380: 0.000171114   384: 0.00100901   385: 0.000164742   419: 0.000166469   420: 0.000170875
Row 385:   343: 0.000165189   344: 0.000163043   384: 0.000164742   385: 0.000955056   386: 0.000155332   419: 0.000157007   422: 0.000149743
Row 386:   344: 0.000164652   345: 0.000170218   385: 0.000155332   386: 0.000953366   387: 0.000165758   422: 0.000146272   423: 0.000151134
Row 387:   345: 0.000178713   346: 0.000206483   358: 0.000226159   386: 0.000165758   387: 0.00113539   399: 0.000195456   423: 0.000162825
Row 388:   352: 0.000193492   353: 0.000196234   382: 0.000205788   388: 0.00120965   394: 0.000195559   425: 0.000213032   448: 0.000205546
Row 389:   349: 0.000184203   371: 0.000177561   374: 0.000202947   389: 0.00100349   390: 0.000154669   418: 0.00014413   426: 0.000139983
Row 390:   335: 0.000162695   349: 0.00016487   389: 0.000154669   390: 0.000929892   408: 0.000157453   424: 0.000147581   426: 0.000142623
Row 391:   348: 0.00018241   350: 0.00017918   391: 0.00106714   394: 0.000182691   411: 0.000173792   441: 0.0001717   443: 0.000177368
Row 392:   357: 0.000169823   362: 0.000171119   392: 0.00103308   397: 0.000171021   398: 0.0001723   430: 0.000174417   432: 0.0001744
Row 393:   337: 0.000165791   341: 0.0001687   380: 0.000171845   393: 0.00101701   401: 0.000166051   433: 0.000170868   439: 0.000173753
Row 394:   348: 0.000185583   352: 0.000190156   388: 0.000195559   391: 0.000182691   394: 0.00113452   443: 0.000186118   448: 0.000194413
Row 395:   354: 0.000187578   355: 0.000179619   382: 0.000197579   395: 0.00112445   396: 0.000175459   434: 0.000199187   440: 0.000185026
Row 396:   355: 0.000173778   356: 0.000166202   395: 0.000175459   396: 0.000986523   409: 0.000153536   440: 0.000165947   445: 0.0001516
Row 397:   340: 0.00016532   357: 0.000168087   383: 0.00016676   392: 0.000171021   397: 0.00102062   430: 0.000175461   436: 0.000173968
Row 398:   362: 0.00017069   363: 0.000170249   392: 0.0001723   398: 0.00102548   402: 0.000170541   427: 0.00017019   432: 0.000171507
Row 399:   351: 0.000207334   358: 0.000226427   387: 0.000195456   399: 0.00111901   416: 0.000174311   423: 0.000158769   442: 0.000156717
Row 400:   359: 0.000134481   361: 0.000132887   400: 0.000714002   406: 0.000128582   418: 0.000113215   450: 0.000109306   451: 9.55325e-05
Row 401:   337: 0.000161335   360: 0.00015419   393: 0.000166051   401: 0.000952681   406: 0.000150267   433: 0.000164738   446: 0.000156099
Row 402:   363: 0.000171505   364: 0.000171632   398: 0.000170541   402: 0.00102827   403: 0.000171394   427: 0.000171236   429: 0.000171961
Row 403:   364: 0.000170137   365: 0.000168769   402: 0.000171394   403: 0.00102543   404: 0.000170025   429: 0.000172555   437: 0.000172554
Row 404:   365: 0.000167542   366: 0.000161526   403: 0.000170025   404: 0.000981737   405: 0.000154381   437: 0.000168945   438: 0.000159318
Row 405:   366: 0.000159109   367: 0.000160164   404: 0.000154381   405: 0.000866745   412: 0.00013847   435: 0.000118827   438: 0.000135794
Row 406:   359: 0.000140007   360: 0.000148527   400: 0.000128582   401: 0.000150267   406: 0.000841805   446: 0.000143794   450: 0.000130629
Row 407:   329: 0.000167222   332: 0.000167836   375: 0.000165064   377: 0.000167554   407: 0.000998364   431: 0.000166282   449: 0.000164406
Row 408:   335: 0.000162571   336: 0.000165581   390: 0.000157453   408: 0.00097366   410: 0.000167   424: 0.000157259   444: 0.000163796
Row 409:   356: 0.000173971   376: 0.000144253   379: 0.000181636   396: 0.000153536   409: 0.00089301   414: 0.000111333   445: 0.000128282
Row 410:   336: 0.000167429   372: 0.000169313   408: 0.000167   410: 0.0010209   428: 0.000172099   444: 0.00017092   471: 0.000174134
Row 411:   350: 0.00017798   368: 0.00017703   391: 0.000173792   411: 0.00102965   416: 0.000170191   441: 0.000166654   460: 0.000164003
Row 412:   367: 0.000179073   370: 0.000178273   378: 0.0001997   405: 0.00013847   412: 0.000951107   413: 0.000137383   435: 0.000118208
Row 413:   370: 0.000158096   375: 0.000157041   412: 0.000137383   413: 0.000859494   435: 0.000117861   449: 0.000153789   457: 0.000135322
Row 414:   334: 0.000105849   376: 0.000110859   381: 0.000103882   409: 0.000111333   414: 0.000539079   445: 0.000107157
Row 415:   339: 0.000167206   377: 0.000167185   415: 0.000997145   417: 0.000166062   431: 0.000166832   447: 0.000165325   452: 0.000164534
Row 416:   351: 0.000185391   368: 0.000179992   399: 0.000174311   411: 0.000170191   416: 0.00102748   442: 0.000158156   460: 0.000159436
Row 417:   339: 0.000167835   373: 0.000168955   415: 0.000166062   417: 0.0010068   428: 0.000169873   452: 0.000165691   473: 0.000168382
Row 418:   361: 0.0001393   371: 0.000151113   389: 0.00014413   400: 0.000113215   418: 0.000761278   426: 0.000116311   451: 9.72085e-05
Row 419:   384: 0.000166469   385: 0.000157007   419: 0.000971055   420: 0.000172084   422: 0.000148768   454: 0.000156436   463: 0.00017029
Row 420:   380: 0.000175045   384: 0.000170875   419: 0.000172084   420: 0.00106537   439: 0.000181102   463: 0.00018071   472: 0.000185558
Row 421:   381: 0.000145422   383: 0.000158002   421: 0.000984505   436: 0.000175753   440: 0.000171078   445: 0.000149578   453: 0.000184673
Row 422:   385: 0.000149743   386: 0.000146272   419: 0.000148768   422: 0.000811791   423: 0.000126527   454: 0.000129625   455: 0.000110855
Row 423:   386: 0.000151134   387: 0.000162825   399: 0.000158769   422: 0.000126527   423: 0.000838917   442: 0.000130107   455: 0.000109556
Row 424:   390: 0.000147581   408: 0.000157259   424: 0.000889471   426: 0.000135185   444: 0.000160354   466: 0.000152292   479: 0.0001368
Row 425:   382: 0.000216964   388: 0.000213032   425: 0.00143313   434: 0.000249071   448: 0.000219835   456: 0.000279764   469: 0.000254461
Row 426:   389: 0.000139983   390: 0.000142623   418: 0.000116311   424: 0.000135185   426: 0.000745337   451: 9.75005e-05   479: 0.000113735
Row 427:   398: 0.00017019   402: 0.000171236   427: 0.00102107   429: 0.000171339   432: 0.000169838   459: 0.000169463   475: 0.000169008
Row 428:   372: 0.000169987   373: 0.000169789   410: 0.000172099   417: 0.000169873   428: 0.00102843   471: 0.000174357   473: 0.000172328
Row 429:   402: 0.000171961   403: 0.000172555   427: 0.000171339   429: 0.00103149   437: 0.000173479   459: 0.000170305   462: 0.000171851
Row 430:   392: 0.000174417   397: 0.000175461   430: 0.00108179   432: 0.000175412   436: 0.000185355   458: 0.000190021   476: 0.000181122
Row 431:   377: 0.000167229   407: 0.000166282   415: 0.000166832   431: 0.0010079   447: 0.000169043   449: 0.00016768   461: 0.000170838
Row 432:   392: 0.0001744   398: 0.000171507   427: 0.000169838   430: 0.000175412   432: 0.00103507   475: 0.000170614   476: 0.000173295
Row 433:   393: 0.000170868   401: 0.000164738   433: 0.00104223   439: 0.000178663   446: 0.000165733   465: 0.000184514   474: 0.000177715
Row 434:   382: 0.00021228   395: 0.000199187   425: 0.000249071   434: 0.0013689   440: 0.000199987   453: 0.000236193   456: 0.000272184
Row 435:   405: 0.000118827   412: 0.000118208   413: 0.000117861   435: 0.000594807   438: 0.000120249   457: 0.000119661
Row 436:   383: 0.000168404   397: 0.000173968   421: 0.000175753   430: 0.000185355   436: 0.00109737   453: 0.000194927   458: 0.000198966
Row 437:   403: 0.000172554   404: 0.000168945   429: 0.000173479   437: 0.00109558   438: 0.000183985   462: 0.000191249   477: 0.000205364
Row 438:   404: 0.000159318   405: 0.000135794   435: 0.000120249   437: 0.000183985   438: 0.000951037   457: 0.000155739   477: 0.000195952
Row 439:   380: 0.000175522   393: 0.000173753   420: 0.000181102   433: 0.000178663   439: 0.0010838   465: 0.000187047   472: 0.000187716
Row 440:   395: 0.000185026   396: 0.000165947   421: 0.000171078   434: 0.000199987   440: 0.00107402   445: 0.000156873   453: 0.000195113
Row 441:   391: 0.0001717   411: 0.000166654   441: 0.000981815   443: 0.00016879   460: 0.00015919   470: 0.000155463   478: 0.000160018
Row 442:   399: 0.000156717   416: 0.000158156   423: 0.000130107   442: 0.000829869   455: 0.000109723   460: 0.000148494   484: 0.000126671
Row 443:   391: 0.000177368   394: 0.000186118   441: 0.00016879   443: 0.00107457   448: 0.000190932   478: 0.000168985   483: 0.000182377
Row 444:   408: 0.000163796   410: 0.00017092   424: 0.000160354   444: 0.00102668   466: 0.000170085   471: 0.000179461   481: 0.000182068
Row 445:   381: 0.00012318   396: 0.0001516   409: 0.000128282   414: 0.000107157   421: 0.000149578   440: 0.000156873   445: 0.000816669
Row 446:   401: 0.000156099   406: 0.000143794   433: 0.000165733   446: 0.000925227   450: 0.000139632   468: 0.000153087   474: 0.000166883
Row 447:   415: 0.000165325   431: 0.000169043   447: 0.000995726   452: 0.000160372   461: 0.000173213   464: 0.000168449   467: 0.000159325
Row 448:   388: 0.000205546   394: 0.000194413   425: 0.000219835   443: 0.000190932   448: 0.00123139   469: 0.000219217   483: 0.000201446
Row 449:   375: 0.000159294   407: 0.000164406   413: 0.000153789   431: 0.00016768   449: 0.000972345   457: 0.000159199   461: 0.000167978
Row 450:   400: 0.000109306   406: 0.000130629   446: 0.000139632   450: 0.00072491   451: 9.51486e-05   468: 0.000136678   479: 0.000113518
Row 451:   400: 9.55325e-05   418: 9.72085e-05   426: 9.75005e-05   450: 9.51486e-05   451: 0.000481905   479: 9.65148e-05
Row 452:   415: 0.000164534   417: 0.000165691   447: 0.000160372   452: 0.000965342   467: 0.000154476   473: 0.000163661   489: 0.000156608
Row 453:   421: 0.000184673   434: 0.000236193   436: 0.000194927   440: 0.000195113   453: 0.00130922   456: 0.00026457   458: 0.000233743
Row 454:   419: 0.000156436   422: 0.000129625   454: 0.000908956   455: 0.000112775   463: 0.000180186   484: 0.000144668   485: 0.000185267
Row 455:   422: 0.000110855   423: 0.000109556   442: 0.000109723   454: 0.000112775   455: 0.000554742   484: 0.000111832
Row 456:   425: 0.000279764   434: 0.000272184   453: 0.00026457   456: 0.00191696   458: 0.000262142   469: 0.000285516   482: 0.000269612   494: 0.000283172
Row 457:   413: 0.000135322   435: 0.000119661   438: 0.000155739   449: 0.000159199   457: 0.000948214   461: 0.000183045   477: 0.000195247
Row 458:   430: 0.000190021   436: 0.000198966   453: 0.000233743   456: 0.000262142   458: 0.00130719   476: 0.000192488   482: 0.000229831
Row 459:   427: 0.000169463   429: 0.000170305   459: 0.00102463   462: 0.000156498   475: 0.000185424   480: 0.000156586   491: 0.000186354
Row 460:   411: 0.000164003   416: 0.000159436   441: 0.00015919   442: 0.000148494   460: 0.000927765   470: 0.000151385   484: 0.000145257
Row 461:   431: 0.000170838   447: 0.000173213   449: 0.000167978   457: 0.000183045   461: 0.00109401   464: 0.000193123   477: 0.000205815
Row 462:   429: 0.000171851   437: 0.000191249   459: 0.000156498   462: 0.00104296   477: 0.000206812   480: 0.000142818   488: 0.000173734
Row 463:   419: 0.00017029   420: 0.00018071   454: 0.000180186   463: 0.00113956   472: 0.000191723   485: 0.000207767   486: 0.000208885
Row 464:   447: 0.000168449   461: 0.000193123   464: 0.00108161   467: 0.000159981   477: 0.00020975   488: 0.000187704   495: 0.000162608
Row 465:   433: 0.000184514   439: 0.000187047   465: 0.00118327   472: 0.000196636   474: 0.000195423   487: 0.000209162   490: 0.000210482
Row 466:   424: 0.000152292   444: 0.000170085   466: 0.000998503   468: 0.000160813   479: 0.000144571   481: 0.000186146   492: 0.000184595
Row 467:   447: 0.000159325   452: 0.000154476   464: 0.000159981   467: 0.000875671   489: 0.00013776   495: 0.00014075   506: 0.000123378
Row 468:   446: 0.000153087   450: 0.000136678   466: 0.000160813   468: 0.000941522   474: 0.00017327   479: 0.000138509   492: 0.000179165
Row 469:   425: 0.000254461   448: 0.000219217   456: 0.000285516   469: 0.00146182   483: 0.000213601   494: 0.000262848   502: 0.000226176
Row 470:   441: 0.000155463   460: 0.000151385   470: 0.000912157   478: 0.000141718   484: 0.000161208   485: 0.000162975   493: 0.000139407
Row 471:   410: 0.000174134   428: 0.000174357   444: 0.000179461   471: 0.00108812   473: 0.000179351   481: 0.000190573   496: 0.000190241
Row 472:   420: 0.000185558   439: 0.000187716   463: 0.000191723   465: 0.000196636   472: 0.00116905   486: 0.00020233   487: 0.000205084
Row 473:   417: 0.000168382   428: 0.000172328   452: 0.000163661   471: 0.000179351   473: 0.00102918   489: 0.000166859   496: 0.000178603
Row 474:   433: 0.000177715   446: 0.000166883   465: 0.000195423   468: 0.00017327   474: 0.00111643   490: 0.000207231   492: 0.00019591
Row 475:   427: 0.000169008   432: 0.000170614   459: 0.000185424   475: 0.00103657   476: 0.000160404   491: 0.000188872   497: 0.000162245
Row 476:   430: 0.000181122   432: 0.000173295   458: 0.000192488   475: 0.000160404   476: 0.00104015   482: 0.000178552   497: 0.000154295
Row 477:   437: 0.000205364   438: 0.000195952   457: 0.000195247   461: 0.000205815   462: 0.000206812   464: 0.00020975   477: 0.00142547   488: 0.000206533
Row 478:   441: 0.000160018   443: 0.000168985   470: 0.000141718   478: 0.000923982   483: 0.000171422   493: 0.000130551   503: 0.000151288
Row 479:   424: 0.0001368   426: 0.000113735   450: 0.000113518   451: 9.65148e-05   466: 0.000144571   468: 0.000138509   479: 0.000743649
Row 480:   459: 0.000156586   462: 0.000142818   480: 0.000782748   488: 0.000145687   491: 0.000174228   498: 0.000163429
Row 481:   444: 0.000182068   466: 0.000186146   471: 0.000190573   481: 0.00126006   492: 0.000223935   496: 0.000224029   499: 0.000253312
Row 482:   456: 0.000269612   458: 0.000229831   476: 0.000178552   482: 0.00130315   494: 0.000254675   497: 0.000167071   505: 0.000203413
Row 483:   443: 0.000182377   448: 0.000201446   469: 0.000213601   478: 0.000171422   483: 0.0011524   502: 0.000203334   503: 0.000180224
Row 484:   442: 0.000126671   454: 0.000144668   455: 0.000111832   460: 0.000145257   470: 0.000161208   484: 0.000865094   485: 0.000175458
Row 485:   454: 0.000185267   463: 0.000207767   470: 0.000162975   484: 0.000175458   485: 0.00129491   486: 0.000218915   493: 0.000155691   504: 0.000188839
Row 486:   463: 0.000208885   472: 0.00020233   485: 0.000218915   486: 0.00126366   487: 0.000212488   500: 0.000210583   504: 0.000210454
Row 487:   465: 0.000209162   472: 0.000205084   486: 0.000212488   487: 0.00131374   490: 0.000226457   500: 0.000225331   501: 0.000235222
Row 488:   462: 0.000173734   464: 0.000187704   477: 0.000206533   480: 0.000145687   488: 0.00104451   495: 0.000170035   498: 0.000160816
Row 489:   452: 0.000156608   467: 0.00013776   473: 0.000166859   489: 0.000923418   496: 0.000176453   506: 0.000128648   507: 0.00015709
Row 490:   465: 0.000210482   474: 0.000207231   487: 0.000226457   490: 0.00142184   492: 0.000237908   499: 0.00027723   501: 0.000262529
Row 491:   459: 0.000186354   475: 0.000188872   480: 0.000174228   491: 0.00152405   497: 0.000184484   498: 0.000234573   505: 0.000253455   509: 0.000302087
Row 492:   466: 0.000184595   468: 0.000179165   474: 0.00019591   481: 0.000223935   490: 0.000237908   492: 0.00128202   499: 0.000260503
Row 493:   470: 0.000139407   478: 0.000130551   485: 0.000155691   493: 0.000713267   503: 0.000136927   504: 0.00015069
Row 494:   456: 0.000283172   469: 0.000262848   482: 0.000254675   494: 0.00152342   502: 0.000238595   505: 0.000239944   511: 0.000244189
Row 495:   464: 0.000162608   467: 0.00014075   488: 0.000170035   495: 0.000936176   498: 0.000176292   506: 0.000129187   508: 0.000157303
Row 496:   471: 0.000190241   473: 0.000178603   481: 0.000224029   489: 0.000176453   496: 0.00122924   499: 0.000247925   507: 0.000211987
Row 497:   475: 0.000162245   476: 0.000154295   482: 0.000167071   491: 0.000184484   497: 0.000852311   505: 0.000184216
Row 498:   480: 0.000163429   488: 0.000160816   491: 0.000234573   495: 0.000176292   498: 0.00121939   508: 0.000214305   509: 0.000269973
Row 499:   481: 0.000253312   490: 0.00027723   492: 0.000260503   496: 0.000247925   499: 0.0018759   501: 0.000294889   507: 0.000256487   513: 0.000285552
Row 500:   486: 0.000210583   487: 0.000225331   500: 0.00134454   501: 0.000241087   504: 0.000205173   510: 0.000241765   512: 0.000220599
Row 501:   487: 0.000235222   490: 0.000262529   499: 0.000294889   500: 0.000241087   501: 0.00157378   510: 0.000256778   513: 0.000283273
Row 502:   469: 0.000226176   483: 0.000203334   494: 0.000238595   502: 0.00131202   503: 0.000194673   511: 0.000235161   512: 0.000214081
Row 503:   478: 0.000151288   483: 0.000180224   493: 0.000136927   502: 0.000194673   503: 0.00102062   504: 0.00016435   512: 0.00019316
Row 504:   485: 0.000188839   486: 0.000210454   493: 0.00015069   500: 0.000205173   503: 0.00016435   504: 0.00111673   512: 0.000197218
Row 505:   482: 0.000203413   491: 0.000253455   494: 0.000239944   497: 0.000184216   505: 0.00145549   509: 0.000303585   511: 0.000270877
Row 506:   467: 0.000123378   489: 0.000128648   495: 0.000129187   506: 0.000659387   507: 0.000138816   508: 0.000139358
Row 507:   489: 0.00015709   496: 0.000211987   499: 0.000256487   506: 0.000138816   507: 0.00118513   508: 0.000178989   513: 0.000241763
Row 508:   495: 0.000157303   498: 0.000214305   506: 0.000139358   507: 0.000178989   508: 0.00119682   509: 0.000262116   513: 0.000244745
Row 509:   491: 0.000302087   498: 0.000269973   505: 0.000303585   508: 0.000262116   509: 0.00204149   510: 0.000309574   511: 0.000301142   513: 0.000293015
Row 510:   500: 0.000241765   501: 0.000256778   509: 0.000309574   510: 0.00161256   511: 0.000276762   512: 0.00023993   513: 0.000287754
Row 511:   494: 0.000244189   502: 0.000235161   505: 0.000270877   509: 0.000301142   510: 0.000276762   511: 0.0015656   512: 0.000237469
Row 512:   500: 0.000220599   502: 0.000214081   503: 0.00019316   504: 0.000197218   510: 0.00023993   511: 0.000237469   512: 0.00130246
Row 513:   499: 0.000285552   501: 0.000283273   507: 0.000241763   508: 0.000244745   509: 0.000293015   510: 0.000287754   513: 0.0016361

Approximating the initial conditions (we choose \(u_0=\exp(-10(x^2+y^2))\)) can be done using GridFunction.Set

gfu.Set(exp(-10*(x**2+y**2)))
Draw(gfu);

It remains to solve (2.7) using an appropriate time stepping.

We choose a variant of the Newmark time-stepping which is given for problems of the form

\[A\frac{d^2}{dt} x + B\frac{d}{dt}x+Cx=r,\quad x(0)=x_0,\quad \frac{d}{dt}x(0)=0\]

by the approximations \(x^j\approx x(\tau j)\), \(\dot x^j\approx \frac{d}{dt} x(\tau j)\) and a time step size \(\tau>0\)

\[\begin{split}\begin{aligned} x^0&=x_0\\ \dot x^0&=0\\ x^{j+1}&=x^j+\frac{\tau}{2}(\dot x^{j+1}+\dot x^{j})\\ A\dot x^{j+1}&=A\dot x^j+\frac{\tau}{2}\left(r^{j+1}+r^j-C(x^{j+1}+x^{j})-B(\dot x^{j+1}+\dot x^{j})\right), \end{aligned}\end{split}\]

where we also set \(r^j=r(\tau j)\). Eliminating \(x^{j+1}\) on the right hand side of the last equation and collecting the coefficients of \(\dot x^{j+1}\) leads to

\[\left(A+\frac{\tau}{2}B+\frac{\tau^2}{4}C\right)\dot x^{j+1}=A\dot x^j+\frac{\tau}{2}\left(r^{j+1}+r^j-B\dot x^j-C(2x^j+\frac{\tau}{2}\dot x^j)\right) \]

Note that in our example \(A=\mathbf M\), \(C=\mathbf S\), \(r=0\), \(B=0\).

We precompute the inverse of the matrix \(\mathbf M^*=M+\frac{\tau^2}{4}\mathbf S\)

tau = 0.01
mstarinv = BilinearForm(u*u_*dx+tau**2/4* grad(u)*grad(u_)*dx).Assemble().mat.Inverse()

We define the approximation to the time derivative as a vector (and not a GridFunction) only and start the time loop

T = 1
udot = gfu.vec.CreateVector()
udot[:] = 0.

scene = Draw(gfu, deformation=True)
for j in range(int(T/tau)):
    gfu.vec.data += tau/2 * udot
    udot.data -= tau * mstarinv*(S.mat*gfu.vec)
    gfu.vec.data += tau/2 * udot
    scene.Redraw()

Boundary conditions#

Since we assumed \(\nabla u\cdot n=0\) we ommitted the boundary term from our weak formulation (2.2). If we impose boundary conditions \(\nabla u_h(t,\cdot)\cdot n=g_h(t,\cdot)\) on (a part of) the boundary \(\Gamma=\partial\Omega\) we obtain

\[\int_{\Gamma}\nabla u_h(t,x)\cdot n(x) u_h'(x) dS(x)= \int_{\Gamma}g_h(t,x) u_h'(x) dS(x)\]

and thus the semi-discrete weak formulation

(2.8)#\[\begin{split}\begin{aligned} \int_\Omega \partial_t^2 u_h(t,x)u_h'(x)dx+\int_\Omega\nabla u_h(t,x)\cdot\nabla u'_h(x)dx&=\int_{\Gamma}g_h(t,x) u_h'(x) dS(x),\\ u_h(0,\cdot) &= u_{h,0} \end{aligned}\end{split}\]

for all \(u_h'\in V\). Note that the boundary term is now independent of the unknown function \(u_h\) and thus acts as a right-hand-side.

To implement this in NGSolve we first need to make sure that we can adress the part of the boundary \(\Gamma\) correctly. We pick the left edge of the unit_square, which is conveniently already named correctly.

print(mesh.GetBoundaries())
('bottom', 'right', 'top', 'left')

Boundaries can also be named manually, e.g.

# import occ geometry tools
from netgen.occ import *

square = Rectangle(1,1).Face() # this actually returns a WorkPlane object
square.edges.Min(X).name = "left"

Choosing \(g=cos(\omega t)\exp(-10(y-0.5)^2)\) for some \(\omega>0\) we assemble the spacial part of the boundary term as a LinearForm similar to the BilinearForm. The boundary integral can be evaluated using ds as follows:

f = LinearForm(exp(-10*(y-0.5)**2)*u_*ds("left")).Assemble()

It remains to include the right-hand-side in the time-stepping:

T = 1
udot = gfu.vec.CreateVector()
udot[:] = 0.
gfu.vec[:] = 0.
omega = 15

scene = Draw(gfu, deformation=True)
for j in range(int(T/tau)):
    gfu.vec.data += tau/2 * udot
    udot.data += tau * mstarinv*(1/2*(cos(j*tau*omega)+cos((j+1)*tau*omega))*f.vec-S.mat*gfu.vec)
    gfu.vec.data += tau/2 * udot
    scene.Redraw()